<?xml version="1.0"?>
<doc>
    <assembly>
        <name>FluentFTP</name>
    </assembly>
    <members>
        <member name="T:FluentFTP.AsyncFtpClient">
            <summary>
            An FTP client that manages a connection to a single FTP server.
            Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders.
            Uses asynchronous operations only. For the sync version use `FtpClient`.
            
            Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Authenticate(System.Threading.CancellationToken)">
            <summary>
            Performs a login on the server. This method is overridable so
            that the login procedure can be changed to support, for example,
            a FTP proxy.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Authenticate(System.String,System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Performs a login on the server. This method is overridable so
            that the login procedure can be changed to support, for example,
            a FTP proxy.
            </summary>
            <exception cref="T:FluentFTP.Exceptions.FtpAuthenticationException">On authentication failures</exception>
            <remarks>
            To handle authentication failures without retries, catch FtpAuthenticationException.
            </remarks>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.AutoConnect(System.Threading.CancellationToken)">
            <summary>
            Automatic FTP and FTPS connection negotiation.
            This method tries every possible combination of the FTP connection properties, and connects to the first successful profile.
            Returns the FtpProfile if the connection succeeded, or null if it failed.
            It will throw exceptions for permanent failures like invalid host or invalid credentials.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.AutoDetect(System.Boolean,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Automatic FTP and FTPS connection negotiation.
            This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles.
            You can configure it to stop after finding the first successful profile, or to collect all successful profiles.
            You can then generate code for the profile using the FtpProfile.ToCode method.
            If no successful profiles are found, a blank list is returned.
            </summary>
            <param name="firstOnly">Find all successful profiles (false) or stop after finding the first successful profile (true)</param>
            <param name="cloneConnection">Use a new cloned AsyncFtpClient for testing connection profiles (true) or use the source AsyncFtpClient (false)</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Chmod(System.String,FluentFTP.FtpPermission,FluentFTP.FtpPermission,FluentFTP.FtpPermission,System.Threading.CancellationToken)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="owner">The owner permissions</param>
            <param name="group">The group permissions</param>
            <param name="other">The other permissions</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Chmod(System.String,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="permissions">The permissions in CHMOD format</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.CompareFile(System.String,System.String,FluentFTP.FtpCompareOption,System.Threading.CancellationToken)">
            <summary>
            Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks.
            In Auto mode, the file size and checksum are compared.
            Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file.
            You can use the option flags to compare any combination of: file size, checksum, date modified.
            </summary>
            <param name="localPath">The full or relative path to the file on the local file system</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="options">Types of equality checks to perform. Use Auto to compare file size and checksum.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Connect(System.Threading.CancellationToken)">
            <summary>
            Connect to the given server profile.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Connect(FluentFTP.FtpProfile,System.Threading.CancellationToken)">
            <summary>
            Connect to the given server profile.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Connect(System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Connect to the server
            </summary>
            <param name="reConnect"> true indicates that we want a 
            reconnect to take place.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <exception cref="T:System.ObjectDisposedException">Thrown if this object has been disposed.</exception>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)">
            <summary>
            Connect to the FTP server. Overridden in proxy classes.
            </summary>
            <param name="stream"></param>
            <param name="token"></param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.ConnectAsync(FluentFTP.FtpSocketStream,System.String,System.Int32,FluentFTP.FtpIpVersion,System.Threading.CancellationToken)">
            <summary>
            Connect to the FTP server. Overridden in proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.CreateDirectory(System.String,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Creates a remote directory asynchronously
            </summary>
            <param name="path">The full or relative path to the new remote directory</param>
            <param name="force">Try to create the whole path if the preceding directories do not exist</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>True if directory was created, false if it was skipped</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.CreateDirectory(System.String,System.Threading.CancellationToken)">
            <summary>
            Creates a remote directory asynchronously. If the preceding
            directories do not exist, then they are created.
            </summary>
            <param name="path">The full or relative path to the new remote directory</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DeleteDirectory(System.String,System.Threading.CancellationToken)">
            <summary>
            Asynchronously removes a directory and all its contents.
            </summary>
            <param name="path">The full or relative path of the directory to delete</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DeleteDirectory(System.String,FluentFTP.FtpListOption,System.Threading.CancellationToken)">
            <summary>
            Asynchronously removes a directory and all its contents.
            </summary>
            <param name="path">The full or relative path of the directory to delete</param>
            <param name="options">Useful to delete hidden files or dot-files.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DeleteDirInternalAsync(System.String,System.Boolean,FluentFTP.FtpListOption,System.Boolean,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Asynchronously removes a directory. Used by <see cref="M:FluentFTP.AsyncFtpClient.DeleteDirectory(System.String,System.Threading.CancellationToken)"/> and
            <see cref="M:FluentFTP.AsyncFtpClient.DeleteDirectory(System.String,FluentFTP.FtpListOption,System.Threading.CancellationToken)"/>.
            </summary>
            <param name="path">The full or relative path of the directory to delete</param>
            <param name="deleteContents">Delete the contents before deleting the folder</param>
            <param name="options">Useful to delete hidden files or dot-files.</param>
            <param name="deleteFinalDir">Delete the top level dir too</param>
            <param name="firstCall">Internally used to determine top level</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DeleteFile(System.String,System.Threading.CancellationToken)">
            <summary>
            Deletes a file from the server asynchronously
            </summary>
            <param name="path">The full or relative path to the file</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DirectoryExists(System.String,System.Threading.CancellationToken)">
            <summary>
            Tests if the specified directory exists on the server asynchronously. This
            method works by trying to change the working directory to
            the path specified. If it succeeds, the directory is changed
            back to the old working directory and true is returned. False
            is returned otherwise and since the CWD failed it is assumed
            the working directory is still the same.
            </summary>
            <param name='path'>The full or relative path of the directory to check for</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>True if the directory exists. False otherwise.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DisableUTF8">
            <summary>
            Disables UTF8 support and changes the Encoding property
            back to ASCII. If the server returns an error when trying
            to turn UTF8 off a FtpCommandException will be thrown.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Disconnect(System.Threading.CancellationToken)">
            <summary>
            Disconnects from the server asynchronously
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DiscoverSslSessionLength(System.String,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Automatically discover the SSL command limit of your currently connected FTP server.
            It returns the value that can be used to set SslSessionLength.
            </summary>
            <param name="command">The command to issue</param>
            <param name="maxTries">Maximum number of commands to issue</param>
            <returns>The detected command limit, 0 if infinite</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadBytes(System.String,System.Int64,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken,System.Int64)">
            <summary>
            Downloads the specified file and return the raw byte array.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            </summary>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="restartPosition">The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <param name="progress">Provide an implementation of IProgress to track download progress.</param>
            <param name="stopPosition">The last byte index that should be downloaded, or 0 if the entire file should be downloaded.</param>
            <returns>A byte array containing the contents of the downloaded file if successful, otherwise null.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadBytes(System.String,System.Threading.CancellationToken)">
            <summary>
            Downloads the specified file and return the raw byte array asynchronously.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            </summary>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A byte array containing the contents of the downloaded file if successful, otherwise null.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadDirectory(System.String,System.String,FluentFTP.FtpFolderSyncMode,FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Downloads the specified directory onto the local file system.
            In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory.
            In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory.
            Only downloads the files and folders matching all the rules provided, if any.
            All exceptions during downloading are caught, and the exception is stored in the related FtpResult object.
            </summary>
            <param name="localFolder">The full path of the local folder on disk to download into. It is created if it does not exist.</param>
            <param name="remoteFolder">The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned.</param>
            <param name="mode">Mirror or Update mode, as explained above</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="rules">Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder.</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
            <returns>
            Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadServerFilesAsync(System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Download all the listed files and folders from the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadFile(System.String,System.String,FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Downloads the specified file onto the local file system asynchronously.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            </summary>
            <param name="localPath">The full or relative path to the file on the local file system</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">Overwrite if you want the local file to be overwritten if it already exists. Append will also create a new file if it doesn't exists</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="progress">Provide an implementation of IProgress to track download progress.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer.</returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
            </remarks>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadFileToFileAsync(System.String,System.String,FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken,FluentFTP.FtpProgress)">
            <summary>
            Download a remote file to a local file
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadFileInternalAsync(System.String,System.String,System.IO.Stream,System.Int64,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken,FluentFTP.FtpProgress,System.Int64,System.Boolean,System.Int64)">
            <summary>
            Download a file from the server and write the data into the given stream asynchronously.
            Reads data in chunks. Retries if server disconnects midway.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.ResumeDownloadAsync(System.String,System.IO.Stream,System.Int64,System.IO.IOException,System.Threading.CancellationToken)">
            <summary>
            Setup a resume on failure of download
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadFiles(System.String,System.Collections.Generic.IEnumerable{System.String},FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,FluentFTP.FtpError,System.Threading.CancellationToken,System.IProgress{FluentFTP.FtpProgress},System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Downloads the specified files into a local single directory.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            Same speed as <see cref="o:DownloadFile"/>.
            </summary>
            <param name="localDir">The full or relative path to the directory that files will be downloaded into.</param>
            <param name="remotePaths">The full or relative paths to the files on the server</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="errorHandling">Used to determine how errors are handled</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="rules">Only files that pass all these rules are downloaded, and the files that don't pass are skipped.</param>
            <returns>
            Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.PurgeSuccessfulDownloads(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Remove successfully downloaded files.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DownloadStream(System.IO.Stream,System.String,System.Int64,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken,System.Int64)">
            <summary>
            Downloads the specified file into the specified stream asynchronously .
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            </summary>
            <param name="outStream">The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="restartPosition">The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <param name="progress">Provide an implementation of IProgress to track download progress.</param>
            <param name="stopPosition">The last byte index that should be downloaded, or 0 if the entire file should be downloaded.</param>
            <returns>If true then the file was downloaded, false otherwise.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.EmptyDirectory(System.String,System.Threading.CancellationToken)">
            <summary>
            Deletes the contents of the specified directory, without deleting the directory itself.
            </summary>
            <param name="path">The full or relative path of the directorys contents to delete</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.EmptyDirectory(System.String,FluentFTP.FtpListOption,System.Threading.CancellationToken)">
            <summary>
            Deletes the contents of the specified directory, without deleting the directory itself.
            </summary>
            <param name="path">The full or relative path of the directorys contents to delete</param>
            <param name="options">Useful to delete hidden files or dot-files.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Execute(System.String,System.Threading.CancellationToken)">
            <summary>
            Performs an asynchronous execution of the specified command
            </summary>
            <param name="command">The command to execute</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>The servers reply to the command</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OnPostExecute(System.String,System.Threading.CancellationToken)">
            <summary>
            Things to do after executing a command
            </summary>
            <param name="command"></param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.ExecuteDownloadText(System.String,System.Threading.CancellationToken)">
            <summary>
            Execute a custom FTP command and read the data channel to return its multiline output.
            </summary>
            <param name="command">The command to issue which produces output</param>
            <returns>A list of string objects corresponding to the multi-line response by the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.ExecuteDownloadTextInternal(System.String,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Execute a custom FTP command and return its multiline output.
            </summary>
            <param name="command">The command to issue which produces output</param>
            <param name="retry">Retry the command execution on temporary failure?</param>
            <returns>A list of string objects corresponding to the multi-line response by the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.FileExists(System.String,System.Threading.CancellationToken)">
            <summary>
            Checks if a file exists on the server asynchronously.
            </summary>
            <param name="path">The full or relative path to the file</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>True if the file exists, false otherwise</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetAbsoluteDirAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Ensure a relative dir is absolute by prepending the working dir
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetAbsoluteFilePathAsync(System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Concat a path and a filename
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetAbsolutePathAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Ensure a relative path is absolute by prepending the working dir
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetChecksum(System.String,FluentFTP.FtpHashAlgorithm,System.Threading.CancellationToken)">
            <summary>
            Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports.
            </summary>
            <remarks>
            The algorithm used goes in this order:
            1. HASH command using the first supported algorithm.
            2. MD5 / XMD5 / MMD5 commands
            3. XSHA1 command
            4. XSHA256 command
            5. XSHA512 command
            6. XCRC command
            </remarks>
            <param name="path">Full or relative path of the file to checksum</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <param name="algorithm">Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned.</param>
            <returns><see cref="T:FluentFTP.FtpHash"/> object containing the value and algorithm. Use the <see cref="P:FluentFTP.FtpHash.IsValid"/> property to
            determine if this command was successful. <see cref="T:FluentFTP.Exceptions.FtpCommandException"/>s can be thrown from
            the underlying calls.</returns>
            <exception cref="T:FluentFTP.Exceptions.FtpCommandException">The command fails</exception>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetHashInternalAsync(System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Gets the hash of the specified file using the given command.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.SetHashAlgorithmInternalAsync(FluentFTP.FtpHashAlgorithm,System.Threading.CancellationToken)">
            <summary>
            Sets the hash algorithm on the server to be used with the HASH command asynchronously.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.HashCommandInternalAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Gets the hash of an object on the server using the currently selected hash algorithm.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetChmod(System.String,System.Threading.CancellationToken)">
            <summary>
            Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
            Throws FtpCommandException if there is an issue.
            Returns 0 if the server did not specify a permission value.
            Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetFilePermissions(System.String,System.Threading.CancellationToken)">
            <summary>
            Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
            Throws FtpCommandException if there is an issue.
            Returns null if the server did not specify a permission value.
            Use `GetChmod` if you required the integer value instead.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetFileSize(System.String,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Asynchronously gets the size of a remote file, in bytes.
            </summary>
            <param name="path">The full or relative path of the file</param>
            <param name="defaultValue">Value to return if there was an error obtaining the file size, or if the file does not exist</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>The size of the file, or defaultValue if there was a problem.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetFileSizeInternal(System.String,System.Int64,System.Threading.CancellationToken,FluentFTP.FtpSizeReply)">
            <summary>
            Gets the file size of an object, without locking
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetListing(System.String,FluentFTP.FtpListOption,System.Threading.CancellationToken)">
            <summary>
            Gets a file listing from the server asynchronously. Each <see cref="T:FluentFTP.FtpListItem"/> object returned
            contains information about the file that was able to be retrieved. 
            </summary>
            <remarks>
            If a <see cref="T:System.DateTime"/> property is equal to <see cref="F:System.DateTime.MinValue"/> then it means the 
            date in question was not able to be retrieved. If the <see cref="P:FluentFTP.FtpListItem.Size"/> property
            is equal to 0, then it means the size of the object could also not
            be retrieved.
            </remarks>
            <param name="path">The path to list</param>
            <param name="options">Options that dictate how the list operation is performed</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>An array of items retrieved in the listing</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetListingProcessItemAsync(FluentFTP.FtpListItem,System.Collections.Generic.List{FluentFTP.FtpListItem},System.String,System.String,System.Threading.CancellationToken,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Process the output of the listing command
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetListingInternal(System.String,FluentFTP.FtpListOption,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Get the records of a file listing and retry if temporary failure.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetListing(System.String,System.Threading.CancellationToken)">
            <summary>
            Gets a file listing from the server asynchronously. Each <see cref="T:FluentFTP.FtpListItem"/> object returned
            contains information about the file that was able to be retrieved. 
            </summary>
            <remarks>
            If a <see cref="T:System.DateTime"/> property is equal to <see cref="F:System.DateTime.MinValue"/> then it means the 
            date in question was not able to be retrieved. If the <see cref="P:FluentFTP.FtpListItem.Size"/> property
            is equal to 0, then it means the size of the object could also not
            be retrieved.
            </remarks>
            <param name="path">The path to list</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>An array of items retrieved in the listing</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetListing(System.Threading.CancellationToken)">
            <summary>
            Gets a file listing from the server asynchronously. Each <see cref="T:FluentFTP.FtpListItem"/> object returned
            contains information about the file that was able to be retrieved. 
            </summary>
            <remarks>
            If a <see cref="T:System.DateTime"/> property is equal to <see cref="F:System.DateTime.MinValue"/> then it means the 
            date in question was not able to be retrieved. If the <see cref="P:FluentFTP.FtpListItem.Size"/> property
            is equal to 0, then it means the size of the object could also not
            be retrieved.
            </remarks>
            <returns>An array of items retrieved in the listing</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetListingRecursive(System.String,FluentFTP.FtpListOption,System.Threading.CancellationToken)">
            <summary>
            Recursive method of GetListingAsync, to recurse through directories on servers that do not natively support recursion.
            Automatically called by GetListingAsync where required.
            Uses flat recursion instead of head recursion.
            </summary>
            <param name="path">The path of the directory to list</param>
            <param name="options">Options that dictate how a list is performed and what information is gathered.</param>
            <param name="token"></param>
            <returns>An array of FtpListItem objects</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetModifiedTime(System.String,System.Threading.CancellationToken)">
            <summary>
            Gets the modified time of a remote file asynchronously
            </summary>
            <param name="path">The full path to the file</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>The modified time, or <see cref="F:System.DateTime.MinValue"/> if there was a problem</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetNameListing(System.String,System.Threading.CancellationToken)">
            <summary>
            Returns a file/directory listing using the NLST command asynchronously
            </summary>
            <param name="path">The path of the directory to list</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>An array of file and directory names if any were returned.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetNameListing(System.Threading.CancellationToken)">
            <summary>
            Returns a file/directory listing using the NLST command asynchronously
            </summary>
            <returns>An array of file and directory names if any were returned.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetObjectInfo(System.String,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Return information about a remote file system object asynchronously. 
            </summary>
            <remarks>
            You should check the <see cref="P:FluentFTP.Client.BaseClient.BaseFtpClient.Capabilities"/> property for the <see cref="F:FluentFTP.FtpCapability.MLSD"/>
            flag before calling this method. Failing to do so will result in an InvalidOperationException
            being thrown when the server does not support machine listings. Returns null if the server response can't
            be parsed or the server returns a failure completion code. The error for a failure
            is logged with FtpTrace. No exception is thrown on error because that would negate
            the usefulness of this method for checking for the existence of an object.</remarks>
            <param name="path">Path of the item to retrieve information about</param>
            <param name="dateModified">Get the accurate modified date using another MDTM command</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <exception cref="T:System.InvalidOperationException">Thrown if the server does not support this Capability</exception>
            <returns>A <see cref="T:FluentFTP.FtpListItem"/> if the command succeeded, or null if there was a problem.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetReply(System.Threading.CancellationToken)">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <param name="token">The token that can be used to cancel the entire process.</param>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetReplyAsyncInternal(System.Threading.CancellationToken,System.String)">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <param name="token">The token that can be used to cancel the entire process.</param>
            <param name="command">We are waiting for the response to which command?</param>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetReplyAsyncInternal(System.Threading.CancellationToken,System.String,System.Boolean)">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <param name="token">The token that can be used to cancel the entire process.</param>
            <param name="command">We are waiting for the response to which command?</param>
            <param name="exhaustNoop">Set to true to select the NOOP devouring mode</param>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetReplyAsyncInternal(System.Threading.CancellationToken,System.String,System.Boolean,System.Int32)">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <param name="token">The token that can be used to cancel the entire process.</param>
            <param name="command">We are waiting for the response to which command?</param>
            <param name="exhaustNoop">Set to true to select the NOOP devouring mode</param>
            <param name="timeOut">-1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds</param>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetWorkingDirectory(System.Threading.CancellationToken)">
            <summary>
            Gets the current working directory asynchronously
            </summary>
            <returns>The current working directory, ./ if the response couldn't be parsed.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.ReadCurrentWorkingDirectory(System.Threading.CancellationToken)">
            <summary>
            Get the reply from the PWD command
            </summary>
            <returns>The current working directory reply.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetZOSListRealm(System.Threading.CancellationToken)">
            <summary>
            If an FTP Server has "different realms", in which realm is the
            current working directory. 
            </summary>
            <returns>The realm</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.HandshakeAsync(System.Threading.CancellationToken)">
            <summary>
            Called during <see cref="M:FluentFTP.AsyncFtpClient.Connect(System.Threading.CancellationToken)"/>. Typically extended by FTP proxies.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.IsRoot(System.Threading.CancellationToken)">
            <summary>
            Is the current working directory the root?
            </summary>
            <returns>true if root.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.MoveDirectory(System.String,System.String,FluentFTP.FtpRemoteExists,System.Threading.CancellationToken)">
            <summary>
            Moves a directory asynchronously on the remote file system from one directory to another.
            Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
            Only throws exceptions for critical errors.
            </summary>
            <param name="path">The full or relative path to the object</param>
            <param name="dest">The new full or relative path including the new name of the object</param>
            <param name="existsMode">Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>Whether the directory was moved</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.MoveFile(System.String,System.String,FluentFTP.FtpRemoteExists,System.Threading.CancellationToken)">
            <summary>
            Moves a file asynchronously on the remote file system from one directory to another.
            Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
            Only throws exceptions for critical errors.
            </summary>
            <param name="path">The full or relative path to the object</param>
            <param name="dest">The new full or relative path including the new name of the object</param>
            <param name="existsMode">Should we check if the dest file exists? And if it does should we overwrite/skip the operation?</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>Whether the file was moved</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.NoopAsync(System.Threading.CancellationToken)">
            <summary>
            Sends the NOOP command according to <see cref="P:FluentFTP.FtpConfig.NoopInterval"/> (effectively a no-op if 0).
            Please call <see cref="M:FluentFTP.AsyncFtpClient.GetReply(System.Threading.CancellationToken)"/> as needed to read the "OK" command sent by the server and prevent stale data on the socket.
            Note that response is not guaranteed by all FTP servers when sent during file transfers.
            </summary>
            <param name="token"></param>
            <returns>true if NOOP command was sent</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenActiveDataStreamAsync(FluentFTP.FtpDataConnectionType,System.String,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Opens the specified type of active data stream
            </summary>
            <param name="type">Type of passive data stream to open</param>
            <param name="command">The command to execute that requires a data stream</param>
            <param name="restart">Restart location in bytes for file transfer</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A data stream ready to be used</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenAppend(System.String,FluentFTP.FtpDataType,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Opens the specified file to be appended asynchronously
            </summary>
            <param name="path">Full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="checkIfFileExists">Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenAppend(System.String,FluentFTP.FtpDataType,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Opens the specified file to be appended asynchronously
            </summary>
            <param name="path">Full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="fileLen">
            <para>Pass in a file length if known</para>
            <br> -1 => File length is irrelevant, do not attempt to determine it</br>
            <br> 0  => File length is unknown, try to determine it</br>
            <br> >0 => File length is KNOWN. No need to determine it</br>
            </param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenDataStreamAsync(System.String,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Opens a data stream.
            </summary>
            <param name='command'>The command to execute that requires a data stream</param>
            <param name="restart">Restart location in bytes for file transfer</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>The data stream.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenPassiveFXPConnectionAsync(FluentFTP.AsyncFtpClient,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Opens a FXP PASV connection between the source FTP Server and the destination FTP Server
            </summary>
            <param name="remoteClient">Valid FTP connection to the destination FTP Server</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <param name="progress">Provide an implementation of IProgress to track download progress.</param>
            <returns>A data stream ready to be used</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenPassiveDataStreamAsync(FluentFTP.FtpDataConnectionType,System.String,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Opens the specified type of passive data stream
            </summary>
            <param name="type">Type of passive data stream to open</param>
            <param name="command">The command to execute that requires a data stream</param>
            <param name="restart">Restart location in bytes for file transfer</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A data stream ready to be used</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenRead(System.String,FluentFTP.FtpDataType,System.Int64,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Opens the specified file for reading asynchronously
            </summary>
            <param name="path">The full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="restart">Resume location</param>
            <param name="checkIfFileExists">Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A stream for reading the file on the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenRead(System.String,FluentFTP.FtpDataType,System.Int64,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Opens the specified file for reading asynchronously
            </summary>
            <param name="path">The full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="restart">Resume location</param>
            <param name="fileLen">
            <para>Pass in a file length if known</para>
            <br> -1 => File length is irrelevant, do not attempt to determine it</br>
            <br> 0  => File length is unknown, try to determine it</br>
            <br> >0 => File length is KNOWN. No need to determine it</br>
            </param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A stream for reading the file on the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenWrite(System.String,FluentFTP.FtpDataType,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket.
            </summary>
            <param name="path">Full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="checkIfFileExists">Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.OpenWrite(System.String,FluentFTP.FtpDataType,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket.
            </summary>
            <param name="path">Full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="fileLen">
            <para>Pass in a file length if known</para>
            <br> -1 => File length is irrelevant, do not attempt to determine it</br>
            <br> 0  => File length is unknown, try to determine it</br>
            <br> >0 => File length is KNOWN. No need to determine it</br>
            </param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.Rename(System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Renames an object on the remote file system asynchronously.
            Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
            Throws exceptions if the file does not exist, or if the destination file already exists.
            </summary>
            <param name="path">The full or relative path to the object</param>
            <param name="dest">The new full or relative path including the new name of the object</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.SetDataTypeAsync(FluentFTP.FtpDataType,System.Threading.CancellationToken)">
            <summary>
            Sets the data type of information sent over the data stream asynchronously
            </summary>
            <param name="type">ASCII/Binary</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.SetDataTypeNoLockAsync(FluentFTP.FtpDataType,System.Threading.CancellationToken)">
            <summary>
            Sets the data type of information sent over the data stream asynchronously
            </summary>
            <param name="type">ASCII/Binary</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.SetFilePermissions(System.String,FluentFTP.FtpPermission,FluentFTP.FtpPermission,FluentFTP.FtpPermission,System.Threading.CancellationToken)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="owner">The owner permissions</param>
            <param name="group">The group permissions</param>
            <param name="other">The other permissions</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.SetFilePermissions(System.String,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="permissions">The permissions in CHMOD format</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.SetModifiedTime(System.String,System.DateTime,System.Threading.CancellationToken)">
            <summary>
            Gets the modified time of a remote file asynchronously
            </summary>
            <param name="path">The full path to the file</param>
            <param name="date">The new modified date/time value</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.SetWorkingDirectory(System.String,System.Threading.CancellationToken)">
            <summary>
            Sets the working directory on the server asynchronously
            </summary>
            <param name="path">The directory to change to</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.TransferDirectory(System.String,FluentFTP.AsyncFtpClient,System.String,FluentFTP.FtpFolderSyncMode,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Transfer the specified directory from the source FTP Server onto the remote FTP Server asynchronously using the FXP protocol.
            You will need to create a valid connection to your remote FTP Server before calling this method.
            In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory.
            Currently Mirror mode is not implemented.
            Only transfers the files and folders matching all the rules provided, if any.
            All exceptions during transfer are caught, and the exception is stored in the related FtpResult object.
            </summary>
            <param name="sourceFolder">The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned.</param>
            <param name="remoteClient">Valid FTP connection to the destination FTP Server</param>
            <param name="remoteFolder">The full or relative path to destination folder on the remote FTP Server</param>
            <param name="mode">Only Update mode is currently implemented</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="rules">Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder.</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
            <returns>
            Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetFilesToTransfer(System.String,System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean},System.String[],System.Threading.CancellationToken)">
            <summary>
            Make a list of files to transfer
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.TransferServerFiles(System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.AsyncFtpClient,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.IProgress{FluentFTP.FtpProgress},FluentFTP.FtpListItem[],System.Threading.CancellationToken)">
            <summary>
            Transfer the files
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.TransferFile(System.String,FluentFTP.AsyncFtpClient,System.String,System.Boolean,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.IProgress{FluentFTP.FtpProgress},FluentFTP.FtpProgress,System.Threading.CancellationToken)">
            <summary>
            Transfer the specified file from the source FTP Server to the destination FTP Server asynchronously using the FXP protocol.
            High-level API that takes care of various edge cases internally.
            </summary>
            <param name="sourcePath">The full or relative path to the file on the source FTP Server</param>
            <param name="remoteClient">Valid FTP connection to the destination FTP Server</param>
            <param name="remotePath">The full or relative path to destination file on the remote FTP Server</param>
            <param name="createRemoteDir">Indicates if the folder should be created on the remote FTP Server</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <param name="metaProgress"></param>
            <param name="token">The token that can be used to cancel the entire process</param>
            Returns a FtpStatus indicating if the file was transferred.
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
            </remarks>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.TransferFileFXPInternal(System.String,FluentFTP.AsyncFtpClient,System.String,System.Boolean,FluentFTP.FtpRemoteExists,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken,FluentFTP.FtpProgress)">
            <summary>
            Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol asynchronously.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadBytes(System.Byte[],System.String,FluentFTP.FtpRemoteExists,System.Boolean,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Uploads the specified byte array as a file onto the server asynchronously.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            </summary>
            <param name="fileData">The full data of the file, as a byte array</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance,
             but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist. Slows down upload due to additional checks required.</param>
            <param name="token">The token that can be used to cancel the entire process.</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <returns>FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadDirectory(System.String,System.String,FluentFTP.FtpFolderSyncMode,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Uploads the specified directory onto the server.
            In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server.
            In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server.
            Only uploads the files and folders matching all the rules provided, if any.
            All exceptions during uploading are caught, and the exception is stored in the related FtpResult object.
            </summary>
            <param name="localFolder">The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned.</param>
            <param name="remoteFolder">The full path of the remote FTP folder to upload into. It is created if it does not exist.</param>
            <param name="mode">Mirror or Update mode, as explained above</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the upload or restart the upload?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="rules">Only files and folders that pass all these rules are uploaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder.</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
            <returns>
            Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.CreateSubDirectories(FluentFTP.AsyncFtpClient,System.Collections.Generic.List{FluentFTP.FtpResult},System.Threading.CancellationToken)">
            <summary>
            Create all the sub directories within the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadDirectoryFiles(System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.IProgress{FluentFTP.FtpProgress},FluentFTP.FtpListItem[],System.Threading.CancellationToken)">
            <summary>
            Upload all the files within the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.DeleteExtraServerFiles(FluentFTP.FtpFolderSyncMode,System.String,System.Collections.Generic.Dictionary{System.String,System.Boolean},FluentFTP.FtpListItem[],System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Threading.CancellationToken)">
            <summary>
            Delete the extra remote files if in mirror mode and the directory was pre-existing
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadFile(System.String,System.String,FluentFTP.FtpRemoteExists,System.Boolean,FluentFTP.FtpVerify,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Uploads the specified file directly onto the server asynchronously.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            </summary>
            <param name="localPath">The full or relative path to the file on the local file system</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to  <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance
             but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist. Slows down upload due to additional checks required.</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="token">The token that can be used to cancel the entire process.</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <returns>FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer.</returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to <see cref="F:FluentFTP.FtpRemoteExists.Overwrite"/>.
            </remarks>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadFileFromFile(System.String,System.String,System.Boolean,FluentFTP.FtpRemoteExists,System.Boolean,System.Boolean,FluentFTP.FtpVerify,System.Threading.CancellationToken,System.IProgress{FluentFTP.FtpProgress},FluentFTP.FtpProgress)">
            <summary>
            Upload from a local file to a remote file
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadFileInternalAsync(System.IO.Stream,System.String,System.String,System.Boolean,FluentFTP.FtpRemoteExists,System.Boolean,System.Boolean,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken,FluentFTP.FtpProgress)">
            <summary>
            Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists.
            Writes data in chunks. Retries if server disconnects midway.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.ResumeUploadAsync(System.String,System.IO.Stream,System.Int64,System.IO.IOException,System.Threading.CancellationToken)">
            <summary>
            Setup a resume on failure of upload
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadFiles(System.Collections.Generic.IEnumerable{System.String},System.String,FluentFTP.FtpRemoteExists,System.Boolean,FluentFTP.FtpVerify,FluentFTP.FtpError,System.Threading.CancellationToken,System.IProgress{FluentFTP.FtpProgress},System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Uploads the given file paths to a single folder on the server asynchronously.
            All files are placed directly into the given folder regardless of their path on the local filesystem.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            Faster than uploading single files with <see cref="o:UploadFile"/> since it performs a single "file exists" check rather than one check per file.
            </summary>
            <param name="localPaths">The full or relative paths to the files on the local file system. Files can be from multiple folders.</param>
            <param name="remoteDir">The full or relative path to the directory that files will be uploaded on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance,
             but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist.</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="errorHandling">Used to determine how errors are handled</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="rules">Only files that pass all these rules are uploaded, and the files that don't pass are skipped.</param>
            <returns>
            Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to <see cref="F:FluentFTP.FtpRemoteExists.Overwrite"/>.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.PurgeSuccessfulUploadsAsync(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Remove successfully uploaded files.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadFiles(System.Collections.Generic.IEnumerable{System.IO.FileInfo},System.String,FluentFTP.FtpRemoteExists,System.Boolean,FluentFTP.FtpVerify,FluentFTP.FtpError,System.Threading.CancellationToken,System.IProgress{FluentFTP.FtpProgress},System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Uploads the given file paths to a single folder on the server asynchronously.
            All files are placed directly into the given folder regardless of their path on the local filesystem.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            Faster than uploading single files with <see cref="o:UploadFile"/> since it performs a single "file exists" check rather than one check per file.
            </summary>
            <param name="localFiles">The full or relative paths to the files on the local file system. Files can be from multiple folders.</param>
            <param name="remoteDir">The full or relative path to the directory that files will be uploaded on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance,
             but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist.</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="errorHandling">Used to determine how errors are handled</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="rules">Only files that pass all these rules are uploaded, and the files that don't pass are skipped.</param>
            <returns>
            Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to <see cref="F:FluentFTP.FtpRemoteExists.Overwrite"/>.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.GetFilesToUpload2Async(System.Collections.Generic.IEnumerable{System.String},System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean},System.Threading.CancellationToken)">
            <summary>
            Get a list of all the files that need to be uploaded
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.UploadStream(System.IO.Stream,System.String,FluentFTP.FtpRemoteExists,System.Boolean,System.IProgress{FluentFTP.FtpProgress},System.Threading.CancellationToken)">
            <summary>
            Uploads the specified stream as a file onto the server asynchronously.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            </summary>
            <param name="fileStream">The full data of the file, as a stream</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance,
             but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist. Slows down upload due to additional checks required.</param>
            <param name="token">The token that can be used to cancel the entire process.</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <returns>FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer.</returns>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.VerifyFXPTransferAsync(System.String,FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Verify an FXP transfer
            </summary>
            <param name="sourcePath"></param>
            <param name="fxpDestinationClient"></param>
            <param name="remotePath"></param>
            <param name="token"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.VerifyTransferAsync(System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Verify a file transfer
            </summary>
            <param name="localPath"></param>
            <param name="remotePath"></param>
            <param name="token"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.#ctor">
            <summary>
            Creates a new instance of an async FTP Client. You will have to setup the FTP host and credentials before connecting.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.#ctor(System.String,System.Int32,FluentFTP.FtpConfig,FluentFTP.IFtpLogger)">
            <summary>
            Creates a new instance of an async FTP Client, with the given host and credentials.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.#ctor(System.String,System.String,System.String,System.Int32,FluentFTP.FtpConfig,FluentFTP.IFtpLogger)">
            <summary>
            Creates a new instance of an async FTP Client, with the given host and credentials.
            </summary>
        </member>
        <member name="M:FluentFTP.AsyncFtpClient.#ctor(System.String,System.Net.NetworkCredential,System.Int32,FluentFTP.FtpConfig,FluentFTP.IFtpLogger)">
            <summary>
            Creates a new instance of an async FTP Client, with the given host and credentials.
            </summary>
        </member>
        <member name="T:FluentFTP.Client.BaseClient.BaseFtpClient">
            <summary>
            The base object for FtpClient, AsyncFtpClient
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CalculateAppendLocalPosition(System.String,FluentFTP.FtpRemoteExists,System.Int64)">
            <summary>
            Calculate the position from which to append
            </summary>
            <param name="remotePath"></param>
            <param name="existsMode"></param>
            <param name="remotePosition"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CalculateTransferChunkSize(System.Int64,System.Int32)">
            <summary>
            Calculate transfer chunk size taking rate control into account
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CanUploadFile(FluentFTP.FtpResult,FluentFTP.FtpListItem[],FluentFTP.FtpRemoteExists,FluentFTP.FtpRemoteExists@)">
            <summary>
            Check if the file is cleared to be uploaded, taking its existence/filesize and existsMode options into account.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CheckFileExistsBySize(FluentFTP.FtpSizeReply)">
            <summary>
            Try using the SIZE command to check if file exists
            </summary>
            <param name="sizeReply"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.SupportsChecksum">
            <summary>
            Does the server support checksums?
            </summary>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ValidateChecksumAlgorithm(FluentFTP.FtpHashAlgorithm)">
            <summary>
            Is the checksum algorithm valid?
            </summary>
            <param name="algorithm"></param>
            <exception cref="T:FluentFTP.Exceptions.FtpHashUnsupportedException"></exception>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CleanHashResult(System.String,System.String)">
            <summary>
            Cleanup the hash result
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetFirstMutualChecksum(FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Get the first checksum algorithm mutually supported by both servers.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FluentFTP#IInternalFtpClient#CloseDataStreamInternal(FluentFTP.FtpDataStream)">
            <summary>
            Disconnects a data stream
            </summary>
            <param name="stream">The data stream to close</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ConvertDate(System.DateTime,System.Boolean)">
            <summary>
            If reverse is false, converts the date provided by the FTP server into the timezone required locally.
            If reverse is true, converts the local timezone date into the date required by the FTP server.
            
            Affected by properties: TimeConversion, TimeZone, LocalTimeZone.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.DeleteExtraLocalFiles(System.String,FluentFTP.FtpFolderSyncMode,System.Collections.Generic.Dictionary{System.String,System.Boolean},System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Delete the extra local files if in mirror mode
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CanDeleteLocalFile(System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.String)">
            <summary>
            Check if the local file can be deleted, based on the DownloadDirectoryDeleteExcluded property
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FluentFTP#IInternalFtpClient#ExecuteInternal(System.String)">
            <summary>
            Executes a command
            </summary>
            <param name="command">The command to execute</param>
            <returns>The servers reply to the command</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.OnPostExecute(System.String)">
            <summary>
            Things to do after executing a command
            </summary>
            <param name="command"></param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetFeatures(FluentFTP.FtpReply)">
            <summary>
            Populates the capabilities flags based on capabilities
            supported by this server. This method is overridable
            so that new features can be supported
            </summary>
            <param name="reply">The reply object from the FEAT command. The InfoMessages property will
            contain a list of the features the server supported delimited by a new line '\n' character.</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.SetFeatures(System.Collections.Generic.List{FluentFTP.FtpCapability})">
            <summary>
            Forcibly set the capabilities of your FTP server.
            By default capabilities are loaded automatically after calling Connect and you don't need to use this method.
            This is only for advanced use-cases.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.HasFeature(FluentFTP.FtpCapability)">
            <summary>
            Performs a bitwise and to check if the specified
            flag is set on the <see cref="P:FluentFTP.Client.BaseClient.BaseFtpClient.Capabilities"/>  property.
            </summary>
            <param name="cap">The <see cref="T:FluentFTP.FtpCapability"/> to check for</param>
            <returns>True if the feature was found, false otherwise</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FilePassesRules(FluentFTP.FtpResult,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Boolean,FluentFTP.FtpListItem)">
            <summary>
            Returns true if the file passes all the rules
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetFilesToDownload(System.String,System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.FtpListItem[],System.Collections.Generic.Dictionary{System.String,System.Boolean})">
            <summary>
            Get a list of all the files and folders that need to be downloaded
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetFilesToDownload2(System.String,System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean})">
            <summary>
            Get a list of all the files and folders that need to be downloaded
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.RecordFileToDownload(System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean},System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.FtpListItem,System.String,System.String)">
            <summary>
            Create an FtpResult object for the given file to be downloaded, and check if the file passes the rules.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetFilesToUpload(System.String,System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean},System.String[])">
            <summary>
            Get a list of all the files that need to be uploaded within the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.RecordFileToUpload(System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean},System.Collections.Generic.List{FluentFTP.FtpResult},System.String,System.String)">
            <summary>
            Create an FtpResult object for the given file to be uploaded, and check if the file passes the rules.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetEnhancedPassivePort(FluentFTP.FtpReply,System.String@,System.Int32@)">
            <summary>
            Parse the host and port number from an EPSV response
            Handles (|||nnnn|) and (!!!nnnn!)
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetPassivePort(FluentFTP.FtpDataConnectionType,FluentFTP.FtpReply,System.String@,System.Int32@)">
            <summary>
            Parse the host and port number from an PASV or PASVEX response
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetLocalAddress(System.Net.IPAddress)">
            <summary>
            Returns the IP address to be sent to the server for the active connection.
            </summary>
            <param name="ip"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetReplyInternal">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetReplyInternal(System.String)">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <param name="command">We are waiting for the response to which command?</param>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetReplyInternal(System.String,System.Boolean)">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <param name="command">We are waiting for the response to which command?</param>
            <param name="exhaustNoop">Set to true to select the NOOP devouring mode</param>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetReplyInternal(System.String,System.Boolean,System.Int32)">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <param name="command">We are waiting for the response to which command?</param>
            <param name="exhaustNoop">Set to true to select the NOOP devouring mode</param>
            <param name="timeOut">-1 non-blocking, no timeout, >0 exhaustNoop mode, timeOut in seconds</param>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ProcessGetReply(FluentFTP.FtpReply,System.String)">
            <summary>
            Process the returned data after command was executed
            </summary>
            <param name="reply"></param>
            <param name="command"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.DecodeStringToReply(System.String,FluentFTP.FtpReply@)">
            <summary>
            Decodes the given FTP response string into a FtpReply, separating the FTP return code and message.
            Returns true if the string was decoded correctly or false if it is not a standard format FTP response.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetSubDirectoriesToTransfer(System.String,System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.String[])">
            <summary>
            Make a list of subdirectories to transfer
            </summary>
            <param name="sourceFolder"></param>
            <param name="remoteFolder"></param>
            <param name="rules"></param>
            <param name="results"></param>
            <param name="dirListing"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.GetSubDirectoriesToUpload(System.String,System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.String[])">
            <summary>
            Get a list of all the sub directories that need to be created within the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CanDeleteRemoteFile(System.Collections.Generic.List{FluentFTP.Rules.FtpRule},FluentFTP.FtpListItem)">
            <summary>
            Check if the remote file can be deleted, based on the UploadDirectoryDeleteExcluded property
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FluentFTP#IInternalFtpClient#GetWorkingDirectoryInternal">
            <summary>
            Gets the current working directory
            </summary>
            <returns>The current working directory, ./ if the response couldn't be parsed.</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ReadCurrentWorkingDirectory">
            <summary>
            Get the reply to the PWD command
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ParseWorkingDirectory(FluentFTP.FtpReply)">
            <summary>
            Parse the string returned from a PWD command
            </summary>
            <param name="reply"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.IsProxy">
            <summary>
            Checks if this FTP/FTPS connection is made through a proxy.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.WasGetListingRecursive(FluentFTP.FtpListOption)">
            <summary>
            Checks whether <see cref="o:GetListing"/> will be called recursively or not.
            </summary>
            <param name="options"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.LoadBasicListingInfo(System.String@,FluentFTP.FtpListItem@,System.Collections.Generic.List{FluentFTP.FtpListItem},System.Collections.Generic.List{System.String},System.Int32@,System.String,System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Get a listing
            </summary>
            <param name="path"></param>
            <param name="item"></param>
            <param name="lst"></param>
            <param name="rawlisting"></param>
            <param name="i"></param>
            <param name="listcmd"></param>
            <param name="buf"></param>
            <param name="isRecursive"></param>
            <param name="isIncludeSelf"></param>
            <param name="machineList"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.IsItemSelf(System.String,FluentFTP.FtpListItem)">
            <summary>
            
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.CalculateGetListingCommand(System.String,FluentFTP.FtpListOption,System.String@,System.Boolean@)">
            <summary>
            Determine which command to use for getting a listing
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.IsServerSideRecursionSupported(FluentFTP.FtpListOption)">
            <summary>
            Can the server do recursion for us?
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.LoadProfile(FluentFTP.FtpProfile)">
            <summary>
            Load the given connection profile and configure the FTP client instance accordingly.
            </summary>
            <param name="profile">Connection profile. Not modified.</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.LogVersion">
            <summary>
            Log the version of the running assembly
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.LogFunction(System.String,System.Object[])">
            <summary>
            Log a function call with relevant arguments
            </summary>
            <param name="function">The name of the API function</param>
            <param name="args">The args passed to the function</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.Log(FluentFTP.FtpTraceLevel,System.String)">
            <summary>
            Log a message
            </summary>
            <param name="eventType">The type of tracing event</param>
            <param name="message">The message to write</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.LogWithPrefix(FluentFTP.FtpTraceLevel,System.String,System.Exception,System.Boolean)">
            <summary>
            Log a message, adding an automatic prefix to the message based on the `eventType`
            </summary>
            <param name="eventType">The type of tracing event</param>
            <param name="message">The message to write</param>
            <param name="exception">An optional exeption</param>
            <param name="exNewLine">Write an optional exeption on a new line</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.LogToDebugOrConsole(System.String)">
            <summary>
            Log a message to the debug output and console.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FluentFTP#IInternalFtpClient#LogLine(FluentFTP.FtpTraceLevel,System.String)">
            <summary>
            To allow for external connected classes to use the attached logger.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FluentFTP#IInternalFtpClient#LogStatus(FluentFTP.FtpTraceLevel,System.String,System.Exception,System.Boolean)">
            <summary>
            To allow for external connected classes to use the attached logger.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Logger">
            <summary>
            Should the function calls be logged in Verbose mode?
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.LegacyLogger">
            <summary>
            Add a custom listener here to get events every time a message is logged.
            This is the older system, prefer using the ILogger based `Logger` property.
            This system will never be removed, you can safely use it in your applications.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Config">
            <summary>
            All the configuration settings for this FTP client.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.ServerHandler">
            <summary>
            Gets the type of the FTP server handler.
            This is automatically set based on the detected FTP server, if it is detected. 
            You can manually set this property to implement handling for a custom FTP server.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Encoding">
            <summary>
            Gets or sets the text encoding being used when talking with the server. The default
            value is <see cref="P:System.Text.Encoding.ASCII"/> however upon connection, the client checks
            for UTF8 support and if it's there this property is switched over to
            <see cref="P:System.Text.Encoding.UTF8"/>. Manually setting this value overrides automatic detection
            based on the FEAT list; if you change this value it's always used
            regardless of what the server advertises, if anything.
            </summary>
        </member>
        <member name="F:FluentFTP.Client.BaseClient.BaseFtpClient.LastCommandTimestamp">
            <summary>
            When last command was sent (NOOP or other), for having <see cref="M:FluentFTP.FtpClient.Noop"/>/<see cref="M:FluentFTP.AsyncFtpClient.NoopAsync(System.Threading.CancellationToken)"/>.
            Respects the <see cref="P:FluentFTP.FtpConfig.NoopInterval"/>.
            </summary>
        </member>
        <member name="F:FluentFTP.Client.BaseClient.BaseFtpClient.LastCommandExecuted">
            <summary>
            To help in logging / debugging
            </summary>
        </member>
        <member name="F:FluentFTP.Client.BaseClient.BaseFtpClient.m_status">
            <summary>
            Current FTP client status flags used for improving performance and caching data.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Status">
            <summary>
            Returns the current FTP client status flags. For advanced use only.
            </summary>
        </member>
        <member name="F:FluentFTP.Client.BaseClient.BaseFtpClient.m_lock">
            <summary>
            Used for internally synchronizing access to this
            object from multiple threads
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Lock">
            <summary>
            For usage by FTP proxies only
            </summary>
        </member>
        <member name="F:FluentFTP.Client.BaseClient.BaseFtpClient.m_stream">
            <summary>
            Control connection socket stream
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FluentFTP#IInternalFtpClient#GetBaseStream">
            <summary>
            Gets the base stream for talking to the server via
            the control connection.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.IsDisposed">
            <summary>
            Gets a value indicating if this object has already been disposed.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.InternetProtocol">
            <summary>
            Gets the current internet protocol (IPV4 or IPV6) used by the socket connection.
            Returns FtpIpVersion.Unknown before connection.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.IsConnected">
            <summary>
            Returns true if the connection to the FTP server is open.
            WARNING: Returns true even if our credentials are incorrect but connection to the server is open.
            See the IsAuthenticated property if you want to check if we are correctly logged in.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.IsAuthenticated">
            <summary>
            Returns true if the connection to the FTP server is open and if the FTP server accepted our credentials.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.IsClone">
            <summary>
            Gets a value indicating if this control connection is a clone. This property
            is used with data streams to determine if the connection should be closed
            when the stream is closed. Servers typically only allow 1 data connection
            per control connection. If you try to open multiple data connections this
            object will be cloned for 2 or more resulting in N new connections to the
            server.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Host">
            <summary>
            The server to connect to
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Port">
            <summary>
            The port to connect to. If this value is set to 0 (Default) the port used
            will be determined by the type of SSL used or if no SSL is to be used it 
            will automatically connect to port 21.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Credentials">
            <summary>
            Credentials used for authentication
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.Capabilities">
            <summary>
            Gets the server capabilities represented by an array of capability flags
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.HashAlgorithms">
            <summary>
            Get the hash types supported by the server for use with the HASH Command.
            This is a recent extension to the protocol that is not fully
            standardized and is not guaranteed to work. See here for
            more details:
            http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.SslProtocolActive">
            <summary>
            The negotiated SSL/TLS protocol version.
            Will return a valid value after connection is complete.
            Before connection it will return `SslProtocols.None`.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.IsEncrypted">
            <summary>
            Checks if FTPS/SSL encryption is currently active.
            Useful to see if your server supports FTPS, when using FtpEncryptionMode.Auto. 
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.ValidateCertificateHandlerExists">
            <summary>
            Easiest way to check if a handler has been attached.
            </summary>
        </member>
        <member name="E:FluentFTP.Client.BaseClient.BaseFtpClient.ValidateCertificate">
            <summary>
            Event is fired to validate SSL certificates. If this event is
            not handled and there are errors validating the certificate
            the connection will be aborted.
            Not fired if ValidateAnyCertificate is set to true.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.SystemType">
            <summary>
            Gets the type of system/server that we're connected to. Typically begins with "WINDOWS" or "UNIX".
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.ServerType">
            <summary>
            Gets the type of the FTP server software that we're connected to.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.ServerOS">
            <summary>
            Gets the operating system of the FTP server that we're connected to.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.ConnectionType">
            <summary> Gets the connection type </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.LastReply">
            <summary> Gets the last reply received from the server</summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.LastReplies">
            <summary> Gets the last replies received from the server</summary>
        </member>
        <member name="T:FluentFTP.Client.BaseClient.BaseFtpClient.CustomParser">
            <summary>
            Callback format to implement your custom FTP listing line parser.
            </summary>
            <param name="line">The line from the listing</param>
            <param name="capabilities">The server capabilities</param>
            <param name="client">The FTP client</param>
            <returns>Return an FtpListItem object if the line can be parsed, else return null</returns>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.RecursiveList">
            <summary>
            Detect if your FTP server supports the recursive LIST command (LIST -R).
            If you know for sure that this is supported, return true here.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.SocketLocalEndPoint">
            <summary>
            Returns the local end point of the FTP socket, if it is available.
            </summary>
        </member>
        <member name="P:FluentFTP.Client.BaseClient.BaseFtpClient.SocketRemoteEndPoint">
            <summary>
            Returns the remote end point of the FTP socket, if it is available.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ReadStaleData(System.Boolean,System.String)">
            <summary>
            Data shouldn't be on the socket, if it is it probably means we've been disconnected.
            Read and discard whatever is there.
            Returns the stale data as text, if any, or null if none was found.
            </summary>
            <param name="logData">copy stale data information to logs?</param>
            <param name="logFrom">for the log information</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ReadStaleDataAsync(System.Boolean,System.String,System.Threading.CancellationToken)">
            <summary>
            Data shouldn't be on the socket, if it is it probably means we've been disconnected.
            Read and discard whatever is there.
            Returns the stale data as text, if any, or null if none was found.
            </summary>
            <param name="logData">copy stale data information to logs?</param>
            <param name="logFrom">called from where (text)</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ReportProgress(System.IProgress{FluentFTP.FtpProgress},System.Int64,System.Int64,System.Int64,System.TimeSpan,System.String,System.String,FluentFTP.FtpProgress)">
            <summary>
            Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ReportProgress(System.Action{FluentFTP.FtpProgress},System.Int64,System.Int64,System.Int64,System.TimeSpan,System.String,System.String,FluentFTP.FtpProgress)">
            <summary>
            Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.StartListeningOnPort(FluentFTP.FtpDataStream)">
            <summary>
            Open a local port on the given ActivePort or a random port.
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ValidateAutoDetect">
            <summary>
            Validate the client before the auto detect process
            </summary>
            <exception cref="T:System.ObjectDisposedException"></exception>
            <exception cref="T:FluentFTP.Exceptions.FtpException"></exception>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.FireValidateCertficate(FluentFTP.FtpSocketStream,FluentFTP.FtpSslValidationEventArgs)">
            <summary>
            Catches the socket stream ssl validation event and fires the event handlers
            attached to this object for validating SSL certificates
            </summary>
            <param name="stream">The stream that fired the event</param>
            <param name="e">The event args used to validate the certificate</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.OnValidateCertficate(FluentFTP.FtpSslValidationEventArgs)">
            <summary>
            Fires the SSL validation event
            </summary>
            <param name="e">Event Args</param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.VerifyTransferFileParams(System.String,FluentFTP.Client.BaseClient.BaseFtpClient,System.String,FluentFTP.FtpRemoteExists)">
            <summary>
            Verify that the client is usable
            </summary>
            <param name="sourcePath"></param>
            <param name="remoteClient"></param>
            <param name="remotePath"></param>
            <param name="existsMode"></param>
            <exception cref="T:System.ArgumentNullException"></exception>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:FluentFTP.Exceptions.FtpException"></exception>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.Clone">
            <summary>
            Clones the FTP client control connection. Used for opening multiple data streams.
            You will need to manually connect after cloning.
            </summary>
            <returns>A new FTP client connection with the same property settings as this one.</returns>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.AutoDispose">
            <summary>
            Disposes and disconnects this FTP client if it was auto-created for an internal operation.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.ValidateHost(System.Uri)">
            <summary>
            Check if the host parameter is valid
            </summary>
            <param name="host"></param>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.Dispose">
            <summary>
            Disconnects from the server, releases resources held by this
            object.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.BaseClient.BaseFtpClient.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="T:FluentFTP.Client.Modules.ConnectModule">
            <summary>
            Class responsible for automatically detecting working FTP settings to connect to a target FTP server.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.AutoDetect(FluentFTP.FtpClient,System.Boolean,System.Boolean)">
            <summary>
            Automatic FTP and FTPS connection negotiation.
            This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles.
            You can configure it to stop after finding the first successful profile, or to collect all successful profiles.
            You can then generate code for the profile using the FtpProfile.ToCode method.
            If no successful profiles are found, a blank list is returned.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.AutoDetectAsync(FluentFTP.AsyncFtpClient,System.Boolean,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Automatic FTP and FTPS connection negotiation.
            This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles.
            You can configure it to stop after finding the first successful profile, or to collect all successful profiles.
            You can then generate code for the profile using the FtpProfile.ToCode method.
            If no successful profiles are found, a blank list is returned.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.IsFtpsFailure(System.Collections.Generic.List{FluentFTP.FtpEncryptionMode},FluentFTP.FtpEncryptionMode,System.Exception)">
            <summary>
            Check if the server refused to support one type of FTPS encryption, and if so blacklist that type of encryption.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.IsPermanantConnectionFailure(System.Exception)">
            <summary>
            Check if its an auth failure or something permanent,
            so that we don't need to retry all the connection config combinations and can hard-abort the AutoConnect.
            Return the exception if it is a hard failure, or null if no issue is found.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.LoadProfile(FluentFTP.Client.BaseClient.BaseFtpClient,FluentFTP.FtpProfile)">
            <summary>
            Load the given connection profile and configure the FTP client instance accordingly.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.SetDefaultCertificateValidation(FluentFTP.Client.BaseClient.BaseFtpClient,FluentFTP.FtpProfile)">
            <summary>
            Create a default ValidateCertificate handler that accepts valid certificates.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.GetWorkingProfileFromHost(System.String,System.Collections.Generic.List{FluentFTP.FtpEncryptionMode}@)">
            <summary>
            Return a known working connection profile from the host/port combination.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ConnectModule.CheckCriticalSequence(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Modify the `Status.InCriticalSequence` flag based on the FTP command sent, by checking against a list of known critical commands.
            A critical sequence will not be interrupted by an automatic reconnect.
            </summary>
        </member>
        <member name="T:FluentFTP.Client.Modules.LogMaskModule">
            <summary>
            Class responsible for masking out sensitive data from FTP logs.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ServerFeatureModule.Detect(System.Collections.Generic.List{FluentFTP.FtpCapability},FluentFTP.FtpHashAlgorithm@,System.String[])">
            <summary>
            Populates the capabilities flags based on capabilities given in the list of strings.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ServerFeatureModule.Assume(FluentFTP.Servers.FtpBaseServer,System.Collections.Generic.List{FluentFTP.FtpCapability},FluentFTP.FtpHashAlgorithm@)">
            <summary>
            Assume the FTP Server's capabilities if it does not support the FEAT command.
            </summary>
        </member>
        <member name="T:FluentFTP.Client.Modules.ServerModule">
            <summary>
            All servers with server-specific handling and support are listed here.
            Its possible you can connect to other FTP servers too.
            
            To add support for another standard FTP server:
            	1) Add a new enum in the `FtpServer` enum
            	2) Add a new class extending `FtpBaseServer` under the `Servers.Handlers` NS
            	3) Create a new instance of your class in `FtpHandlerIndex.AllServers`
            	
            To support a custom FTP server you only need to extend `FtpBaseServer`
            and set it on your client.ServerHandler before calling Connect.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ServerModule.DetectFtpServer(FluentFTP.Client.BaseClient.BaseFtpClient,FluentFTP.FtpReply)">
            <summary>
            Detect the FTP Server based on the welcome message sent by the server after getting the 220 connection command.
            Its the primary method.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ServerModule.GetServerHandler(FluentFTP.FtpServer)">
            <summary>
            Get a default FTP Server handler based on the enum value.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ServerModule.DetectFtpOSBySyst(FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Detect the FTP Server based on the response to the SYST connection command.
            Its a fallback method if the server did not send an identifying welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Client.Modules.ServerModule.DetectFtpServerBySyst(FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Detect the FTP Server based on the response to the SYST connection command.
            Its a fallback method if the server did not send an identifying welcome message.
            </summary>
        </member>
        <member name="F:FluentFTP.Client.Modules.ServerStringModule.fileNotFound">
            <summary>
            Error messages returned by various servers when a file does not exist.
            Instead of throwing an error, we use these to detect and handle the file detection properly.
            MUST BE LOWER CASE!
            </summary>
        </member>
        <member name="F:FluentFTP.Client.Modules.ServerStringModule.fileSizeNotInASCII">
            <summary>
            Error messages returned by various servers when a file size is not supported in ASCII mode.
            MUST BE LOWER CASE!
            </summary>
        </member>
        <member name="F:FluentFTP.Client.Modules.ServerStringModule.unexpectedEOF">
            <summary>
            Error messages returned by various servers when a file transfer temporarily failed.
            MUST BE LOWER CASE!
            </summary>
        </member>
        <member name="F:FluentFTP.Client.Modules.ServerStringModule.folderExists">
            <summary>
            Error messages returned by various servers when a folder already exists.
            Instead of throwing an error, we use these to detect and handle the folder creation properly.
            MUST BE LOWER CASE!
            </summary>
        </member>
        <member name="F:FluentFTP.Client.Modules.ServerStringModule.failedTLS">
            <summary>
            Error messages returned by various servers when the connection failed due to wrong TLS version used.
            MUST BE LOWER CASE!
            </summary>
        </member>
        <member name="T:FluentFTP.FtpClient">
            <summary>
            An FTP client that manages a connection to a single FTP server.
            Interacts with any FTP/FTPS server and provides a high-level and low-level API to work with files and folders.
            Uses synchronous operations only. For the async version use `AsyncFtpClient`.
            
            Debugging problems with FTP is much easier when you enable logging. Visit our Github Wiki for more info.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.#ctor">
            <summary>
            Creates a new instance of a synchronous FTP Client. You will have to setup the FTP host and credentials before connecting.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.#ctor(System.String,System.Int32,FluentFTP.FtpConfig,FluentFTP.IFtpLogger)">
            <summary>
            Creates a new instance of a synchronous FTP Client, with the given host and credentials.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.#ctor(System.String,System.String,System.String,System.Int32,FluentFTP.FtpConfig,FluentFTP.IFtpLogger)">
            <summary>
            Creates a new instance of a synchronous FTP Client, with the given host and credentials.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.#ctor(System.String,System.Net.NetworkCredential,System.Int32,FluentFTP.FtpConfig,FluentFTP.IFtpLogger)">
            <summary>
            Creates a new instance of a synchronous FTP Client, with the given host and credentials.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.Authenticate">
            <summary>
            Performs a login on the server. This method is overridable so
            that the login procedure can be changed to support, for example,
            a FTP proxy.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.Authenticate(System.String,System.String,System.String)">
            <summary>
            Performs a login on the server. This method is overridable so
            that the login procedure can be changed to support, for example,
            a FTP proxy.
            </summary>
            <exception cref="T:FluentFTP.Exceptions.FtpAuthenticationException">On authentication failures</exception>
            <remarks>
            To handle authentication failures without retries, catch FtpAuthenticationException.
            </remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.AutoConnect">
            <summary>
            Automatic FTP and FTPS connection negotiation.
            This method tries every possible combination of the FTP connection properties, and connects to the first successful profile.
            Returns the FtpProfile if the connection succeeded, or null if it failed.
            It will throw exceptions for permanent failures like invalid host or invalid credentials.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.AutoDetect(System.Boolean,System.Boolean)">
            <summary>
            Automatic FTP and FTPS connection negotiation.
            This method tries every possible combination of the FTP connection properties, and returns the list of successful connection profiles.
            You can configure it to stop after finding the first successful profile, or to collect all successful profiles.
            You can then generate code for the profile using the FtpProfile.ToCode method.
            If no successful profiles are found, a blank list is returned.
            </summary>
            <param name="firstOnly">Find all successful profiles (false) or stop after finding the first successful profile (true)</param>
            <param name="cloneConnection">Use a new cloned FtpClient for testing connection profiles (true) or use the source FtpClient (false)</param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.FtpClient.Chmod(System.String,FluentFTP.FtpPermission,FluentFTP.FtpPermission,FluentFTP.FtpPermission)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="owner">The owner permissions</param>
            <param name="group">The group permissions</param>
            <param name="other">The other permissions</param>
        </member>
        <member name="M:FluentFTP.FtpClient.Chmod(System.String,System.Int32)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="permissions">The permissions in CHMOD format</param>
        </member>
        <member name="M:FluentFTP.FtpClient.CompareFile(System.String,System.String,FluentFTP.FtpCompareOption)">
            <summary>
            Compare the specified local file with the remote file on the FTP server using various kinds of quick equality checks.
            In Auto mode, the file size and checksum are compared.
            Comparing the checksum of a file is a quick way to check if the contents of the files are exactly equal without downloading a copy of the file.
            You can use the option flags to compare any combination of: file size, checksum, date modified.
            </summary>
            <param name="localPath">The full or relative path to the file on the local file system</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="options">Types of equality checks to perform. Use Auto to compare file size and checksum.</param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.FtpClient.Connect">
            <summary>
            Connect
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.Connect(FluentFTP.FtpProfile)">
            <summary>
            Connect to the given server profile.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.Connect(System.Boolean)">
            <summary>
            Connect to the server
            </summary>
            <param name="reConnect"> true indicates that we want a 
            reconnect to take place.</param>
            <exception cref="T:System.ObjectDisposedException">Thrown if this object has been disposed.</exception>
        </member>
        <member name="M:FluentFTP.FtpClient.Connect(FluentFTP.FtpSocketStream)">
            <summary>
            Connect to the FTP server. Overridden in proxy classes.
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:FluentFTP.FtpClient.Connect(FluentFTP.FtpSocketStream,System.String,System.Int32,FluentFTP.FtpIpVersion)">
            <summary>
            Connect to the FTP server. Overridden in proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.CreateDirectory(System.String)">
            <summary>
            Creates a directory on the server. If the preceding
            directories do not exist, then they are created.
            </summary>
            <param name="path">The full or relative path to the new remote directory</param>
        </member>
        <member name="M:FluentFTP.FtpClient.CreateDirectory(System.String,System.Boolean)">
            <summary>
            Creates a directory on the server
            </summary>
            <param name="path">The full or relative path to the new remote directory</param>
            <param name="force">Try to force all non-existent pieces of the path to be created</param>
            <returns>True if directory was created, false if it was skipped</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.DeleteDirectory(System.String)">
            <summary>
            Deletes the specified directory and all its contents.
            </summary>
            <param name="path">The full or relative path of the directory to delete</param>
        </member>
        <member name="M:FluentFTP.FtpClient.DeleteDirectory(System.String,FluentFTP.FtpListOption)">
            <summary>
            Deletes the specified directory and all its contents.
            </summary>
            <param name="path">The full or relative path of the directory to delete</param>
            <param name="options">Useful to delete hidden files or dot-files.</param>
        </member>
        <member name="M:FluentFTP.FtpClient.DeleteDirInternal(System.String,System.Boolean,FluentFTP.FtpListOption,System.Boolean,System.Boolean)">
            <summary>
            Deletes the specified directory and all its contents.
            </summary>
            <param name="path">The full or relative path of the directory to delete</param>
            <param name="deleteContents">If the directory is not empty, remove its contents</param>
            <param name="options">Useful to delete hidden files or dot-files.</param>
            <param name="deleteFinalDir">Delete completely or leave the top level dir</param>
            <param name="firstCall">Internally used to determine top level</param>
        </member>
        <member name="M:FluentFTP.FtpClient.DeleteFile(System.String)">
            <summary>
            Deletes a file on the server
            </summary>
            <param name="path">The full or relative path to the file</param>
        </member>
        <member name="M:FluentFTP.FtpClient.DirectoryExists(System.String)">
            <summary>
            Tests if the specified directory exists on the server. This
            method works by trying to change the working directory to
            the path specified. If it succeeds, the directory is changed
            back to the old working directory and true is returned. False
            is returned otherwise and since the CWD failed it is assumed
            the working directory is still the same.
            </summary>
            <param name="path">The path of the directory</param>
            <returns>True if it exists, false otherwise.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.DisableUTF8">
            <summary>
            Disables UTF8 support and changes the Encoding property
            back to ASCII. If the server returns an error when trying
            to turn UTF8 off a FtpCommandException will be thrown.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.Disconnect">
            <summary>
            Disconnects from the server
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.DiscoverSslSessionLength(System.String,System.Int32)">
            <summary>
            Automatically discover the SSL command limit of your currently connected FTP server.
            It returns the value that can be used to set SslSessionLength.
            </summary>
            <param name="command">The command to issue</param>
            <param name="maxTries">Maximum number of commands to issue</param>
            <returns>The detected command limit, 0 if infinite</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadBytes(System.Byte[]@,System.String,System.Int64,System.Action{FluentFTP.FtpProgress},System.Int64)">
            <summary>
            Downloads the specified file and return the raw byte array.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            </summary>
            <param name="outBytes">The variable that will receive the bytes.</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="restartPosition">The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index.</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <param name="stopPosition">The last byte index that should be downloaded, or 0 if the entire file should be downloaded.</param>
            <returns>If true then the file was downloaded, false otherwise.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadDirectory(System.String,System.String,FluentFTP.FtpFolderSyncMode,FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Action{FluentFTP.FtpProgress})">
            <summary>
            Downloads the specified directory onto the local file system.
            In Mirror mode, we will download missing files, and delete any extra files from disk that are not present on the server. This is very useful when creating an exact local backup of an FTP directory.
            In Update mode, we will only download missing files and preserve any extra files on disk. This is useful when you want to simply download missing files from an FTP directory.
            Only downloads the files and folders matching all the rules provided, if any.
            All exceptions during downloading are caught, and the exception is stored in the related FtpResult object.
            </summary>
            <param name="localFolder">The full path of the local folder on disk to download into. It is created if it does not exist.</param>
            <param name="remoteFolder">The full path of the remote FTP folder that you want to download. If it does not exist, an empty result list is returned.</param>
            <param name="mode">Mirror or Update mode, as explained above</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="rules">Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder.</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
            <returns>
            Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadServerFiles(System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress})">
            <summary>
            Download all the listed files and folders from the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadFile(System.String,System.String,FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress})">
            <summary>
            Downloads the specified file onto the local file system.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            </summary>
            <param name="localPath">The full or relative path to the file on the local file system</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <returns>FtpStatus flag indicating if the file was downloaded, skipped or failed to transfer.</returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
            </remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadFileToFile(System.String,System.String,FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpProgress)">
            <summary>
            Download from a remote file to a local file
            </summary>
            <param name="localPath"></param>
            <param name="remotePath"></param>
            <param name="existsMode"></param>
            <param name="verifyOptions"></param>
            <param name="progress"></param>
            <param name="metaProgress"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:FluentFTP.Exceptions.FtpException"></exception>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadFileInternal(System.String,System.String,System.IO.Stream,System.Int64,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpProgress,System.Int64,System.Boolean,System.Int64)">
            <summary>
            Download a file from the server and write the data into the given stream.
            Reads data in chunks. Retries if server disconnects midway.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.ResumeDownload(System.String,System.IO.Stream@,System.Int64,System.IO.IOException)">
            <summary>
            Setup a resume on failure of download
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadFiles(System.String,System.Collections.Generic.IEnumerable{System.String},FluentFTP.FtpLocalExists,FluentFTP.FtpVerify,FluentFTP.FtpError,System.Action{FluentFTP.FtpProgress},System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Downloads the specified files into a local single directory.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            Same speed as <see cref="o:DownloadFile"/>.
            </summary>
            <param name="localDir">The full or relative path to the directory that files will be downloaded into.</param>
            <param name="remotePaths">The full or relative paths to the files on the server</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="errorHandling">Used to determine how errors are handled</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="rules">Only files that pass all these rules are downloaded, and the files that don't pass are skipped.</param>
            <returns>
            Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.PurgeSuccessfulDownloads(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Remove successfully downloaded files.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.DownloadStream(System.IO.Stream,System.String,System.Int64,System.Action{FluentFTP.FtpProgress},System.Int64)">
            <summary>
            Downloads the specified file into the specified stream.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it downloads data in chunks.
            </summary>
            <param name="outStream">The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="restartPosition">The size of the existing file in bytes, or 0 if unknown. The download restarts from this byte index.</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <param name="stopPosition">The last byte index that should be downloaded, or 0 if the entire file should be downloaded.</param>
            <returns>If true then the file was downloaded, false otherwise.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.EmptyDirectory(System.String)">
            <summary>
            Deletes the contents of the specified directory, without deleting the directory itself.
            </summary>
            <param name="path">The full or relative path of the directorys contents to delete</param>
        </member>
        <member name="M:FluentFTP.FtpClient.EmptyDirectory(System.String,FluentFTP.FtpListOption)">
            <summary>
            Deletes the contents of the specified directory, without deleting the directory itself.
            </summary>
            <param name="path">The full or relative path of the directorys contents to delete</param>
            <param name="options">Useful to delete hidden files or dot-files.</param>
        </member>
        <member name="M:FluentFTP.FtpClient.Execute(System.String)">
            <summary>
            Executes a command
            </summary>
            <param name="command">The command to execute</param>
            <returns>The servers reply to the command</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.ExecuteDownloadText(System.String)">
            <summary>
            Execute a custom FTP command and read the data channel to return its multiline output.
            </summary>
            <param name="command">The command to issue which produces output</param>
            <returns>A list of string objects corresponding to the multi-line response by the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.ExecuteDownloadTextInternal(System.String,System.Boolean)">
            <summary>
            Execute a custom FTP command and return its multiline output.
            </summary>
            <param name="command">The command to issue which produces output</param>
            <param name="retry">Retry the command execution on temporary failure?</param>
        </member>
        <member name="M:FluentFTP.FtpClient.FileExists(System.String)">
            <summary>
            Checks if a file exists on the server.
            </summary>
            <param name="path">The full or relative path to the file</param>
            <returns>True if the file exists</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetAbsoluteDir(System.String)">
            <summary>
            Ensure a relative dir is absolute by prepending the working dir
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.GetAbsoluteFilePath(System.String,System.String)">
            <summary>
            Concat a path and a filename
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.GetAbsolutePath(System.String)">
            <summary>
            Ensure a relative path is absolute by prepending the working dir
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.GetChecksum(System.String,FluentFTP.FtpHashAlgorithm)">
            <summary>
            Retrieves a checksum of the given file using the specified checksum algorithm, or using the first available algorithm that the server supports.
            </summary>
            <remarks>
            The algorithm used goes in this order:
            1. HASH command using the first supported algorithm.
            2. MD5 / XMD5 / MMD5 commands
            3. XSHA1 command
            4. XSHA256 command
            5. XSHA512 command
            6. XCRC command
            </remarks>
            <param name="path">Full or relative path of the file to checksum</param>
            <param name="algorithm">Specify an algorithm that you prefer, or NONE to use the first available algorithm. If the preferred algorithm is not supported, a blank hash is returned.</param>
            <returns><see cref="T:FluentFTP.FtpHash"/> object containing the value and algorithm. Use the <see cref="P:FluentFTP.FtpHash.IsValid"/> property to
            determine if this command was successful. <see cref="T:FluentFTP.Exceptions.FtpCommandException"/>s can be thrown from
            the underlying calls.</returns>
            <exception cref="T:FluentFTP.Exceptions.FtpCommandException">The command fails</exception>
        </member>
        <member name="M:FluentFTP.FtpClient.GetHashInternal(System.String,System.String)">
            <summary>
            Gets the hash of the specified file using the given command.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.SetHashAlgorithmInternal(FluentFTP.FtpHashAlgorithm)">
            <summary>
            Sets the hash algorithm on the server to use for the HASH command. 
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.HashCommandInternal(System.String)">
            <summary>
            Gets the hash of an object on the server using the currently selected hash algorithm.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.GetChmod(System.String)">
            <summary>
            Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
            Throws FtpCommandException if there is an issue.
            Returns 0 if the server did not specify a permission value.
            Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
            </summary>
            <param name="path">The full or relative path to the item</param>
        </member>
        <member name="M:FluentFTP.FtpClient.GetFilePermissions(System.String)">
            <summary>
            Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
            Throws FtpCommandException if there is an issue.
            Returns null if the server did not specify a permission value.
            Use `GetChmod` if you required the integer value instead.
            </summary>
            <param name="path">The full or relative path to the item</param>
        </member>
        <member name="M:FluentFTP.FtpClient.GetFileSize(System.String,System.Int64)">
            <summary>
            Gets the size of a remote file, in bytes.
            </summary>
            <param name="path">The full or relative path of the file</param>
            <param name="defaultValue">Value to return if there was an error obtaining the file size, or if the file does not exist</param>
            <returns>The size of the file, or defaultValue if there was a problem.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetFileSizeInternal(System.String,FluentFTP.FtpSizeReply,System.Int64)">
            <summary>
            Gets the file size of an object, without locking
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.GetListing">
            <summary>
            Gets a file listing from the server from the current working directory. Each <see cref="T:FluentFTP.FtpListItem"/> object returned
            contains information about the file that was able to be retrieved. 
            </summary>
            <remarks>
            If a <see cref="T:System.DateTime"/> property is equal to <see cref="F:System.DateTime.MinValue"/> then it means the 
            date in question was not able to be retrieved. If the <see cref="P:FluentFTP.FtpListItem.Size"/> property
            is equal to 0, then it means the size of the object could also not
            be retrieved.
            </remarks>
            <returns>An array of FtpListItem objects</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetListing(System.String)">
            <summary>
            Gets a file listing from the server. Each <see cref="T:FluentFTP.FtpListItem"/> object returned
            contains information about the file that was able to be retrieved. 
            </summary>
            <remarks>
            If a <see cref="T:System.DateTime"/> property is equal to <see cref="F:System.DateTime.MinValue"/> then it means the 
            date in question was not able to be retrieved. If the <see cref="P:FluentFTP.FtpListItem.Size"/> property
            is equal to 0, then it means the size of the object could also not
            be retrieved.
            </remarks>
            <param name="path">The path of the directory to list</param>
            <returns>An array of FtpListItem objects</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetListing(System.String,FluentFTP.FtpListOption)">
            <summary>
            Gets a file listing from the server. Each <see cref="T:FluentFTP.FtpListItem"/> object returned
            contains information about the file that was able to be retrieved. 
            </summary>
            <remarks>
            If a <see cref="T:System.DateTime"/> property is equal to <see cref="F:System.DateTime.MinValue"/> then it means the 
            date in question was not able to be retrieved. If the <see cref="P:FluentFTP.FtpListItem.Size"/> property
            is equal to 0, then it means the size of the object could also not
            be retrieved.
            </remarks>
            <param name="path">The path of the directory to list</param>
            <param name="options">Options that dictate how a list is performed and what information is gathered.</param>
            <returns>An array of FtpListItem objects</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetListingInternal(System.String,FluentFTP.FtpListOption,System.Boolean)">
            <summary>
            Get the records of a file listing and retry if temporary failure.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.GetListingRecursive(System.String,FluentFTP.FtpListOption)">
            <summary>
            Recursive method of GetListing, to recurse through directories on servers that do not natively support recursion.
            Automatically called by GetListing where required.
            Uses flat recursion instead of head recursion.
            </summary>
            <param name="path">The path of the directory to list</param>
            <param name="options">Options that dictate how a list is performed and what information is gathered.</param>
            <returns>An array of FtpListItem objects</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetModifiedTime(System.String)">
            <summary>
            Gets the modified time of a remote file.
            </summary>
            <param name="path">The full path to the file</param>
            <returns>The modified time, or <see cref="F:System.DateTime.MinValue"/> if there was a problem</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetNameListing">
            <summary>
            Returns a file/directory listing using the NLST command.
            </summary>
            <returns>A string array of file and directory names if any were returned.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetNameListing(System.String)">
            <summary>
            Returns a file/directory listing using the NLST command.
            </summary>
            <param name="path">The path of the directory to list</param>
            <returns>A string array of file and directory names if any were returned.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetObjectInfo(System.String,System.Boolean)">
            <summary>
            Returns information about a file system object. Returns null if the server response can't
            be parsed or the server returns a failure completion code. The error for a failure
            is logged with FtpTrace. No exception is thrown on error because that would negate
            the usefulness of this method for checking for the existence of an object.
            </summary>
            <param name="path">The path of the file or folder</param>
            <param name="dateModified">Get the accurate modified date using another MDTM command</param>
            <returns>A FtpListItem object</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetReply">
            <summary>
            Retrieves a reply from the server.
            Support "normal" mode waiting for a command reply, subject to timeout exception
            and "exhaustNoop" mode, which waits for 10 seconds to collect out of band NOOP responses
            </summary>
            <returns>FtpReply representing the response from the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetWorkingDirectory">
            <summary>
            Gets the current working directory
            </summary>
            <returns>The current working directory, ./ if the response couldn't be parsed.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetZOSListRealm">
            <summary>
            If an FTP Server has "different realms", in which realm is the
            current working directory. 
            </summary>
            <returns>The realm</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.Handshake">
            <summary>
            Called during Connect(). Typically extended by FTP proxies.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.IsRoot">
            <summary>
            Is the current working directory the root?
            </summary>
            <returns>true if root.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.MoveDirectory(System.String,System.String,FluentFTP.FtpRemoteExists)">
            <summary>
            Moves a directory on the remote file system from one directory to another.
            Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
            Only throws exceptions for critical errors.
            </summary>
            <param name="path">The full or relative path to the object</param>
            <param name="dest">The new full or relative path including the new name of the object</param>
            <param name="existsMode">Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?</param>
            <returns>Whether the directory was moved</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.MoveFile(System.String,System.String,FluentFTP.FtpRemoteExists)">
            <summary>
            Moves a file on the remote file system from one directory to another.
            Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
            Only throws exceptions for critical errors.
            </summary>
            <param name="path">The full or relative path to the object</param>
            <param name="dest">The new full or relative path including the new name of the object</param>
            <param name="existsMode">Should we check if the dest file exists? And if it does should we overwrite/skip the operation?</param>
            <returns>Whether the file was moved</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.Noop">
            <summary>
            Sends the NOOP command according to <see cref="P:FluentFTP.FtpConfig.NoopInterval"/> (effectively a no-op if 0).
            Please call <see cref="M:FluentFTP.FtpClient.GetReply"/> as needed to read the "OK" command sent by the server and prevent stale data on the socket.
            Note that response is not guaranteed by all FTP servers when sent during file transfers.
            </summary>
            <returns>true if NOOP command was sent</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenActiveDataStream(FluentFTP.FtpDataConnectionType,System.String,System.Int64)">
            <summary>
            Opens the specified type of active data stream
            </summary>
            <param name="type">Type of passive data stream to open</param>
            <param name="command">The command to execute that requires a data stream</param>
            <param name="restart">Restart location in bytes for file transfer</param>
            <returns>A data stream ready to be used</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenAppend(System.String,FluentFTP.FtpDataType,System.Boolean)">
            <summary>
            Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket.
            </summary>
            <param name="path">The full or relative path to the file to be opened</param>
            <param name="type">ASCII/Binary</param>
            <param name="checkIfFileExists">Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.</param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenAppend(System.String,FluentFTP.FtpDataType,System.Int64)">
            <summary>
            Opens the specified file for appending. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket.
            </summary>
            <param name="path">The full or relative path to the file to be opened</param>
            <param name="type">ASCII/Binary</param>
            <param name="fileLen">
            <para>Pass in a file length if known</para>
            <br> -1 => File length is irrelevant, do not attempt to determine it</br>
            <br> 0  => File length is unknown, try to determine it</br>
            <br> >0 => File length is KNOWN. No need to determine it</br>
            </param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenDataStream(System.String,System.Int64)">
            <summary>
            Opens a data stream.
            </summary>
            <param name='command'>The command to execute that requires a data stream</param>
            <param name="restart">Restart location in bytes for file transfer</param>
            <returns>The data stream.</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenPassiveFXPConnection(FluentFTP.FtpClient,System.Boolean)">
            <summary>
            Opens a FXP PASV connection between the source FTP Server and the destination FTP Server
            </summary>
            <param name="remoteClient">FtpClient instance of the destination FTP Server</param>
            <param name="progress">Provide an implementation of IProgress to track download progress.</param>
            <returns>A data stream ready to be used</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenPassiveDataStream(FluentFTP.FtpDataConnectionType,System.String,System.Int64)">
            <summary>
            Opens the specified type of passive data stream
            </summary>
            <param name="type">Type of passive data stream to open</param>
            <param name="command">The command to execute that requires a data stream</param>
            <param name="restart">Restart location in bytes for file transfer</param>
            <returns>A data stream ready to be used</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenRead(System.String,FluentFTP.FtpDataType,System.Int64,System.Boolean)">
            <summary>
            Opens the specified file for reading
            </summary>
            <param name="path">The full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="restart">Resume location</param>
            <param name="checkIfFileExists">Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.</param>
            <returns>A stream for reading the file on the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenRead(System.String,FluentFTP.FtpDataType,System.Int64,System.Int64)">
            <summary>
            Opens the specified file for reading
            </summary>
            <param name="path">The full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="restart">Resume location</param>
            <param name="fileLen">
            <para>Pass in a file length if known</para>
            <br> -1 => File length is irrelevant, do not attempt to determine it</br>
            <br> 0  => File length is unknown, try to determine it</br>
            <br> >0 => File length is KNOWN. No need to determine it</br>
            </param>
            <returns>A stream for reading the file on the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenWrite(System.String,FluentFTP.FtpDataType,System.Boolean)">
            <summary>
            Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket.
            </summary>
            <param name="path">Full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="checkIfFileExists">Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.</param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.OpenWrite(System.String,FluentFTP.FtpDataType,System.Int64)">
            <summary>
            Opens the specified file for writing. Please call GetReply() after you have successfully transferred the file to read the "OK" command sent by the server and prevent stale data on the socket.
            </summary>
            <param name="path">Full or relative path of the file</param>
            <param name="type">ASCII/Binary</param>
            <param name="fileLen">
            <para>Pass in a file length if known</para>
            <br> -1 => File length is irrelevant, do not attempt to determine it</br>
            <br> 0  => File length is unknown, try to determine it</br>
            <br> >0 => File length is KNOWN. No need to determine it</br>
            </param>
            <returns>A stream for writing to the file on the server</returns>
        </member>
        <member name="M:FluentFTP.FtpClient.Rename(System.String,System.String)">
            <summary>
            Renames an object on the remote file system.
            Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
            Throws exceptions if the file does not exist, or if the destination file already exists.
            </summary>
            <param name="path">The full or relative path to the object</param>
            <param name="dest">The new full or relative path including the new name of the object</param>
        </member>
        <member name="M:FluentFTP.FtpClient.SetDataType(FluentFTP.FtpDataType)">
            <summary>
            Sets the data type of information sent over the data stream
            </summary>
            <param name="type">ASCII/Binary</param>
        </member>
        <member name="M:FluentFTP.FtpClient.SetDataTypeNoLock(FluentFTP.FtpDataType)">
            <summary>Internal method that handles actually setting the data type.</summary>
            <exception cref="T:FluentFTP.Exceptions.FtpCommandException">Thrown when a FTP Command error condition occurs.</exception>
            <exception cref="T:FluentFTP.Exceptions.FtpException">Thrown when a FTP error condition occurs.</exception>
            <param name="type">ASCII/Binary.</param>
            <remarks>This method doesn't do any locking to prevent recursive lock scenarios.  Callers must do their own locking.</remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.SetFilePermissions(System.String,FluentFTP.FtpPermission,FluentFTP.FtpPermission,FluentFTP.FtpPermission)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="owner">The owner permissions</param>
            <param name="group">The group permissions</param>
            <param name="other">The other permissions</param>
        </member>
        <member name="M:FluentFTP.FtpClient.SetFilePermissions(System.String,System.Int32)">
            <summary>
            Modify the permissions of the given file/folder.
            Only works on *NIX systems, and not on Windows/IIS servers.
            Only works if the FTP server supports the SITE CHMOD command
            (requires the CHMOD extension to be installed and enabled).
            Throws FtpCommandException if there is an issue.
            </summary>
            <param name="path">The full or relative path to the item</param>
            <param name="permissions">The permissions in CHMOD format</param>
        </member>
        <member name="M:FluentFTP.FtpClient.SetModifiedTime(System.String,System.DateTime)">
            <summary>
            Changes the modified time of a remote file
            </summary>
            <param name="path">The full path to the file</param>
            <param name="date">The new modified date/time value</param>
        </member>
        <member name="M:FluentFTP.FtpClient.SetWorkingDirectory(System.String)">
            <summary>
            Sets the work directory on the server
            </summary>
            <param name="path">The path of the directory to change to</param>
        </member>
        <member name="M:FluentFTP.FtpClient.TransferDirectory(System.String,FluentFTP.FtpClient,System.String,FluentFTP.FtpFolderSyncMode,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Action{FluentFTP.FtpProgress})">
            <summary>
            Transfer the specified directory from the source FTP Server onto the remote FTP Server using the FXP protocol.
            You will need to create a valid connection to your remote FTP Server before calling this method.
            In Update mode, we will only transfer missing files and preserve any extra files on the remote FTP Server. This is useful when you want to simply transfer missing files from an FTP directory.
            Currently Mirror mode is not implemented.
            Only transfers the files and folders matching all the rules provided, if any.
            All exceptions during transfer are caught, and the exception is stored in the related FtpResult object.
            </summary>
            <param name="sourceFolder">The full or relative path to the folder on the source FTP Server. If it does not exist, an empty result list is returned.</param>
            <param name="remoteClient">Valid FTP connection to the destination FTP Server</param>
            <param name="remoteFolder">The full or relative path to destination folder on the remote FTP Server</param>
            <param name="mode">Only Update mode is currently implemented</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="rules">Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder.</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
            <returns>
            Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
        </member>
        <member name="M:FluentFTP.FtpClient.GetFilesToTransfer(System.String,System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean},System.String[])">
            <summary>
            Make a list of files to transfer 
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.TransferServerFiles(System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.FtpClient,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpListItem[])">
            <summary>
            Transfer each file
            </summary>
            <param name="filesToTransfer"></param>
            <param name="remoteClient"></param>
            <param name="existsMode"></param>
            <param name="verifyOptions"></param>
            <param name="progress"></param>
            <param name="remoteListing"></param>
        </member>
        <member name="M:FluentFTP.FtpClient.TransferFile(System.String,FluentFTP.FtpClient,System.String,System.Boolean,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpProgress)">
            <summary>
            Transfer the specified file from the source FTP Server to the destination FTP Server using the FXP protocol.
            High-level API that takes care of various edge cases internally.
            </summary>
            <param name="sourcePath">The full or relative path to the file on the source FTP Server</param>
            <param name="remoteClient">Valid FTP connection to the destination FTP Server</param>
            <param name="remotePath">The full or relative path to destination file on the remote FTP Server</param>
            <param name="createRemoteDir">Indicates if the folder should be created on the remote FTP Server</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the download or restart the download?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <param name="metaProgress"></param>
            Returns a FtpStatus indicating if the file was transferred.
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
            </remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.TransferFileFXPInternal(System.String,FluentFTP.FtpClient,System.String,System.Boolean,FluentFTP.FtpRemoteExists,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpProgress)">
            <summary>
            Transfers a file from the source FTP Server to the destination FTP Server via the FXP protocol
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadBytes(System.Byte[],System.String,FluentFTP.FtpRemoteExists,System.Boolean,System.Action{FluentFTP.FtpProgress})">
            <summary>
            Uploads the specified byte array as a file onto the server.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            </summary>
            <param name="fileData">The full data of the file, as a byte array</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance 
            but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist. Slows down upload due to additional checks required.</param>
            <param name="progress">Provide a callback to track upload progress.</param>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadDirectory(System.String,System.String,FluentFTP.FtpFolderSyncMode,FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Action{FluentFTP.FtpProgress})">
            <summary>
            Uploads the specified directory onto the server.
            In Mirror mode, we will upload missing files, and delete any extra files from the server that are not present on disk. This is very useful when publishing an exact copy of a local folder onto an FTP server.
            In Update mode, we will only upload missing files and preserve any extra files on the server. This is useful when you want to simply upload missing files to a server.
            Only uploads the files and folders matching all the rules provided, if any.
            All exceptions during uploading are caught, and the exception is stored in the related FtpResult object.
            </summary>
            <param name="localFolder">The full path of the local folder on disk that you want to upload. If it does not exist, an empty result list is returned.</param>
            <param name="remoteFolder">The full path of the remote FTP folder to upload into. It is created if it does not exist.</param>
            <param name="mode">Mirror or Update mode, as explained above</param>
            <param name="existsMode">If the file exists on disk, should we skip it, resume the upload or restart the upload?</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="rules">Only files and folders that pass all these rules are downloaded, and the files that don't pass are skipped. In the Mirror mode, the files that fail the rules are also deleted from the local folder.</param>
            <param name="progress">Provide a callback to track upload progress.</param>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
            <returns>
            Returns a listing of all the remote files, indicating if they were downloaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
        </member>
        <member name="M:FluentFTP.FtpClient.CreateSubDirectories(FluentFTP.FtpClient,System.Collections.Generic.List{FluentFTP.FtpResult})">
            <summary>
            Create all the sub directories within the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadDirectoryFiles(System.Collections.Generic.List{FluentFTP.FtpResult},FluentFTP.FtpRemoteExists,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpListItem[])">
            <summary>
            Upload all the files within the main directory
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.DeleteExtraServerFiles(FluentFTP.FtpFolderSyncMode,System.String,System.Collections.Generic.Dictionary{System.String,System.Boolean},FluentFTP.FtpListItem[],System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Delete the extra remote files if in mirror mode and the directory was pre-existing
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadFile(System.String,System.String,FluentFTP.FtpRemoteExists,System.Boolean,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress})">
            <summary>
            Uploads the specified file directly onto the server.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            </summary>
            <param name="localPath">The full or relative path to the file on the local file system</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to  <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance 
            but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist. Slows down upload due to additional checks required.</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="progress">Provide a callback to track download progress.</param>
            <returns>FtpStatus flag indicating if the file was uploaded, skipped or failed to transfer.</returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to <see cref="F:FluentFTP.FtpRemoteExists.Overwrite"/>.
            </remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadFileFromFile(System.String,System.String,System.Boolean,FluentFTP.FtpRemoteExists,System.Boolean,System.Boolean,FluentFTP.FtpVerify,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpProgress)">
            <summary>
            Upload a local file to a remote file
            </summary>
            <param name="localPath"></param>
            <param name="remotePath"></param>
            <param name="createRemoteDir"></param>
            <param name="existsMode"></param>
            <param name="fileExists"></param>
            <param name="fileExistsKnown"></param>
            <param name="verifyOptions"></param>
            <param name="progress"></param>
            <param name="metaProgress"></param>
            <returns></returns>
            <exception cref="T:FluentFTP.Exceptions.FtpException"></exception>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadFileInternal(System.IO.Stream,System.String,System.String,System.Boolean,FluentFTP.FtpRemoteExists,System.Boolean,System.Boolean,System.Action{FluentFTP.FtpProgress},FluentFTP.FtpProgress)">
            <summary>
            Upload the given stream to the server as a new file. Overwrites the file if it exists.
            Writes data in chunks. Retries if server disconnects midway.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.ResumeUpload(System.String,System.IO.Stream@,System.Int64,System.IO.IOException)">
            <summary>
            Setup a resume on an upload failure
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadFiles(System.Collections.Generic.IEnumerable{System.String},System.String,FluentFTP.FtpRemoteExists,System.Boolean,FluentFTP.FtpVerify,FluentFTP.FtpError,System.Action{FluentFTP.FtpProgress},System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Uploads the given file paths to a single folder on the server.
            All files are placed directly into the given folder regardless of their path on the local filesystem.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            Faster than uploading single files with <see cref="o:UploadFile"/> since it performs a single "file exists" check rather than one check per file.
            </summary>
            <param name="localPaths">The full or relative paths to the files on the local file system. Files can be from multiple folders.</param>
            <param name="remoteDir">The full or relative path to the directory that files will be uploaded on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance,
             but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist.</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="errorHandling">Used to determine how errors are handled</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="rules">Only files that pass all these rules are uploaded, and the files that don't pass are skipped.</param>
            <returns>
            Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to <see cref="F:FluentFTP.FtpRemoteExists.Overwrite"/>.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.PurgeSuccessfulUploads(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Remove successfully uploaded files.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadFiles(System.Collections.Generic.IEnumerable{System.IO.FileInfo},System.String,FluentFTP.FtpRemoteExists,System.Boolean,FluentFTP.FtpVerify,FluentFTP.FtpError,System.Action{FluentFTP.FtpProgress},System.Collections.Generic.List{FluentFTP.Rules.FtpRule})">
            <summary>
            Uploads the given file paths to a single folder on the server.
            All files are placed directly into the given folder regardless of their path on the local filesystem.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            Faster than uploading single files with <see cref="o:UploadFile"/> since it performs a single "file exists" check rather than one check per file.
            </summary>
            <param name="localFiles">The full or relative paths to the files on the local file system. Files can be from multiple folders.</param>
            <param name="remoteDir">The full or relative path to the directory that files will be uploaded on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance,
             but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist.</param>
            <param name="verifyOptions">Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)</param>
            <param name="errorHandling">Used to determine how errors are handled</param>
            <param name="progress">Provide an implementation of IProgress to track upload progress.</param>
            <param name="rules">Only files that pass all these rules are uploaded, and the files that don't pass are skipped.</param>
            <returns>
            Returns a listing of all the local files, indicating if they were uploaded, skipped or overwritten.
            Returns a blank list if nothing was transferred. Never returns null.
            </returns>
            <remarks>
            If verification is enabled (All options other than <see cref="F:FluentFTP.FtpVerify.None"/>) the hash will be checked against the server.  If the server does not support
            any hash algorithm, then verification is ignored.  If only <see cref="F:FluentFTP.FtpVerify.OnlyChecksum"/> is set then the return of this method depends on both a successful 
            upload &amp; verification.  Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to <see cref="F:FluentFTP.FtpRemoteExists.Overwrite"/>.
            If <see cref="F:FluentFTP.FtpVerify.Throw"/> is set and <see cref="F:FluentFTP.FtpError.Throw"/> is <i>not set</i>, then individual verification errors will not cause an exception
            to propagate from this method.
            </remarks>
        </member>
        <member name="M:FluentFTP.FtpClient.GetFilesToUpload2(System.Collections.Generic.IEnumerable{System.String},System.String,System.Collections.Generic.List{FluentFTP.Rules.FtpRule},System.Collections.Generic.List{FluentFTP.FtpResult},System.Collections.Generic.Dictionary{System.String,System.Boolean})">
            <summary>
            Get a list of all the files that need to be uploaded
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClient.UploadStream(System.IO.Stream,System.String,FluentFTP.FtpRemoteExists,System.Boolean,System.Action{FluentFTP.FtpProgress})">
            <summary>
            Uploads the specified stream as a file onto the server.
            High-level API that takes care of various edge cases internally.
            Supports very large files since it uploads data in chunks.
            </summary>
            <param name="fileStream">The full data of the file, as a stream</param>
            <param name="remotePath">The full or relative path to the file on the server</param>
            <param name="existsMode">What to do if the file already exists? Skip, overwrite or append? Set this to <see cref="F:FluentFTP.FtpRemoteExists.NoCheck"/> for fastest performance
            but only if you are SURE that the files do not exist on the server.</param>
            <param name="createRemoteDir">Create the remote directory if it does not exist. Slows down upload due to additional checks required.</param>
            <param name="progress">Provide a callback to track upload progress.</param>
        </member>
        <member name="M:FluentFTP.FtpClient.VerifyFXPTransfer(System.String,FluentFTP.FtpClient,System.String)">
            <summary>
            Verify an FXP file transfer
            </summary>
            <param name="sourcePath"></param>
            <param name="fxpDestinationClient"></param>
            <param name="remotePath"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:FluentFTP.FtpClient.VerifyTransfer(System.String,System.String)">
            <summary>
            Verify a file transfer
            </summary>
            <param name="localPath"></param>
            <param name="remotePath"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="T:FluentFTP.IAsyncFtpClient">
            <summary>
            Interface for the AsyncFtpClient class.
            For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project.
            </summary>
        </member>
        <member name="T:FluentFTP.CustomRemoteCertificateValidationCallback">
             <summary>
             Base object for FtpClient, AsyncFtpClient and the internal client
             </summary>
            
        </member>
        <member name="T:FluentFTP.IFtpClient">
            <summary>
            Interface for the FtpClient class.
            For detailed documentation of the methods, please see the FtpClient class or check the Wiki on the FluentFTP Github project.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpCapability">
            <summary>
            Server features
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.NONE">
            <summary>
            This server said it doesn't support anything!
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MLSD">
            <summary>
            Supports the MLST command (machine listings)
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.SIZE">
            <summary>
            Supports the SIZE command (get file size)
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MDTM">
            <summary>
            Supports the MDTM command (get file date modified)
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.REST">
            <summary>
            Supports download/upload stream resumes
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.UTF8">
            <summary>
            Supports UTF8
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.PRET">
            <summary>
            PRET Command used by DrFTPD
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MFMT">
            <summary>
            Server supports the MFMT command for setting the
            modified date of an object on the server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MFCT">
            <summary>
            Server supports the MFCT command for setting the
            created date of an object on the server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MFF">
            <summary>
            Server supports the MFF command for setting certain facts
            about file system objects. It typically allows you to modify
            the last modification time, creation time, UNIX group/owner/mode of a file.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.STAT">
            <summary>
            Server supports the STAT command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.HASH">
            <summary>
            Support for the HASH command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MD5">
            <summary>
            Support for the MD5 command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.XMD5">
            <summary>
            Support for the XMD5 command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.XCRC">
            <summary>
            Support for the XCRC command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.XSHA1">
            <summary>
            Support for the XSHA1 command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.XSHA256">
            <summary>
            Support for the XSHA256 command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.XSHA512">
            <summary>
            Support for the XSHA512 command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.EPSV">
            <summary>
            Support for the EPSV file-transfer command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.CPSV">
            <summary>
            Support for the CPSV command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.NOOP">
            <summary>
            Support for the NOOP command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.CLNT">
            <summary>
            Support for the CLNT command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.SSCN">
            <summary>
            Support for the SSCN command
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.SITE_MKDIR">
            <summary>
            Support for the SITE MKDIR (make directory) server-specific command for ProFTPd
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.SITE_RMDIR">
            <summary>
            Support for the SITE RMDIR (remove directory) server-specific command for ProFTPd
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.SITE_UTIME">
            <summary>
            Support for the SITE UTIME server-specific command for ProFTPd
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.SITE_SYMLINK">
            <summary>
            Support for the SITE SYMLINK server-specific command for ProFTPd
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.AVBL">
            <summary>
            Support for the AVBL (get available space) server-specific command for Serv-U
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.THMB">
            <summary>
            Support for the THMB (get image thumbnail) server-specific command for Serv-U
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.RMDA">
            <summary>
            Support for the RMDA (remove directory) server-specific command for Serv-U
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.DSIZ">
            <summary>
            Support for the DSIZ (get directory size) server-specific command for Serv-U
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.HOST">
            <summary>
            Support for the HOST (get host) server-specific command for Serv-U
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.CCC">
            <summary>
            Support for the CCC (Clear Command Channel) command, which makes a secure FTP channel revert back to plain text.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MODE_Z">
            <summary>
            Support for the MODE Z (compression enabled) command, which says that the server supports ZLIB compression for all transfers
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.LANG">
            <summary>
            Support for the LANG (language negotiation) command.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCapability.MMD5">
            <summary>
            Support for the MMD5 (multiple MD5 hash) command.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpCompareOption">
            <summary>
            Flags that control how file comparison is performed. If you are unsure what to use, set it to Auto.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareOption.Auto">
            <summary>
            Compares the file size and the checksum of the file (using the first supported hash algorithm).
            The local and remote file sizes and checksums should exactly match for the file to be considered equal.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareOption.Size">
            <summary>
            Compares the file size.
            Both file sizes should exactly match for the file to be considered equal.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareOption.DateModified">
            <summary>
            Compares the date modified of the file.
            Both dates should exactly match for the file to be considered equal.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareOption.Checksum">
            <summary>
            Compares the checksum or hash of the file using the first supported hash algorithm.
            Both checksums should exactly match for the file to be considered equal.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpCompareResult">
            <summary>
            The result of a file comparison operation.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareResult.Equal">
            <summary>
            Success. Local and remote files are exactly equal.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareResult.NotEqual">
            <summary>
            Failure. Local and remote files do not match.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareResult.FileNotExisting">
            <summary>
            Failure. Either the local or remote file does not exist.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpCompareResult.ChecksumNotSupported">
            <summary>
            Failure. Checksum verification is enabled and your server does not support any hash algorithm.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpDataConnectionType">
            <summary>
            Data connection type
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataConnectionType.AutoPassive">
            <summary>
            This type of data connection attempts to use the EPSV command
            and if the server does not support EPSV it falls back to the
            PASV command before giving up unless you are connected via IPv6
            in which case the PASV command is not supported.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataConnectionType.PASV">
            <summary>
            Passive data connection. EPSV is a better
            option if it's supported. Passive connections
            connect to the IP address dictated by the server
            which may or may not be accessible by the client
            for example a server behind a NAT device may
            give an IP address on its local network that
            is inaccessible to the client. Please note that IPv6
            does not support this type data connection. If you
            ask for PASV and are connected via IPv6 EPSV will
            automatically be used in its place.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataConnectionType.PASVEX">
            <summary>
            Same as PASV except the host supplied by the server is ignored
            and the data connection is made to the same address that the control
            connection is connected to. This is useful in scenarios where the
            server supplies a private/non-routable network address in the
            PASV response. It's functionally identical to EPSV except some
            servers may not implement the EPSV command. Please note that IPv6
            does not support this type data connection. If you
            ask for PASV and are connected via IPv6 EPSV will
            automatically be used in its place.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataConnectionType.EPSV">
            <summary>
            Extended passive data connection, recommended. Works
            the same as a PASV connection except the server
            does not dictate an IP address to connect to, instead
            the passive connection goes to the same address used
            in the control connection. This type of data connection
            supports IPv4 and IPv6.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataConnectionType.AutoActive">
            <summary>
            This type of data connection attempts to use the EPRT command
            and if the server does not support EPRT it falls back to the
            PORT command before giving up unless you are connected via IPv6
            in which case the PORT command is not supported.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataConnectionType.PORT">
            <summary>
            Active data connection, not recommended unless
            you have a specific reason for using this type.
            Creates a listening socket on the client which
            requires firewall exceptions on the client system
            as well as client network when connecting to a
            server outside of the client's network. In addition
            the IP address of the interface used to connect to the
            server is the address the server is told to connect to
            which, if behind a NAT device, may be inaccessible to
            the server. This type of data connection is not supported
            by IPv6. If you specify PORT and are connected via IPv6
            EPRT will automatically be used instead.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataConnectionType.EPRT">
            <summary>
            Extended active data connection, not recommended
            unless you have a specific reason for using this
            type. Creates a listening socket on the client
            which requires firewall exceptions on the client
            as well as client network when connecting to a 
            server outside of the client's network. The server
            connects to the IP address it sees the client coming
            from. This type of data connection supports IPv4 and IPv6.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpDataType">
            <summary>
            Type of data transfer to do
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataType.ASCII">
            <summary>
            ASCII transfer
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataType.Binary">
            <summary>
            Binary transfer
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDataType.Unknown">
            <summary>
            Not known yet
            </summary>
        </member>
        <member name="T:FluentFTP.FtpDate">
            <summary>
            Controls how timestamps returned by the server are converted.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDate.ServerTime">
            <summary>
            Returns the server timestamps in Server Time. No timezone conversion is performed.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDate.LocalTime">
            <summary>
            Returns the server timestamps in Local Time.
            Ensure that the TimeZone property is correctly set to the server's timezone.
            If you are on .NET Core/.NET Standard, you need to set the LocalTimeZone property for this to work.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpDate.UTC">
            <summary>
            Returns the server timestamps in UTC (Coordinated Universal Time).
            Ensure that the TimeZone property is correctly set to the server's timezone.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpEncryptionMode">
            <summary>
            Defines the type of encryption to use
            </summary>
        </member>
        <member name="F:FluentFTP.FtpEncryptionMode.None">
            <summary>
            Plain text.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpEncryptionMode.Implicit">
            <summary>
            FTPS encryption is used from the start of the connection, port 990.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpEncryptionMode.Explicit">
            <summary>
            Connection starts in plain text and FTPS encryption is enabled
            with the AUTH command immediately after the server greeting.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpEncryptionMode.Auto">
            <summary>
            FTPS encryption is used if supported by the server, otherwise it falls back to plaintext FTP communication.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpError">
            <summary>
            Defines how multi-file processes should handle a processing error.
            </summary>
            <remarks><see cref="F:FluentFTP.FtpError.Stop"/> &amp; <see cref="F:FluentFTP.FtpError.Throw"/> Cannot Be Combined</remarks>
        </member>
        <member name="F:FluentFTP.FtpError.None">
            <summary>
            No action is taken upon errors.  The method absorbs the error and continues.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpError.DeleteProcessed">
            <summary>
            If any files have completed successfully (or failed after a partial download/upload) then should be deleted.  
            This will simulate an all-or-nothing transaction downloading or uploading multiple files.  If this option is not
            combined with <see cref="F:FluentFTP.FtpError.Stop"/> or <see cref="F:FluentFTP.FtpError.Throw"/> then the method will
            continue to process all items whether if they are successful or not and then delete everything if a failure was
            encountered at any point.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpError.Stop">
            <summary>
            The method should stop processing any additional files and immediately return upon encountering an error.
            Cannot be combined with <see cref="F:FluentFTP.FtpError.Throw"/>
            </summary>
        </member>
        <member name="F:FluentFTP.FtpError.Throw">
            <summary>
            The method should stop processing any additional files and immediately throw the current error.
            Cannot be combined with <see cref="F:FluentFTP.FtpError.Stop"/>
            </summary>
        </member>
        <member name="T:FluentFTP.FtpFolderSyncMode">
            <summary>
            Determines how we handle downloading and uploading folders
            </summary>
        </member>
        <member name="F:FluentFTP.FtpFolderSyncMode.Mirror">
            <summary>
            Dangerous but useful method!
            Uploads/downloads all the missing files to update the server/local filesystem.
            Deletes the extra files to ensure that the target is an exact mirror of the source.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpFolderSyncMode.Update">
            <summary>
            Safe method!
            Uploads/downloads all the missing files to update the server/local filesystem.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpHashAlgorithm">
            <summary>
            Different types of hashing algorithms for computing checksums.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpHashAlgorithm.NONE">
            <summary>
            Automatic algorithm, or hashing not supported.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpHashAlgorithm.SHA1">
            <summary>
            SHA-1 algorithm
            </summary>
        </member>
        <member name="F:FluentFTP.FtpHashAlgorithm.SHA256">
            <summary>
            SHA-256 algorithm
            </summary>
        </member>
        <member name="F:FluentFTP.FtpHashAlgorithm.SHA512">
            <summary>
            SHA-512 algorithm
            </summary>
        </member>
        <member name="F:FluentFTP.FtpHashAlgorithm.MD5">
            <summary>
            MD5 algorithm
            </summary>
        </member>
        <member name="F:FluentFTP.FtpHashAlgorithm.CRC">
            <summary>
            CRC algorithm
            </summary>
        </member>
        <member name="T:FluentFTP.FtpIpVersion">
            <summary>
            IP Versions to allow when connecting
            to a server.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpIpVersion.Unknown">
            <summary>
            Unknown protocol.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpIpVersion.IPv4">
            <summary>
            Internet Protocol Version 4
            </summary>
        </member>
        <member name="F:FluentFTP.FtpIpVersion.IPv6">
            <summary>
            Internet Protocol Version 6
            </summary>
        </member>
        <member name="F:FluentFTP.FtpIpVersion.ANY">
            <summary>
            Allow any supported version
            </summary>
        </member>
        <member name="T:FluentFTP.FtpListOption">
            <summary>
            Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.Auto">
            <summary>
            Tries machine listings (MDTM command) if supported,
            and if not then falls back to OS-specific listings (LIST command)
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.Modify">
            <summary>
            Load the modify date using MDTM when it could not
            be parsed from the server listing. This only pertains
            to servers that do not implement the MLSD command.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.Size">
            <summary>
            Load the file size using the SIZE command when it
            could not be parsed from the server listing. This
            only pertains to servers that do not support the
            MLSD command.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.SizeModify">
            <summary>
            Combines the Modify and Size flags
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.AllFiles">
            <summary>
            Show hidden/dot files. This only pertains to servers
            that do not support the MLSD command. This option
            makes use the non standard -a parameter to LIST to
            tell the server to show hidden files. Since it's a
            non-standard option it may not always work. MLSD listings
            have no such option and whether or not a hidden file is
            shown is at the discretion of the server.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.ForceList">
            <summary>
            Force the use of OS-specific listings (LIST command) even if
            machine listings (MLSD command) are supported by the server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.NameList">
            <summary>
            Use the NLST command instead of LIST for a reliable file listing
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.ForceNameList">
            <summary>
            Force the use of the NLST command (the slowest mode) even if machine listings
            and OS-specific listings are supported by the server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.UseLS">
            <summary>
            Sets the ForceList flag and uses `LS' instead of `LIST' as the
            command for getting a directory listing. This option overrides
            ForceNameList and ignores the AllFiles flag.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.Recursive">
            <summary>
            Gets files within subdirectories as well. Adds the -r option to the LIST command.
            Some servers may not support this feature.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.NoPath">
            <summary>
            Do not retrieve path when no path is supplied to GetListing(),
            instead just execute LIST with no path argument.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.IncludeSelfAndParent">
            <summary>
            Include two extra items into the listing, for the current directory (".")
            and the parent directory (".."). Meaningless unless you want these two
            items for some reason.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpListOption.UseStat">
            <summary>
            Force the use of STAT command for getting file listings
            </summary>
        </member>
        <member name="T:FluentFTP.FtpLocalExists">
            <summary>
            Determines how we handle partially downloaded files
            </summary>
        </member>
        <member name="F:FluentFTP.FtpLocalExists.Overwrite">
            <summary>
            Restart the download of a file if it is partially downloaded.
            Overwrites the file if it exists on disk.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpLocalExists.Resume">
            <summary>
            Resume the download of a file if it is partially downloaded.
            Appends to the file if it exists, by checking the length and adding the missing data.
            If the file doesn't exist on disk, a new file is created.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpLocalExists.Skip">
            <summary>
            Blindly skip downloading the file if it exists on disk, without any more checks.
            This is only included to be compatible with legacy behaviour.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpLocalExists.Append">
            <summary>
            Append is now renamed to Resume.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpObjectSubType">
            <summary>
            Type of file system of object
            </summary>
        </member>
        <member name="F:FluentFTP.FtpObjectSubType.Unknown">
            <summary>
            The default subtype.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpObjectSubType.SubDirectory">
            <summary>
            A sub directory within the listed directory.
            (Only set when machine listing is available and type is 'dir')
            </summary>
        </member>
        <member name="F:FluentFTP.FtpObjectSubType.SelfDirectory">
            <summary>
            The self directory.
            (Only set when machine listing is available and type is 'cdir')
            </summary>
        </member>
        <member name="F:FluentFTP.FtpObjectSubType.ParentDirectory">
            <summary>
            The parent directory.
            (Only set when machine listing is available and type is 'pdir')
            </summary>
        </member>
        <member name="T:FluentFTP.FtpObjectType">
            <summary>
            Type of file system of object
            </summary>
        </member>
        <member name="F:FluentFTP.FtpObjectType.File">
            <summary>
            A file
            </summary>
        </member>
        <member name="F:FluentFTP.FtpObjectType.Directory">
            <summary>
            A directory
            </summary>
        </member>
        <member name="F:FluentFTP.FtpObjectType.Link">
            <summary>
            A symbolic link
            </summary>
        </member>
        <member name="T:FluentFTP.FtpOperatingSystem">
            <summary>
            Defines the operating system of the FTP server.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperatingSystem.Unknown">
            <summary>
            Unknown operating system
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperatingSystem.Windows">
            <summary>
            Definitely Windows or Windows Server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperatingSystem.Unix">
            <summary>
            Definitely Unix or AIX-based server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperatingSystem.VMS">
            <summary>
            Definitely VMS or OpenVMS server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperatingSystem.IBMOS400">
            <summary>
            Definitely IBM OS/400 server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperatingSystem.IBMzOS">
            <summary>
            Definitely IBM z/OS server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperatingSystem.SunOS">
            <summary>
            Definitely SUN OS/Solaris server
            </summary>
        </member>
        <member name="T:FluentFTP.FtpOperator">
            <summary>
            For setting up rules
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.Equals">
            <summary>
            If the value is exactly equal to X
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.NotEquals">
            <summary>
            If the value is anything except for X
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.LessThan">
            <summary>
            If the value is less than X
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.LessThanOrEquals">
            <summary>
            If the value is less than or equal to X
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.MoreThan">
            <summary>
            If the value is more than X
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.MoreThanOrEquals">
            <summary>
            If the value is more than or equal to X
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.BetweenRange">
            <summary>
            If the value is between the range of X and Y
            </summary>
        </member>
        <member name="F:FluentFTP.FtpOperator.OutsideRange">
            <summary>
            If the value is outside the range of X and Y
            </summary>
        </member>
        <member name="T:FluentFTP.FtpParser">
            <summary>
            The type of response the server responded with
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.Custom">
            <summary>
            Use the custom parser that you have set on the FtpClient object (ListingCustomParser property)
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.Auto">
            <summary>
            Automatically detect the file listing parser to use based on the FTP server (SYST command).
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.Machine">
            <summary>
            Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.Windows">
            <summary>
            File listing parser for Windows/IIS.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.Unix">
            <summary>
            File listing parser for Unix.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.UnixAlt">
            <summary>
            Alternate parser for Unix. Use this if the default one does not work.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.VMS">
            <summary>
            File listing parser for Vax/VMS/OpenVMS.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.IBMzOS">
            <summary>
            File listing parser for IBM z/OS
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.IBMOS400">
            <summary>
            File listing parser for IBM OS/400.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpParser.NonStop">
            <summary>
            File listing parser for Tandem/Nonstop Guardian OS.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpPermission">
            <summary>
            Types of file permissions
            </summary>
        </member>
        <member name="F:FluentFTP.FtpPermission.None">
            <summary>
            No access
            </summary>
        </member>
        <member name="F:FluentFTP.FtpPermission.Execute">
            <summary>
            Executable
            </summary>
        </member>
        <member name="F:FluentFTP.FtpPermission.Write">
            <summary>
            Writable
            </summary>
        </member>
        <member name="F:FluentFTP.FtpPermission.Read">
            <summary>
            Readable
            </summary>
        </member>
        <member name="T:FluentFTP.FtpExists">
            <summary>
            This enum is obsolete. Please use FtpRemoteExists instead.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpRemoteExists">
            <summary>
            Defines the behavior for uploading/downloading files that already exist
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.NoCheck">
            <summary>
            Do not check if the file exists. A bit faster than the other options.
            Only use this if you are SURE that the file does not exist on the server.
            Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.ResumeNoCheck">
            <summary>
            Resume uploading by appending to the remote file, but don't check if it exists and add missing data.
            This might be required if you don't have permissions on the server to list files in the folder.
            Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.AddToEndNoCheck">
            <summary>
            Append the local file to the end of the remote file, but don't check if it exists and add missing data.
            This might be required if you don't have permissions on the server to list files in the folder.
            Only use this if you are SURE that the file does not exist on the server otherwise it can cause the UploadFile method to hang due to filesize mismatch.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.Skip">
            <summary>
            Skip the file if it exists, without any more checks.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.Overwrite">
            <summary>
            Overwrite the file if it exists.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.Resume">
            <summary>
            Resume uploading by appending to the remote file if it exists.
            It works by checking the remote file length and adding the missing data.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.AddToEnd">
            <summary>
            Append the local file to the end of the remote file.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpRemoteExists.Append">
            <summary>
            Append is now renamed to Resume. Alternatively you can use AddToEnd.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpResponseType">
            <summary>
            The type of response the server responded with
            </summary>
        </member>
        <member name="F:FluentFTP.FtpResponseType.None">
            <summary>
            No response
            </summary>
        </member>
        <member name="F:FluentFTP.FtpResponseType.PositivePreliminary">
            <summary>
            Success
            </summary>
        </member>
        <member name="F:FluentFTP.FtpResponseType.PositiveCompletion">
            <summary>
            Success
            </summary>
        </member>
        <member name="F:FluentFTP.FtpResponseType.PositiveIntermediate">
            <summary>
            Success
            </summary>
        </member>
        <member name="F:FluentFTP.FtpResponseType.TransientNegativeCompletion">
            <summary>
            Temporary failure
            </summary>
        </member>
        <member name="F:FluentFTP.FtpResponseType.PermanentNegativeCompletion">
            <summary>
            Permanent failure
            </summary>
        </member>
        <member name="T:FluentFTP.FtpsBuffering">
            <summary>
            Determines how SSL Buffering is handled
            </summary>
        </member>
        <member name="F:FluentFTP.FtpsBuffering.Auto">
            <summary>
            Enables buffering in all cases except when using FTP proxies.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpsBuffering.Off">
            <summary>
            Always disables SSL Buffering to reduce FTPS connectivity issues.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpsBuffering.On">
            <summary>
            Always enables SSL Buffering to massively speed up FTPS operations.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpServer">
            <summary>
            Defines the type of the FTP server software.
            Add constants here as you add detection scripts for individual server types.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.Unknown">
            <summary>
            Unknown FTP server software
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.Apache">
            <summary>
            Definitely Apache FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.BFTPd">
            <summary>
            Definitely BFTPd server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.Cerberus">
            <summary>
            Definitely Cerberus FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.CrushFTP">
            <summary>
            Definitely CrushFTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.DLink">
            <summary>
            Definitely D-Link FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.FileZilla">
            <summary>
            Definitely FileZilla server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.FritzBox">
            <summary>
            Definitely FritzBox FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.FTP2S3Gateway">
            <summary>
            Definitely FTP2S3 gateway server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.glFTPd">
            <summary>
            Definitely glFTPd server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.GlobalScapeEFT">
            <summary>
            Definitely GlobalScape EFT server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.HomegateFTP">
            <summary>
            Definitely Homegate FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.Huawei">
            <summary>
            Definitely Huawei Technologies HG5xxx series FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.IBMzOSFTP">
            <summary>
            Definitely IBM z/OS FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.IBMOS400FTP">
            <summary>
            Definitely IBM OS/400 FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.IDALFTP">
            <summary>
            Definitely ABB IDAL FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.MikroTik">
            <summary>
            Definitely MikroTik RouterOS FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.NonStopTandem">
            <summary>
            Definitely HP NonStop/Tandem server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.OpenVMS">
            <summary>
            Definitely OpenVMS server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.ProFTPD">
            <summary>
            Definitely ProFTPD server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.PureFTPd">
            <summary>
            Definitely PureFTPd server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.PyFtpdLib">
            <summary>
            Definitely PyFtpdLib server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.Rumpus">
            <summary>
            Definitely Rumpus server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.ServU">
            <summary>
            Definitely Serv-U server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.SolarisFTP">
            <summary>
            Definitely Sun OS Solaris FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.TitanFTP">
            <summary>
            Definitely Titan FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.TPLink">
            <summary>
            Definitely TP-LINK FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.VsFTPd">
            <summary>
            Definitely VsFTPd server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.WindowsCE">
            <summary>
            Definitely Windows CE FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.WindowsServerIIS">
            <summary>
            Definitely Windows Server/IIS FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.WSFTP">
            <summary>
            Definitely WS_FTP server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.WuFTPd">
            <summary>
            Definitely WuFTPd server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpServer.XLight">
            <summary>
            Definitely XLight FTP server
            </summary>
        </member>
        <member name="T:FluentFTP.FtpSpecialPermissions">
            <summary>
            Types of special UNIX permissions
            </summary>
        </member>
        <member name="F:FluentFTP.FtpSpecialPermissions.None">
            <summary>
            No special permissions are set
            </summary>
        </member>
        <member name="F:FluentFTP.FtpSpecialPermissions.Sticky">
            <summary>
            Sticky bit is set
            </summary>
        </member>
        <member name="F:FluentFTP.FtpSpecialPermissions.SetGroupID">
            <summary>
            SGID bit is set
            </summary>
        </member>
        <member name="F:FluentFTP.FtpSpecialPermissions.SetUserID">
            <summary>
            SUID bit is set
            </summary>
        </member>
        <member name="T:FluentFTP.FtpStatus">
            <summary>
            The result of an upload or download operation
            </summary>
        </member>
        <member name="F:FluentFTP.FtpStatus.Failed">
            <summary>
            The upload or download failed with an error transferring, or the source file did not exist
            </summary>
        </member>
        <member name="F:FluentFTP.FtpStatus.Success">
            <summary>
            The upload or download completed successfully
            </summary>
        </member>
        <member name="F:FluentFTP.FtpStatus.Skipped">
            <summary>
            The upload or download was skipped because the file already existed on the target
            </summary>
        </member>
        <member name="T:FluentFTP.FtpTraceLevel">
            <summary>
            Defines the level of the tracing message.  Depending on the framework version this is translated
            to an equivalent logging level in System.Diagnostices (if available)
            </summary>
        </member>
        <member name="F:FluentFTP.FtpTraceLevel.Verbose">
            <summary>
            Used for logging Debug or Verbose level messages
            </summary>
        </member>
        <member name="F:FluentFTP.FtpTraceLevel.Info">
            <summary>
            Used for logging Informational messages
            </summary>
        </member>
        <member name="F:FluentFTP.FtpTraceLevel.Warn">
            <summary>
            Used for logging non-fatal or ignorable error messages
            </summary>
        </member>
        <member name="F:FluentFTP.FtpTraceLevel.Error">
            <summary>
            Used for logging Error messages that may need investigation 
            </summary>
        </member>
        <member name="T:FluentFTP.FtpVerify">
            <summary>
            Defines if additional verification and actions upon failure that 
            should be performed when uploading/downloading files using the high-level APIs.  Ignored if the 
            FTP server does not support any hashing algorithms.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpVerify.None">
            <summary>
            No verification of the file is performed
            </summary>
        </member>
        <member name="F:FluentFTP.FtpVerify.Retry">
            <summary>
            The checksum of the file is verified, if supported by the server.
            If the checksum comparison fails then we retry the download/upload
            a specified amount of times before giving up. (See <see cref="P:FluentFTP.FtpConfig.RetryAttempts"/>)
            </summary>
        </member>
        <member name="F:FluentFTP.FtpVerify.Delete">
            <summary>
            The checksum of the file is verified, if supported by the server.
            If the checksum comparison fails then the failed file will be deleted.
            If combined with <see cref="F:FluentFTP.FtpVerify.Retry"/>, then
            the deletion will occur if it fails upon the final retry.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpVerify.Throw">
            <summary>
            The checksum of the file is verified, if supported by the server.
            If the checksum comparison fails then an exception will be thrown.
            If combined with <see cref="F:FluentFTP.FtpVerify.Retry"/>, then the throw will
            occur upon the failure of the final retry, and/or if combined with <see cref="F:FluentFTP.FtpVerify.Delete"/>
            the method will throw after the deletion is processed.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpVerify.OnlyChecksum">
            <summary>
            The checksum of the file is verified, if supported by the server.
            If the checksum comparison fails then the method returns false and no other action is taken.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpZOSListRealm">
            <summary>
            Flags that can control how a file listing is performed. If you are unsure what to use, set it to Auto.
            </summary>
        </member>
        <member name="F:FluentFTP.FtpZOSListRealm.Invalid">
            <summary>
            Not z/OS Server
            </summary>
        </member>
        <member name="F:FluentFTP.FtpZOSListRealm.Unix">
            <summary>
            HFS / USS 
            </summary>
        </member>
        <member name="F:FluentFTP.FtpZOSListRealm.Dataset">
            <summary>
            z/OS classic dataset
            </summary>
        </member>
        <member name="F:FluentFTP.FtpZOSListRealm.Member">
            <summary>
            Partitioned dataset member, RECFM != U
            </summary>
        </member>
        <member name="F:FluentFTP.FtpZOSListRealm.MemberU">
            <summary>
            Partitioned dataset member, RECFM = U
            </summary>
        </member>
        <member name="F:FluentFTP.FtpZOSListRealm.Jes2">
            <summary>
            SITE FILETYPE=JES LIST
            </summary>
        </member>
        <member name="T:FluentFTP.FtpSocketStreamSslValidation">
            <summary>
            Event fired if a bad SSL certificate is encountered. This even is used internally; if you
            don't have a specific reason for using it you are probably looking for FtpSslValidation.
            </summary>
            <param name="stream"></param>
            <param name="e"></param>
        </member>
        <member name="T:FluentFTP.FtpSslValidation">
            <summary>
            Event is fired when a SSL certificate needs to be validated
            </summary>
            <param name="control">The control connection that triggered the event</param>
            <param name="e">Event args</param>
        </member>
        <member name="T:FluentFTP.FtpSslValidationEventArgs">
            <summary>
            Event args for the FtpSslValidationError delegate
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSslValidationEventArgs.Certificate">
            <summary>
            The certificate to be validated
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSslValidationEventArgs.Chain">
            <summary>
            The certificate chain
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSslValidationEventArgs.PolicyErrors">
            <summary>
            Validation errors, if any.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSslValidationEventArgs.PolicyErrorMessage">
            <summary>
            Validation errors, if any.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSslValidationEventArgs.Accept">
            <summary>
            Gets or sets a value indicating if this certificate should be accepted. The default
            value is false. If the certificate is not accepted, an AuthenticationException will
            be thrown.
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpAuthenticationException">
            <summary>
            Exception triggered on FTP authentication failures
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpAuthenticationException.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of a FtpAuthenticationException
            </summary>
            <param name="code">Status code</param>
            <param name="message">Associated message</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpAuthenticationException.#ctor(FluentFTP.FtpReply)">
            <summary>
            Initializes a new instance of a FtpAuthenticationException
            </summary>
            <param name="reply">The FtpReply to build the exception from</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpAuthenticationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpCommandException">
            <summary>
            Exception triggered on FTP command failures
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpCommandException.CompletionCode">
            <summary>
            Gets the completion code associated with the response
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpCommandException.ResponseType">
            <summary>
            The type of response received from the last command executed
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpCommandException.Message">
            <summary>
            Setup the error message string
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpCommandException.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of a FtpResponseException
            </summary>
            <param name="code">Status code</param>
            <param name="message">Associated message</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpCommandException.#ctor(FluentFTP.FtpReply)">
            <summary>
            Initializes a new instance of a FtpResponseException
            </summary>
            <param name="reply">The FtpReply to build the exception from</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpCommandException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpException">
            <summary>
            FTP related error
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:FluentFTP.Exceptions.FtpException"/> class.
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:FluentFTP.Exceptions.FtpException"/> class with an inner exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpHashUnsupportedException">
            <summary>
            Exception is thrown when the required hash algorithm is unsupported by the server.
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpHashUnsupportedException.Algorithm">
            <summary>
            Gets the unsupported hash algorithm
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpHashUnsupportedException.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpHashUnsupportedException.#ctor(FluentFTP.FtpHashAlgorithm,System.String)">
            <summary>
            Algorithm-specific constructor
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpHashUnsupportedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpInvalidCertificateException">
            <summary>
            Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server.
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpInvalidCertificateException.InnerException">
            <summary>
            AuthenticationException that caused this.
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpInvalidCertificateException.#ctor(System.Exception)">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpInvalidCertificateException.#ctor(System.String)">
            <summary>
            Custom error message
            </summary>
            <param name="message">Error message</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpInvalidCertificateException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpListParseException">
            <summary>
            Exception thrown by FtpListParser when parsing of FTP directory listing fails.
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpListParseException.#ctor">
            <summary>
            Creates a new FtpListParseException.
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpListParseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpMissingObjectException">
            <summary>
            Exception is thrown by FtpClient/AsyncFtpClient when the primary file or folder to be downloaded is missing.
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpMissingObjectException.Type">
            <summary>
            Gets the type of file system object.
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpMissingObjectException.FullPath">
            <summary>
            Gets the full path name to the file or folder.
            </summary>
        </member>
        <member name="P:FluentFTP.Exceptions.FtpMissingObjectException.Name">
            <summary>
            Gets the name of the file or folder. Does not include the full path.
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpMissingObjectException.#ctor(System.String,System.Exception,System.String,FluentFTP.FtpObjectType)">
            <summary>
            Creates a new FtpMissingObjectException.
            </summary>
            <param name="innerException">The original exception.</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpMissingObjectException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpMissingSocketException">
            <summary>
            Exception is thrown by FtpSocketStream when there is no FTP server socket to connect to.
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpMissingSocketException.#ctor(System.Exception)">
            <summary>
            Creates a new FtpMissingSocketException.
            </summary>
            <param name="innerException">The original exception.</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpMissingSocketException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpProtocolUnsupportedException">
            <summary>
            FtpProtocolUnsupportedException
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpProtocolUnsupportedException.#ctor(System.String)">
            <summary>
            FtpProtocolUnsupportedException
            </summary>
            <param name="message">Error message</param>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpProxyException">
            <summary>
            FtpProxyException
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpProxyException.#ctor">
            <summary>
            FtpProxyException
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpProxyException.#ctor(System.String)">
            <summary>
            FtpProxyException
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpProxyException.#ctor(System.String,System.Exception)">
            <summary>
            FtpProxyException
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.FtpSecurityNotAvailableException">
            <summary>
            Exception is thrown when TLS/SSL encryption could not be negotiated by the FTP server.
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpSecurityNotAvailableException.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpSecurityNotAvailableException.#ctor(System.String)">
            <summary>
            Custom error message
            </summary>
            <param name="message">Error message</param>
        </member>
        <member name="M:FluentFTP.Exceptions.FtpSecurityNotAvailableException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Must be implemented so every Serializer can Deserialize the Exception
            </summary>
        </member>
        <member name="T:FluentFTP.Exceptions.IOExceptions">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Exceptions.IOExceptions.IsResumeAllowed(System.IO.IOException)">
            <summary>
            Check if operation can resume after <see cref="T:System.IO.IOException"/>.
            </summary>
            <param name="exception">Received exception.</param>
            <returns>Result of checking.</returns>
        </member>
        <member name="T:FluentFTP.Helpers.Collections">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Collections.IsBlank(System.Collections.IList)">
            <summary>
            Checks if the array is null or 0 length.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Collections.IsBlank(System.Collections.IEnumerable)">
            <summary>
            Checks if the array is null or 0 length.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Collections.ItemsToString(System.Object[])">
            <summary>
            Converts the arguments to an array of strings.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Collections.AddOnce``1(System.Collections.Generic.List{``0},``0)">
            <summary>
            Ensures the given item is only added once. If it was not present true is returned, else false is returned.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Collections.ShallowClone``1(System.Collections.Generic.List{``0})">
            <summary>
            Shallow clones the list by copying each item to a new list.
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.DateTimes">
            <summary>
            Extension methods related to FTP date time values
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.DateTimes.ParseFtpDate(System.String,FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Converts the FTP date string into a DateTime object, without performing any timezone conversion.
            </summary>
            <param name="dateString">The date string</param>
            <param name="client">The client object this is done for</param>
            <param name="formats">Date formats to try parsing the value from (eg "yyyyMMddHHmmss")</param>
            <returns>A <see cref="T:System.DateTime"/> object representing the date, or <see cref="F:System.DateTime.MinValue"/> if there was a problem</returns>
        </member>
        <member name="M:FluentFTP.Helpers.DateTimes.GenerateFtpDate(System.DateTime)">
            <summary>
            Generates an FTP date-string from the DateTime object, without performing any timezone conversion.
            </summary>
            <param name="date">The date value</param>
            <returns>A string representing the date</returns>
        </member>
        <member name="M:FluentFTP.Helpers.DateTimes.ToCode(System.DateTime)">
            <summary>
            Generates C# code to create this date.
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.Enums">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Enums.IsValidCombination(FluentFTP.FtpError)">
            <summary>
            Validates that the FtpError flags set are not in an invalid combination.
            </summary>
            <param name="options">The error handling options set</param>
            <returns>True if a valid combination, otherwise false</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Enums.IsSuccess(FluentFTP.FtpStatus)">
            <summary>
            Checks if the operation was successful or skipped (indicating success).
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Enums.IsFailure(FluentFTP.FtpStatus)">
            <summary>
            Checks if the operation has failed.
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.FileListings">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FileListings.FileExistsInNameListing(System.String[],System.String)">
            <summary>
            Checks if the given file exists in the given file listing.
            Supports servers that return:  1) full paths,  2) only filenames,  3) full paths without slash prefixed,  4) full paths with invalid slashes
            </summary>
            <param name="fileList">The listing returned by GetNameListing</param>
            <param name="path">The full file path you want to check</param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Helpers.FileListings.FileExistsInListing(FluentFTP.FtpListItem[],System.String)">
            <summary>
            Checks if the given file exists in the given file listing.
            </summary>
            <param name="fileList">The listing returned by GetListing</param>
            <param name="path">The full file path you want to check</param>
            <returns></returns>
        </member>
        <member name="T:FluentFTP.Helpers.FileSizes">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FileSizes.FileSizeToString(System.Int32)">
            <summary>
            Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FileSizes.FileSizeToString(System.UInt32)">
            <summary>
            Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FileSizes.FileSizeToString(System.UInt64)">
            <summary>
            Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FileSizes.FileSizeToString(System.Int64)">
            <summary>
            Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.FtpListParser">
            <summary>
            Parses a line from a file listing using the first successful parser, or the specified parser.
            Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
            </summary>
        </member>
        <member name="F:FluentFTP.Helpers.FtpListParser.client">
            <summary>
            the FTP connection that owns this parser
            </summary>
        </member>
        <member name="P:FluentFTP.Helpers.FtpListParser.CurrentParser">
            <summary>
            current parser, or parser set by user
            </summary>
        </member>
        <member name="P:FluentFTP.Helpers.FtpListParser.DetectedParser">
            <summary>
            parser calculated based on system type (SYST command)
            </summary>
        </member>
        <member name="P:FluentFTP.Helpers.FtpListParser.ParserConfirmed">
            <summary>
            if we have detected that the current parser is valid
            </summary>
        </member>
        <member name="P:FluentFTP.Helpers.FtpListParser.VMSNameHasVersion">
            <summary>
            Is the version number returned as part of the filename?
            
            Some VMS FTP servers do not permit a file to be deleted unless
            the filename includes the version number. Note that directories are
            never returned with the version number.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FtpListParser.#ctor(FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Initializes a new instance of the <see cref="T:FluentFTP.Helpers.FtpListParser"/> class.
            </summary>
            <param name="client">An existing <see cref="T:FluentFTP.Client.BaseClient.BaseFtpClient"/> object</param>
        </member>
        <member name="M:FluentFTP.Helpers.FtpListParser.Init(FluentFTP.FtpOperatingSystem,FluentFTP.FtpParser)">
            <summary>
            Try to auto-detect which parser is suitable given a system string.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FtpListParser.ParseSingleLine(System.String,System.String,System.Collections.Generic.List{FluentFTP.FtpCapability},System.Boolean)">
            <summary>
            Parse raw file from server into a file object, using the currently active parser.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FtpListParser.ValidateParser(System.String[])">
            <summary>
            Validate if the current parser is correct, or if another parser seems more appropriate.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.FtpListParser.IsParserValid(FluentFTP.FtpParser,System.String[])">
            <summary>
            Validate if the current parser is correct
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.Hashing.HashAlgorithms">
            <summary>
            Helper class to convert FtpHashAlgorithm
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Hashing.HashAlgorithms.FromString(System.String)">
            <summary>
            Get FtpHashAlgorithm from its string representation
            </summary>
            <param name="name">Name of the hash algorithm</param>
            <returns>The FtpHashAlgorithm</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Hashing.HashAlgorithms.PrintToString(FluentFTP.FtpHashAlgorithm)">
            <summary>
            Get string representation of FtpHashAlgorithm
            </summary>
            <param name="name">FtpHashAlgorithm to be converted into string</param>
            <returns>Name of the hash algorithm</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Hashing.HashAlgorithms.FirstSupported(FluentFTP.FtpHashAlgorithm)">
            <summary>
            Get the first supported algorithm, in the standard order of preference. If no hashing algos found, returns NONE.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Hashing.HashParser.Parse(System.String)">
            <summary>
            Parses the received FTP hash response into a new FtpHash object.
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.LocalPaths">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.LocalPaths.IsLocalFolderPath(System.String)">
            <summary>
            Returns true if the given path is a directory path.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.LocalPaths.EnsureDirectory(System.String)">
            <summary>
            Ensures the given directory exists.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.LocalPaths.CombineLocalPath(System.String,System.String)">
            <summary>
            Combine the given base path with the relative path
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.LocalPorts">
            <summary>
            The local ports.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.LocalPorts.GetRandomAvailable(System.Net.IPAddress)">
            <summary>
            Get random local port for the given local IP address
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Logging.LoggerExtensions.Log(FluentFTP.IFtpLogger,FluentFTP.FtpTraceLevel,System.String,System.Exception)">
            <summary>
            Log a message to the given IFluentLogger class.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Logging.LoggerExtensions.GetLogPrefix(FluentFTP.FtpTraceLevel)">
            <summary>
            Get the log prefix for the given trace level type.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.IBMOS400Parser.IsValid(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Checks if the given listing is a valid IBM OS/400 file listing
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.IBMOS400Parser.Parse(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses IBM OS/400 format listings
            </summary>
            <param name="client">The FTP client</param>
            <param name="record">A line from the listing</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.IBMOS400Parser.ParseDateTime(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses the last modified date from IBM OS/400 format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.IBMzOSParser.IsValid(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Checks if the given listing is a valid IBM z/OS file listing
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.IBMzOSParser.Parse(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,System.String)">
            <summary>
            Parses IBM z/OS format listings
            </summary>
            <param name="client">The FTP client</param>
            <param name="record">A line from the listing</param>
            <param name="path">Current location</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.IBMzOSParser.ParseDateTime(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses the last modified date from IBM z/OS format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.MachineListParser.IsValid(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Checks if the given listing is a valid Machine Listing item
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.MachineListParser.Parse(System.String,System.Collections.Generic.List{FluentFTP.FtpCapability},FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Parses MLSD/MLST format listings
            </summary>
            <param name="record">A line from the listing</param>
            <param name="capabilities">Server capabilities</param>
            <param name="client">The FTP client</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.MachineListParser.ParseDateTime(System.String,FluentFTP.FtpListItem,FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Parses the date modified field from MLSD/MLST format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.MachineListParser.ParseFileSize(System.String,FluentFTP.FtpListItem)">
            <summary>
            Parses the file size field from MLSD/MLST format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.MachineListParser.ParsePermissions(System.String,FluentFTP.FtpListItem)">
            <summary>
            Parses the permissions from MLSD/MLST format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.NonStopParser.IsValid(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Checks if the given listing is a valid NonStop file listing
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.NonStopParser.Parse(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses NonStop format listings
            </summary>
            <param name="client">The FTP client</param>
            <param name="record">A line from the listing</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.NonStopParser.ParseDirAndFileSize(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[],System.Boolean@,System.Int64@)">
            <summary>
            Parses the directory type and file size from NonStop format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.NonStopParser.ParseDateTime(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses the last modified date from NonStop format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.IsValid(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Checks if the given listing is a valid Unix file listing
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.Parse(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses Unix format listings
            </summary>
            <param name="client">The FTP client</param>
            <param name="record">A line from the listing</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParsePermissions(System.String[],System.Int32@,System.String@,System.Boolean@,System.Boolean@)">
            <summary>
            Parses the permissions from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseLinkCount(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[],System.Int32@)">
            <summary>
            Parses the link count from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseOwnerGroup(System.String[],System.Int32@,System.String@,System.String@)">
            <summary>
            Parses the owner and group permissions from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseFileSize(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[],System.Int32@)">
            <summary>
            Parses the file size from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseDayOfMonth(System.String[],System.Int32@)">
            <summary>
            Parses day-of-month from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseName(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,System.String[],System.Boolean,System.Int32,System.Int32,System.String@,System.String@)">
            <summary>
            Parses the file or folder name from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseDateTime(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[],System.Int32@,System.Int32,System.DateTime@)">
            <summary>
            Parses the last modified date from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseYear(FluentFTP.Client.BaseClient.BaseFtpClient,System.Text.StringBuilder,System.String[])">
            <summary>
            Parses the last modified year from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseDateTime(FluentFTP.Client.BaseClient.BaseFtpClient,System.Text.StringBuilder,System.String[])">
            <summary>
            Parses the last modified date from Unix format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.UnixParser.ParseUnixAlt(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses Unix format listings with alternate parser
            </summary>
            <param name="client">The FTP client</param>
            <param name="record">A line from the listing</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.VMSParser.IsValid(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Checks if the given listing is a valid VMS file listing
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.VMSParser.Parse(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses Vax/VMS format listings
            </summary>
            <param name="client">The FTP client</param>
            <param name="record">A line from the listing</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.VMSParser.ParseFileSize(System.String)">
            <summary>
            Parses the file size from Vax/VMS format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.VMSParser.ParseGroupOwner(System.String[],System.String@,System.String@)">
            <summary>
            Parses the owner and group permissions from Vax/VMS format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.VMSParser.ParsePermissions(System.String[])">
            <summary>
            Parses the permissions from Vax/VMS format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.VMSParser.ParseDateTime(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,System.String)">
            <summary>
            Parses the last modified date from Vax/VMS format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.WindowsParser.IsValid(FluentFTP.Client.BaseClient.BaseFtpClient,System.String[])">
            <summary>
            Checks if the given listing is a valid IIS/DOS file listing
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.WindowsParser.Parse(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses IIS/DOS format listings
            </summary>
            <param name="client">The FTP client</param>
            <param name="record">A line from the listing</param>
            <returns>FtpListItem if the item is able to be parsed</returns>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.WindowsParser.ParseName(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,System.String[],System.Boolean)">
            <summary>
            Parses the file or folder name from IIS/DOS format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.WindowsParser.ParseTypeAndFileSize(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,System.Boolean@,System.Int64@)">
            <summary>
            Parses the file size and checks if the item is a directory from IIS/DOS format listings
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Parsers.WindowsParser.ParseDateTime(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Parses the last modified date from IIS/DOS format listings
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.Permissions">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Permissions.CalculateChmod(FluentFTP.FtpListItem)">
            <summary>
            Calculates the CHMOD value from the permissions flags
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Permissions.CalculateUnixPermissions(FluentFTP.FtpListItem,System.String)">
            <summary>
            Calculates the permissions flags from the CHMOD value
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Permissions.CalcChmod(FluentFTP.FtpPermission,FluentFTP.FtpPermission,FluentFTP.FtpPermission)">
            <summary>
            Calculate the CHMOD integer value given a set of permissions.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Permissions.HasPermission(FluentFTP.FtpPermission,FluentFTP.FtpPermission)">
            <summary>
            Checks if the permission value has the given flag
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.RemotePaths">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.IsAbsolutePath(System.String)">
            <summary>
            Checks if this FTP path is a top level path
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.IsFtpRootDirectory(System.String)">
            <summary>
            Checks if the given path is a root directory or working directory path
            </summary>
            <param name="ftppath"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.GetFtpPath(System.String)">
            <summary>
            Converts the specified path into a valid FTP file system path.
            Replaces invalid back-slashes with valid forward-slashes.
            Replaces multiple slashes with single slashes.
            Removes the ending postfix slash if any.
            </summary>
            <param name="path">The file system path</param>
            <returns>A path formatted for FTP</returns>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.GetFtpPath(System.String,System.String[])">
            <summary>
            Creates a valid FTP path by appending the specified segments to this string
            </summary>
            <param name="path">This string</param>
            <param name="segments">The path segments to append</param>
            <returns>A valid FTP path</returns>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.GetFtpDirectoryName(System.String)">
            <summary>
            Gets the parent directory path (formatted for a FTP server)
            </summary>
            <param name="path">The path</param>
            <returns>The parent directory path</returns>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.GetFtpFileName(System.String)">
            <summary>
            Gets the file name and extension from the path.
            Supports paths with backslashes and forwardslashes.
            </summary>
            <param name="path">The full path to the file</param>
            <returns>The file name</returns>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.GetPathSegments(System.String)">
            <summary>
            Converts a Windows or Unix-style path into its segments for segment-wise processing
            </summary>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.Helpers.RemotePaths.CalculateFullFtpPath(FluentFTP.FtpListItem,FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Get the full path of a given FTP Listing entry
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.Strings">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.IsNullOrWhiteSpace(System.String)">
            <summary>
            Checks if every character in the string is whitespace, or the string is null.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.IsBlank(System.String)">
            <summary>
            Checks if the string is null or 0 length.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.Join(System.String[],System.String)">
            <summary>
            Join the given strings by a delimiter.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.Join(System.Collections.Generic.List{System.String},System.String)">
            <summary>
            Join the given strings by a delimiter.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.AddPrefix(System.String[],System.String,System.Boolean)">
            <summary>
            Adds a prefix to the given strings, returns a new array.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.AddPrefix(System.Collections.Generic.List{System.String},System.String,System.Boolean)">
            <summary>
            Adds a prefix to the given strings, returns a new array.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.EnsurePrefix(System.String,System.String)">
            <summary>
            Ensure a string has the given prefix
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.EnsurePostfix(System.String,System.String)">
            <summary>
            Ensure a string has the given postfix
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.RemovePrefix(System.String,System.String)">
            <summary>
            Remove a prefix from a string, only if it has the given prefix
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.RemovePostfix(System.String,System.String)">
            <summary>
            Remove a postfix from a string, only if it has the given postfix
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.EscapeStringLiteral(System.String)">
            <summary>
            Escape a string into a valid C# string literal.
            Implementation from StackOverflow - https://stackoverflow.com/a/14087738
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.SplitString(System.String)">
            <summary>
            Split into fields by splitting on tokens
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.IsNumeric(System.String)">
            <summary>
            Checks if all the characters in this string are digits or dots
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.ContainsAny(System.String,System.String[],System.Int32)">
            <summary>
            Checks if the string contains any of the given values
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.IsValidRegEx(System.String)">
            <summary>
            Checks if RexEx Pattern is valid
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.ContainsAnyCI(System.String,System.String[])">
            <summary>
            Checks if the reply contains any of the known error strings, by checking in case-insensitive manner.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.EqualsAny(System.String,System.String[])">
            <summary>
            Checks if the string equals any of these values, by checking in case-sensitive manner.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.ContainsCI(System.String,System.String)">
            <summary>
            Checks if the string contains the given substring in a case-insensitive manner.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.StartsWithCI(System.String,System.String)">
            <summary>
            Checks if the string starts with the given substring in a case-insensitive manner.
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Strings.EndsWithCI(System.String,System.String)">
            <summary>
            Checks if the string ends with the given substring in a case-insensitive manner.
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.TimeSpans">
            <summary>
            Extension methods related to FTP time span values
            </summary>
        </member>
        <member name="T:FluentFTP.Helpers.Uris">
            <summary>
            Extension methods related to FTP tasks
            </summary>
        </member>
        <member name="M:FluentFTP.Helpers.Uris.ValidateFtpServer(System.Uri)">
            <summary>
            Ensures that the URI points to a server, and not a directory or invalid path.
            </summary>
            <param name="uri"></param>
        </member>
        <member name="T:FluentFTP.FtpClientState">
            <summary>
            The current "state" of the client
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.EPSVNotSupported">
            <summary>
            Used to improve performance of OpenPassiveDataStream.
            Enhanced-passive mode is tried once, and if not supported, is not tried again.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.FileSizeASCIINotSupported">
            <summary>
            Used to improve performance of GetFileSize.
            SIZE command is tried, and if the server cannot send it in ASCII mode, we switch to binary each time you call GetFileSize.
            However most servers will support ASCII, so we can get the file size without switching to binary, improving performance.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.RecursiveListSupported">
            <summary>
            Used to improve performance of GetListing.
            You can set this to true by setting the RecursiveList property.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.AutoDispose">
            <summary>
            Used to automatically dispose cloned connections after FXP transfer has ended.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.LastWorkingDir">
            <summary>
            Cached value of the last read working directory (absolute path).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.LastHashAlgo">
            <summary>
            Cached value of the last set hash algorithm.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.ConnectionFTPSFailure">
            <summary>
            Did the FTPS connection fail during the last Connect/ConnectAsync attempt?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.ConnectionUTF8Success">
            <summary>
            Did the UTF8 encoding setting work during the last Connect/ConnectAsync attempt?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.CurrentDataType">
            <summary>
            Store the current data type setting
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.AllowCheckStaleData">
            <summary>
            Allow checking for stale data on socket?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.InCriticalSequence">
            <summary>
            We are in a sequence of commands that should not be interrupted
            by an automatic reconnect
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.ConnectCount">
            <summary>
            Count the reconnects
            Reset this value when a non-reconnect takes place
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClientState.Reset(System.Boolean)">
            <summary>
            These flags must be reset every time we connect, to allow for users to connect to
            different FTP servers with the same client object.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpClientState.CopyFrom(FluentFTP.FtpClientState)">
            <summary>
            These flags must be copied when we quickly clone the connection.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.CachedHostIpads">
            <summary>
            Avoid repeated DNS queries for the same host name
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.zOSListingRealm">
            <summary>
            During and after a z/OS GetListing(), this value stores the
            z/OS filesystem realm that was encountered.
            The value is used internally to control the list parse mode
            </summary>
        </member>
        <member name="P:FluentFTP.FtpClientState.zOSListingLRECL">
            <summary>
            During and after a z/OS GetListing(), this value stores the
            the LRECL that was encountered (for a realm = Member only).
            The value is used internally to calculate member sizes
            </summary>
        </member>
        <member name="T:FluentFTP.FtpConfig">
            <summary>
            Holds all the configuration settings for a single FTP client.
            One FtpConfig object can only be bound to one client at a time.
            If you want to reuse it across multiple FTP clients, then clone it and then reuse it.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.Client">
            <summary>
            Which FtpClient are we bound to?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.LogToConsole">
            <summary>
            Should the function calls be logged in Verbose mode?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.LogHost">
            <summary>
            Should the FTP server host IP/domain be shown in the logs (true) or masked out (false)?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.LogUserName">
            <summary>
            Should the FTP username be shown in the logs (true) or masked out (false)?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.LogPassword">
            <summary>
            Should the FTP password be shown in the logs (true) or masked out (false)?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.LogDurations">
            <summary>
            Should the command duration be shown after each log command?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.InternetProtocolVersions">
            <summary>
            Flags specifying which versions of the internet protocol (IPV4 or IPV6) to
            support when making a connection. All addresses returned during
            name resolution are tried until a successful connection is made.
            You can fine tune which versions of the internet protocol to use
            by adding or removing flags here. I.e., setting this property
            to FtpIpVersion.IPv4 will cause the connection process to
            ignore IPv6 addresses. The default value is ANY version.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SocketPollInterval">
            <summary>
            Gets or sets the length of time in milliseconds
            that must pass since the last socket activity
            before calling <see cref="M:System.Net.Sockets.Socket.Poll(System.Int32,System.Net.Sockets.SelectMode)"/> 
            on the socket to test for connectivity. 
            Setting this interval too low will
            have a negative impact on performance. Setting this
            interval to 0 disables Polling all together.
            The default value is 15 seconds.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.StaleDataCheck">
            <summary>
            Gets or sets a value indicating whether a test should be performed to
            see if there is stale (unrequested data) sitting on the socket. In some
            cases the control connection may time out but before the server closes
            the connection it might send a 4xx response that was unexpected and
            can cause synchronization errors with transactions. To avoid this
            problem the <see cref="o:Execute"/> method checks to see if there is any data
            available on the socket before executing a command.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.NoopInterval">
            <summary>
            Gets or sets the length of time in milliseconds after last command
            (NOOP or other) that a NOOP command is sent by <see cref="M:FluentFTP.FtpClient.Noop"/>/<see cref="M:FluentFTP.AsyncFtpClient.NoopAsync(System.Threading.CancellationToken)"/>.
            This is called during downloading/uploading. Setting this
            interval to 0 disables <see cref="M:FluentFTP.FtpClient.Noop"/>/<see cref="M:FluentFTP.AsyncFtpClient.NoopAsync(System.Threading.CancellationToken)"/> all together.
            The default value is 0 (disabled).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.CheckCapabilities">
            <summary>
            When this value is set to true (default) the control connection
            will set which features are available by executing the FEAT command
            when the connect method is called.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ClientCertificates">
            <summary>
            Client certificates to be used in SSL authentication process
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.AddressResolver">
            <summary>
            Delegate used for resolving local address, used for active data connections
            This can be used in case you're behind a router, but port forwarding is configured to forward the
            ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ActivePorts">
            <summary>
            Ports used for Active Data Connection.
            Useful when your FTP server has certain ports that are blocked or used for other purposes.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.PassiveBlockedPorts">
            <summary>
            Ports blocked for Passive Data Connection (PASV and EPSV).
            Useful when your FTP server has certain ports that are blocked or used for other purposes.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.PassiveMaxAttempts">
            <summary>
            Maximum number of passive connections made in order to find a working port for Passive Data Connection (PASV and EPSV).
            Only used if PassiveBlockedPorts is non-null.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DataConnectionType">
            <summary>
            Data connection type, default is AutoPassive which tries
            a connection with EPSV first and if it fails then tries
            PASV before giving up. If you know exactly which kind of
            connection you need you can slightly increase performance
            by defining a specific type of passive or active data
            connection here.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DisconnectWithQuit">
            <summary>
            Disconnect from the server without sending QUIT. This helps
            work around IOExceptions caused by buggy connection resets
            when closing the control connection.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ConnectTimeout">
            <summary>
            Gets or sets the length of time in milliseconds to wait for a connection 
            attempt to succeed before giving up. Default is 0 (Use OS default timeout)
            See: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#connection-timeout-settings
            and: https://github.com/robinrodricks/FluentFTP/wiki/FTP-Connection#faq_timeoutwindows
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ReadTimeout">
            <summary>
            Gets or sets the length of time wait in milliseconds for data to be
            read from the underlying stream. The default value is 15000 (15 seconds).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DataConnectionConnectTimeout">
            <summary>
            Gets or sets the length of time in milliseconds for a data connection
            to be established before giving up. Default is 15000 (15 seconds).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DataConnectionReadTimeout">
            <summary>
            Gets or sets the length of time in milliseconds the data channel
            should wait for the server to send data. Default value is 
            15000 (15 seconds).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SocketKeepAlive">
            <summary>
            Gets or sets a value indicating if <see cref="F:System.Net.Sockets.SocketOptionName.KeepAlive"/> should be set on 
            the underlying stream's socket. If the connection is alive, the option is
            adjusted in real-time. The value is stored and the KeepAlive option is set
            accordingly upon any new connections. The value set here is also applied to
            all future data streams. It has no affect on cloned control connections or
            data connections already in progress. The default value is false.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.EncryptionMode">
            <summary>
            Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DataConnectionEncryption">
            <summary>
            Indicates if data channel transfers should be encrypted. Only valid if <see cref="P:FluentFTP.FtpConfig.EncryptionMode"/>
            property is not equal to <see cref="F:FluentFTP.FtpEncryptionMode.None"/>.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SslProtocols">
            <summary>
            Encryption protocols to use. Only valid if EncryptionMode property is not equal to <see cref="F:FluentFTP.FtpEncryptionMode.None"/>.
            Default value is .NET Framework defaults from the <see cref="T:System.Net.Security.SslStream"/> class.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SslBuffering">
            <summary>
            Whether to use SSL Buffering to speed up data transfer during FTP operations.
            SSL Buffering is always disabled on .NET 5.0 and later due to platform issues (see issue 682 in FluentFTP issue tracker).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SslSessionLength">
            <summary>
            Gets or sets the max number of socket write/read transactions
            before an automatic disconnect/reconnect is performed.
            This is required to bypass an SSL issue that occurs after a specific number of transactions.
            Set to zero to disable automatic reconnects.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ValidateAnyCertificate">
            <summary>
            Accept any SSL certificate received from the server and skip performing
            the validation using the ValidateCertificate callback.
            Useful for Powershell users.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ValidateCertificateRevocation">
            <summary>
            Indicates if the certificate revocation list is checked during authentication.
            Useful when you need to maintain the certificate chain validation,
            but skip the certificate revocation check.
            WARNING: Enabling this can cause memory leaks in some conditions (see issue #710 for details).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ListingDataType">
            <summary>
            Controls if the file listings are downloaded in Binary or ASCII mode.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ListingParser">
            <summary>
            File listing parser to be used. 
            Automatically calculated based on the type of the server at the time of connection.
            If you want to override this property, make sure to do it after calling Connect.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ListingCulture">
            <summary>
            Culture used to parse file listings
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.ListingCustomParser">
            <summary>
            Custom file listing parser to be used.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpConfig.CustomParser">
            <summary>
            Callback format to implement your custom FTP listing line parser.
            </summary>
            <param name="line">The line from the listing</param>
            <param name="capabilities">The server capabilities</param>
            <param name="client">The FTP client</param>
            <returns>Return an FtpListItem object if the line can be parsed, else return null</returns>
        </member>
        <member name="P:FluentFTP.FtpConfig.TimeZone">
            <summary>
            The timezone of the FTP server. If the server is in Tokyo with UTC+9 then set this to 9.
            If the server returns timestamps in UTC then keep this 0.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.TimeConversion">
            <summary>
            Server timestamps are converted into the given timezone.
            ServerTime will return the original timestamp.
            LocalTime will convert the timestamp into your local machine's timezone.
            UTC will convert the timestamp into UTC format (GMT+0).
            You need to set TimeZone and LocalTimeZone (.NET core only) for these to work.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.BulkListing">
            <summary>
            If true, increases performance of GetListing by reading multiple lines
            of the file listing at once. If false then GetListing will read file
            listings line-by-line. If GetListing is having issues with your server,
            set it to false.
            
            The number of bytes read is based upon <see cref="P:FluentFTP.FtpConfig.BulkListingLength"/>.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.BulkListingLength">
            <summary>
            Bytes to read during GetListing. Only honored if <see cref="P:FluentFTP.FtpConfig.BulkListing"/> is true.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.TransferChunkSize">
            <summary>
            Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
            Used by <see cref="o:UploadFile"/>/<see cref="o:UploadFileAsync"/> and <see cref="o:DownloadFile"/>/<see cref="o:DownloadFileAsync"/>
            to transfer large files in multiple chunks.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.LocalFileBufferSize">
            <summary>
            Gets or sets the size of the file buffer when reading and writing files on the local file system.
            Used by <see cref="o:UploadFile"/>/<see cref="o:UploadFileAsync"/> and <see cref="o:DownloadFile"/>/<see cref="o:DownloadFileAsync"/>
            and all the other file and directory transfer methods.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.RetryAttempts">
            <summary>
            Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
            This value must be set to 1 or more.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.UploadRateLimit">
            <summary>
            Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
            Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DownloadRateLimit">
            <summary>
            Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
            Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DownloadZeroByteFiles">
            <summary>
            Controls if zero-byte files should be downloaded or skipped.
            If false, then no file is created/overwritten into the filesystem.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.UploadDataType">
            <summary>
            Controls if the high-level API uploads files in Binary or ASCII mode.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DownloadDataType">
            <summary>
            Controls if the high-level API downloads files in Binary or ASCII mode.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.UploadDirectoryDeleteExcluded">
            <summary>
            Controls if the UploadDirectory API deletes the excluded files when uploading in Mirror mode.
            If true, then any files that are excluded will be deleted from the FTP server if they are
            excluded from the local system. This is done to keep the server in sync with the local system.
            But if it is false, the excluded files are not touched on the server, and simply ignored.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.DownloadDirectoryDeleteExcluded">
            <summary>
            Controls if the DownloadDirectory API deletes the excluded files when downloading in Mirror mode.
            If true, then any files that are excluded will be deleted from the local filesystem if they are
            excluded from the FTP server. This is done to keep the local filesystem in sync with the FTP server.
            But if it is false, the excluded files are not touched on the local filesystem, and simply ignored.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.FXPDataType">
            <summary>
            Controls if the FXP server-to-server file transfer API uses Binary or ASCII mode.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.FXPProgressInterval">
            <summary>
            Controls how often the progress reports are sent during an FXP file transfer.
            The default value is 1000 (1 second).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SendHost">
            <summary>
            Controls if the HOST command is sent immediately after the handshake.
            Useful when you are using shared hosting and you need to inform the
            FTP server which domain you want to connect to.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SendHostDomain">
            <summary>
            Controls which domain is sent with the HOST command.
            If this is null, then the Host parameter of the FTP client is sent.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.SocketLocalIp">
            <summary>
            The local socket will be bound to the given local IP/interface.
            This is useful if you have several usable public IP addresses and want to use a particular one.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.CustomStream">
            <summary>
            Used to set a custom stream handler, for example to integrate with the `FluentFTP.GnuTLS` package.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpConfig.CustomStreamConfig">
            <summary>
            Used to set the configuration for a custom stream handler, for example to integrate with the `FluentFTP.GnuTLS` package.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpConfig.BindTo(FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Bind this FtpConfig object to the given FTP client.
            </summary>
            <param name="client"></param>
        </member>
        <member name="M:FluentFTP.FtpConfig.Clone">
            <summary>
            Return a deep clone of this FtpConfig object.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpConfig.CopyTo(FluentFTP.FtpConfig,FluentFTP.FtpConfig)">
            <summary>
            Copy settings from one config object to another.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpFxpSession">
            <summary>
            Object that keeps track of an active FXP Connection between 2 FTP servers.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSession.SourceServer">
            <summary>
            A connection to the FTP server where the file or folder is currently stored
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSession.TargetServer">
            <summary>
            A connection to the destination FTP server where you want to create the file or folder
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSession.ProgressServer">
            <summary>
            A connection to the destination FTP server used to track progress while transfer is going on.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSession.IsDisposed">
            <summary>
            Gets a value indicating if this object has already been disposed.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpFxpSession.Dispose">
            <summary>
            Closes an FXP connection by disconnecting and disposing off the FTP clients that are
            cloned for this FXP connection. Manually created FTP clients are untouched.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpFxpSessionAsync">
            <summary>
            Object that keeps track of an active FXP Connection between 2 FTP servers.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSessionAsync.SourceServer">
            <summary>
            A connection to the FTP server where the file or folder is currently stored
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSessionAsync.TargetServer">
            <summary>
            A connection to the destination FTP server where you want to create the file or folder
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSessionAsync.ProgressServer">
            <summary>
            A connection to the destination FTP server used to track progress while transfer is going on.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpFxpSessionAsync.IsDisposed">
            <summary>
            Gets a value indicating if this object has already been disposed.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpFxpSessionAsync.Dispose">
            <summary>
            Closes an FXP connection by disconnecting and disposing off the FTP clients that are
            cloned for this FXP connection. Manually created FTP clients are untouched.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpHash">
            <summary>
            Represents a computed hash of an object
            on the FTP server. See the following link
            for more information:
            http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
            </summary>
        </member>
        <member name="P:FluentFTP.FtpHash.Algorithm">
            <summary>
            Gets the algorithm that was used to compute the hash
            </summary>
        </member>
        <member name="P:FluentFTP.FtpHash.Value">
            <summary>
            Gets the computed hash returned by the server
            </summary>
        </member>
        <member name="P:FluentFTP.FtpHash.IsValid">
            <summary>
            Gets a value indicating if this object represents a
            valid hash response from the server.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpHash.Verify(System.String)">
            <summary>
            Computes the hash for the specified file and compares
            it to the value in this object. CRC hashes are not supported 
            because there is no built-in support in the .net framework and
            a CRC implementation exceeds the scope of this project. If you
            attempt to call this on a CRC hash a <see cref="T:System.NotImplementedException"/> will
            be thrown.
            </summary>
            <param name="file">The file to compute the hash for</param>
            <returns>True if the computed hash matches what's stored in this object.</returns>
            <exception cref="T:System.NotImplementedException">Thrown if called on a CRC Hash</exception>
        </member>
        <member name="M:FluentFTP.FtpHash.Verify(System.IO.Stream)">
            <summary>
            Computes the hash for the specified stream and compares
            it to the value in this object. CRC hashes are not supported 
            because there is no built-in support in the .net framework and
            a CRC implementation exceeds the scope of this project. If you
            attempt to call this on a CRC hash a <see cref="T:System.NotImplementedException"/> will
            be thrown.
            </summary>
            <param name="istream">The stream to compute the hash for</param>
            <returns>True if the computed hash matches what's stored in this object.</returns>
            <exception cref="T:System.NotImplementedException">Thrown if called on a CRC Hash</exception>
        </member>
        <member name="M:FluentFTP.FtpHash.#ctor">
            <summary>
            Creates an empty instance.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpListItem">
            <summary>
            Represents a file system object on the server
            </summary>
        </member>
        <member name="M:FluentFTP.FtpListItem.#ctor">
            <summary>
            Blank constructor, you will need to fill arguments manually.
            
            NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
            </summary>
        </member>
        <member name="M:FluentFTP.FtpListItem.#ctor(System.String,System.String,System.Int64,System.Boolean,System.DateTime)">
            <summary>
            Constructor with mandatory arguments filled.
            
            NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
            </summary>
        </member>
        <member name="M:FluentFTP.FtpListItem.#ctor(System.String,System.Int64,FluentFTP.FtpObjectType,System.DateTime)">
            <summary>
            Constructor with mandatory arguments filled.
            
            NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.Type">
            <summary>
            Gets the type of file system object.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.SubType">
            <summary>
            Gets the sub type of file system object.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.FullName">
            <summary>
            Gets the full path name to the file or folder.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.Name">
            <summary>
            Gets the name of the file or folder. Does not include the full path.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.LinkTarget">
            <summary>
            Gets the target a symbolic link points to.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.LinkCount">
            <summary>
            Gets the number of links pointing to this file. Only supplied by Unix servers.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.LinkObject">
            <summary>
            Gets the object that the LinkTarget points to.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.Modified">
            <summary>
            Gets the last write time of the object after timezone conversion (if enabled).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.Created">
            <summary>
            Gets the created date of the object after timezone conversion (if enabled).
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.RawModified">
            <summary>
            Gets the last write time of the object before any timezone conversion.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.RawCreated">
            <summary>
            Gets the created date of the object before any timezone conversion.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.Size">
            <summary>
            Gets the size of the object.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.SpecialPermissions">
            <summary>
            Gets special UNIX permissions such as Sticky, SUID and SGID.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.OwnerPermissions">
            <summary>
            Gets the owner permissions.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.GroupPermissions">
            <summary>
            Gets the group permissions.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.OthersPermissions">
            <summary>
            Gets the others permissions.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.RawPermissions">
            <summary>
            Gets the raw string received for the file permissions.
            Use this if the other properties are blank/invalid.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.Chmod">
            <summary>
            Gets the file permissions in the CHMOD format.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.RawGroup">
            <summary>
            Gets the raw string received for the file's GROUP permissions.
            Use this if the other properties are blank/invalid.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.RawOwner">
            <summary>
            Gets the raw string received for the file's OWNER permissions.
            Use this if the other properties are blank/invalid.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpListItem.Input">
            <summary>
            Gets the input string that was parsed to generate the
            values in this object.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpListItem.ToString">
            <summary>
            Returns a string representation of this object and its properties
            </summary>
            <returns>A string representing this object</returns>
        </member>
        <member name="M:FluentFTP.FtpListItem.ToCode">
            <summary>
            Returns a code representation of this object and its properties
            </summary>
        </member>
        <member name="T:FluentFTP.FtpLogEntry">
            <summary>
            Metadata of a single log message.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpProfile">
            <summary>
            The current "profile" defining the client
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.Host">
            <summary>
            The host IP address or URL of the FTP server
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.Credentials">
            <summary>
            The FTP username and password used to login
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.Encryption">
            <summary>
            A working Encryption Mode found for this profile
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.Protocols">
            <summary>
            A working Ssl Protocol setting found for this profile
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.DataConnection">
            <summary>
            A working Data Connection Type found for this profile
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.Encoding">
            <summary>
            A working Encoding setting found for this profile
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.Timeout">
            <summary>
            A working Timeout setting found for this profile, or 0 if default value should be used
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.SocketPollInterval">
            <summary>
            A working SocketPollInterval setting found for this profile, or 0 if default value should be used
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.RetryAttempts">
            <summary>
            A working RetryAttempts setting found for this profile, or 0 if default value should be used
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProfile.EncodingVerified">
            <summary>
            If the server surely supports the given encoding.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpProfile.ToCode">
            <summary>
            Generates valid C# code for this connection profile.
            </summary>
            <returns></returns>
        </member>
        <member name="T:FluentFTP.FtpProgress">
            <summary>
            Class to report FTP file transfer progress during upload or download of files
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.Progress">
            <summary>
            A value between 0-100 indicating percentage complete, or -1 for indeterminate.
            Used to track the progress of an individual file transfer.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.TransferredBytes">
            <summary>
            A value indicating how many bytes have been transferred.
            When unable to calculate percentage, having the partial byte count may help in providing some feedback.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.TransferSpeed">
            <summary>
            A value representing the current Transfer Speed in Bytes per seconds.
            Used to track the progress of an individual file transfer.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.ETA">
            <summary>
            A value representing the calculated 'Estimated time of arrival'.
            Used to track the progress of an individual file transfer.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.RemotePath">
            <summary>
            Stores the absolute remote path of the current file being transferred.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.LocalPath">
            <summary>
            Stores the absolute local path of the current file being transferred.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.FileIndex">
            <summary>
            Stores the index of the file in the listing.
            Only used when transferring multiple files or an entire directory.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProgress.FileCount">
            <summary>
            Stores the total count of the files to be transferred.
            Only used when transferring multiple files or an entire directory.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpProgress.#ctor(System.Int32,System.Int32)">
            <summary>
            Create a new FtpProgress object for meta progress info.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpProgress.#ctor(System.Double,System.Int64,System.Double,System.TimeSpan,System.String,System.String,FluentFTP.FtpProgress)">
            <summary>
            Create a new FtpProgress object for individual file transfer progress.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpProgress.TransferSpeedToString">
            <summary>
            Convert Transfer Speed (bytes per second) in human readable format
            </summary>
        </member>
        <member name="M:FluentFTP.FtpProgress.Generate(System.Int64,System.Int64,System.Int64,System.TimeSpan,System.String,System.String,FluentFTP.FtpProgress)">
            <summary>
            Create a new FtpProgress object for a file transfer and calculate the ETA, Percentage and Transfer Speed.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpProxyProfile">
            <summary>
            Connection profile for a proxy connection.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProxyProfile.ProxyHost">
            <summary> 
            Proxy server host name. Mandatory.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProxyProfile.ProxyPort">
            <summary> 
            Proxy server port. Mandatory.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProxyProfile.ProxyCredentials">
            <summary> 
            Proxy server login credentials. Mandatory if your proxy needs authentication, leave it blank otherwise.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProxyProfile.FtpHost">
            <summary> 
            FTP server host name. Optional. You can either set it here or set `ftpClient.Host` later on.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProxyProfile.FtpPort">
            <summary> 
            FTP server port. Optional. You can either set it here or set `ftpClient.Port` later on.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpProxyProfile.FtpCredentials">
            <summary> 
            FTP server login credentials. Optional. You can either set it here or set `ftpClient.Credentials` later on.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpReply">
            <summary>
            Represents a reply to an event on the server
            </summary>
        </member>
        <member name="P:FluentFTP.FtpReply.Type">
            <summary>
            The type of response received from the last command executed
            </summary>
        </member>
        <member name="P:FluentFTP.FtpReply.Code">
            <summary>
            The status code of the response
            </summary>
        </member>
        <member name="P:FluentFTP.FtpReply.Message">
            <summary>
            The message, if any, that the server sent with the response
            </summary>
        </member>
        <member name="P:FluentFTP.FtpReply.InfoMessages">
            <summary>
            Informational messages sent from the server
            </summary>
        </member>
        <member name="P:FluentFTP.FtpReply.Success">
            <summary>
            General success or failure of the last command executed, by checking the FTP status code.
            1xx, 2xx, 3xx indicate success and 4xx, 5xx are failures.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpReply.ErrorMessage">
            <summary>
            Gets the error message including any informational output
            that was sent by the server. Sometimes the final response
            line doesn't contain anything informative as to what was going
            on with the server. Instead it may send information messages so
            in an effort to give as meaningful as a response as possible
            the informational messages will be included in the error.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpReply.Command">
            <summary>
            Stores the command that produced this reply (if any)
            </summary>
        </member>
        <member name="T:FluentFTP.FtpResult">
            <summary>
            Stores the result of a file transfer when UploadDirectory or DownloadDirectory is used.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.IsDownload">
            <summary>
            Returns true if the file was downloaded, false if it was uploaded.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.Type">
            <summary>
            Gets the type of file system object.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.Size">
            <summary>
            Gets the size of the file, or 0 if unknown.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.Name">
            <summary>
            Gets the name and extension of the file.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.RemotePath">
            <summary>
            Stores the absolute remote path of the current file being transferred.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.LocalPath">
            <summary>
            Stores the absolute local path of the current file being transferred.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.Exception">
            <summary>
            Gets the error that occurring during transferring this file, if any.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.IsSuccess">
            <summary>
            Returns true if the file was downloaded/uploaded, or the file was already existing with the same file size.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.IsSkipped">
            <summary>
            Was the file skipped?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.IsSkippedByRule">
            <summary>
            Was the file skipped due to failing the rule condition?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpResult.IsFailed">
            <summary>
            Was there an error during transfer? You can read the Exception property for more details.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpResult.ToListItem(System.Boolean)">
            <summary>
            Convert this result to a FTP list item.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpResult.ToString">
            <summary>
            Human readable results
            </summary>
        </member>
        <member name="T:FluentFTP.FtpSizeReply">
            <summary>
            Reply from a SIZE command
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSizeReply.FileSize">
            <summary>
            The returned file size
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSizeReply.Reply">
            <summary>
            The reply we got
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientBlueCoatProxy">
            <summary> 
            A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
            
            The 'blue coat variant' forces the client to wait for a 220 FTP response code in 
            the handshake phase.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientBlueCoatProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a user@host proxy identification. </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientBlueCoatProxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientBlueCoatProxy.HandshakeAsync(System.Threading.CancellationToken)">
            <summary> Redefine the first dialog: auth with proxy information </summary>
        </member>
        <member name="T:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientHttp11Proxy">
            <summary> A FTP client with a HTTP 1.1 proxy implementation. </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientHttp11Proxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a HTTP 1.1 proxy implementation </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientHttp11Proxy.HandshakeAsync(System.Threading.CancellationToken)">
            <summary> Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientHttp11Proxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientHttp11Proxy.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)">
            <summary>
            Connects to the server using an existing <see cref="T:FluentFTP.FtpSocketStream"/>
            </summary>
            <param name="stream">The existing socket stream</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientHttp11Proxy.ConnectAsync(FluentFTP.FtpSocketStream,System.String,System.Int32,FluentFTP.FtpIpVersion,System.Threading.CancellationToken)">
            <summary>
            Connects to the server using an existing <see cref="T:FluentFTP.FtpSocketStream"/>
            </summary>
            <param name="stream">The existing socket stream</param>
            <param name="host">Host name</param>
            <param name="port">Port number</param>
            <param name="ipVersions">IP version to use</param>
            <param name="token">IP version to use</param>
        </member>
        <member name="T:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientProxy">
            <summary>
            Abstraction of an FtpClient with a proxy
            </summary>
        </member>
        <member name="P:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientProxy.Proxy">
            <summary> The proxy connection info. </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a HTTP 1.1 proxy implementation </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientProxy.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)">
            <summary> Redefine connect for FtpClient : authentication on the Proxy  </summary>
            <param name="stream">The socket stream.</param>
            <param name="token">Cancellation token.</param>
        </member>
        <member name="T:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4aProxy">
            <summary>
            A FTP client with a SOCKS4a proxy implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4aProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary>
            Setup a SOCKS4a proxy
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4aProxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4aProxy.HandshakeAsync(System.Threading.CancellationToken)">
            <summary>
            Called during <see cref="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4aProxy.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)"/>. Typically extended by FTP proxies.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4aProxy.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)">
            <summary>
            Connect
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4Proxy">
            <summary>
            A FTP client with a SOCKS4 proxy implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4Proxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary>
            Setup a SOCKS4 proxy
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4Proxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4Proxy.HandshakeAsync(System.Threading.CancellationToken)">
            <summary>
            Called during <see cref="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4Proxy.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)"/>. Typically extended by FTP proxies.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks4Proxy.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)">
            <summary>
            Connect
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks5Proxy">
            <summary>
            A FTP client with a SOCKS5 proxy implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks5Proxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary>
            Setup a SOCKS5 proxy
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks5Proxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientSocks5Proxy.ConnectAsync(FluentFTP.FtpSocketStream,System.Threading.CancellationToken)">
            <summary>
            Connect
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientUserAtHostProxy">
            <summary> A FTP client with a user@host proxy identification. </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientUserAtHostProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a user@host proxy identification. </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientUserAtHostProxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.AsyncProxy.AsyncFtpClientUserAtHostProxy.HandshakeAsync(System.Threading.CancellationToken)">
            <summary> Redefine the first dialog: auth with proxy information </summary>
        </member>
        <member name="T:FluentFTP.Proxy.Socks.Socks4aProxy">
            <summary>
                This class is not reusable.
                You have to create a new instance for each connection / attempt.
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.Socks.Socks4Proxy">
            <summary>
                This class is not reusable.
                You have to create a new instance for each connection / attempt.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.Socks.Socks4Proxy.GetIPAddressBytes(System.String)">
            <summary>
            Translate the host name or IP address to a byte array.
            </summary>
            <param name="destinationHost">Host name or IP address.</param>
            <returns>Byte array representing IP address in bytes.</returns>
        </member>
        <member name="M:FluentFTP.Proxy.Socks.Socks4Proxy.GetDestinationPortBytes(System.Int32)">
            <summary>
            Translate the destination port value to a byte array.
            </summary>
            <param name="value">Destination port.</param>
            <returns>Byte array representing an 16 bit port number as two bytes.</returns>
        </member>
        <member name="T:FluentFTP.Proxy.Socks.SocksProxy">
            <summary>
                This class is not reusable.
                You have to create a new instance for each connection / attempt.
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.SyncProxy.FtpClientBlueCoatProxy">
            <summary> 
            A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
            
            The 'blue coat variant' forces the client to wait for a 220 FTP response code in 
            the handshake phase.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientBlueCoatProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a user@host proxy identification. </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientBlueCoatProxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientBlueCoatProxy.Handshake">
            <summary> Redefine the first dialog: auth with proxy information </summary>
        </member>
        <member name="T:FluentFTP.Proxy.SyncProxy.FtpClientHttp11Proxy">
            <summary> A FTP client with a HTTP 1.1 proxy implementation. </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientHttp11Proxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a HTTP 1.1 proxy implementation </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientHttp11Proxy.Handshake">
            <summary> Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientHttp11Proxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientHttp11Proxy.Connect(FluentFTP.FtpSocketStream)">
            <summary>
            Connects to the server using an existing <see cref="T:FluentFTP.FtpSocketStream"/>
            </summary>
            <param name="stream">The existing socket stream</param>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientHttp11Proxy.Connect(FluentFTP.FtpSocketStream,System.String,System.Int32,FluentFTP.FtpIpVersion)">
            <summary>
            Connects to the server using an existing <see cref="T:FluentFTP.FtpSocketStream"/>
            </summary>
            <param name="stream">The existing socket stream</param>
            <param name="host">Host name</param>
            <param name="port">Port number</param>
            <param name="ipVersions">IP version to use</param>
        </member>
        <member name="T:FluentFTP.Proxy.SyncProxy.FtpClientProxy">
            <summary>
            Abstraction of an FtpClient with a proxy
            </summary>
        </member>
        <member name="P:FluentFTP.Proxy.SyncProxy.FtpClientProxy.Proxy">
            <summary> The proxy connection info. </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a HTTP 1.1 proxy implementation </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientProxy.Connect(FluentFTP.FtpSocketStream)">
            <summary> Redefine connect for FtpClient : authentication on the Proxy  </summary>
            <param name="stream">The socket stream.</param>
        </member>
        <member name="T:FluentFTP.Proxy.SyncProxy.FtpClientSocks4aProxy">
            <summary>
            A FTP client with a SOCKS4a proxy implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4aProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary>
            Setup a SOCKS4a proxy
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4aProxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4aProxy.Handshake">
            <summary>
            Called during Connect(). Typically extended by FTP proxies.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4aProxy.Connect(FluentFTP.FtpSocketStream)">
            <summary>
            Connect
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4aProxy.Connect(FluentFTP.FtpSocketStream,System.String,System.Int32,FluentFTP.FtpIpVersion)">
            <summary>
            Connect
            </summary>
            <param name="stream"></param>
            <param name="host"></param>
            <param name="port"></param>
            <param name="ipVersions"></param>
        </member>
        <member name="T:FluentFTP.Proxy.SyncProxy.FtpClientSocks4Proxy">
            <summary>
            A FTP client with a SOCKS4 proxy implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4Proxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary>
            Setup a SOCKS4 proxy
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4Proxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4Proxy.Handshake">
            <summary>
            Called during Connect(). Typically extended by FTP proxies.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4Proxy.Connect(FluentFTP.FtpSocketStream)">
            <summary>
            Connect
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks4Proxy.Connect(FluentFTP.FtpSocketStream,System.String,System.Int32,FluentFTP.FtpIpVersion)">
            <summary>
            Connect
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.SyncProxy.FtpClientSocks5Proxy">
            <summary>
            A FTP client with a SOCKS5 proxy implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks5Proxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary>
            Setup a SOCKS5 proxy
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks5Proxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks5Proxy.Connect(FluentFTP.FtpSocketStream)">
            <summary>
            Connect
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientSocks5Proxy.Connect(FluentFTP.FtpSocketStream,System.String,System.Int32,FluentFTP.FtpIpVersion)">
            <summary>
            Connect
            </summary>
        </member>
        <member name="T:FluentFTP.Proxy.SyncProxy.FtpClientUserAtHostProxy">
            <summary> A FTP client with a user@host proxy identification. </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientUserAtHostProxy.#ctor(FluentFTP.FtpProxyProfile)">
            <summary> A FTP client with a user@host proxy identification. </summary>
            <param name="proxy">Proxy information</param>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientUserAtHostProxy.Create">
            <summary>
            Creates a new instance of this class. Useful in FTP proxy classes.
            </summary>
        </member>
        <member name="M:FluentFTP.Proxy.SyncProxy.FtpClientUserAtHostProxy.Handshake">
            <summary> Redefine the first dialog: auth with proxy information </summary>
        </member>
        <member name="T:FluentFTP.Rules.FtpFileExtensionRule">
            <summary>
            Only accept files that have the given extension, or exclude files of a given extension.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFileExtensionRule.Whitelist">
            <summary>
            If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFileExtensionRule.Exts">
            <summary>
            The extensions to match
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpFileExtensionRule.#ctor(System.Boolean,System.Collections.Generic.IList{System.String})">
            <summary>
            Only accept files that have the given extension, or exclude files of a given extension.
            </summary>
            <param name="whitelist">If true, only files of the given extension are uploaded or downloaded. If false, files of the given extension are excluded.</param>
            <param name="exts">The extensions to match</param>
        </member>
        <member name="M:FluentFTP.Rules.FtpFileExtensionRule.IsAllowed(FluentFTP.FtpListItem)">
            <summary>
            Checks if the files has the given extension, or exclude files of the given extension.
            </summary>
        </member>
        <member name="T:FluentFTP.Rules.FtpFileNameRegexRule">
            <summary>
            Only accept files whose names match the given regular expression(s), or exclude files that match.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFileNameRegexRule.Whitelist">
            <summary>
            If true, only items where one of the supplied regex pattern matches are uploaded or downloaded.
            If false, items where one of the supplied regex pattern matches are excluded.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFileNameRegexRule.RegexPatterns">
            <summary>
            The files names to match
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpFileNameRegexRule.#ctor(System.Boolean,System.Collections.Generic.IList{System.String})">
            <summary>
            Only accept items that match one of the supplied regex patterns.
            </summary>
            <param name="whitelist">If true, only items where one of the supplied regex pattern matches are uploaded or downloaded. If false, items where one of the supplied regex pattern matches are excluded.</param>
            <param name="regexPatterns">The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects.</param>
        </member>
        <member name="M:FluentFTP.Rules.FtpFileNameRegexRule.IsAllowed(FluentFTP.FtpListItem)">
            <summary>
            Checks if the FtpListItem Name does match any RegexPattern
            </summary>
        </member>
        <member name="T:FluentFTP.Rules.FtpFileNameRule">
            <summary>
            Only accept files that have the given name, or exclude files of a given name.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFileNameRule.Whitelist">
            <summary>
            If true, only files of the given name are uploaded or downloaded. If false, files of the given name are excluded.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFileNameRule.Names">
            <summary>
            The files names to match
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpFileNameRule.#ctor(System.Boolean,System.Collections.Generic.IList{System.String})">
            <summary>
            Only accept files that have the given name, or exclude files of a given name.
            </summary>
            <param name="whitelist">If true, only files of the given name are downloaded. If false, files of the given name are excluded.</param>
            <param name="names">The files names to match</param>
        </member>
        <member name="M:FluentFTP.Rules.FtpFileNameRule.IsAllowed(FluentFTP.FtpListItem)">
            <summary>
            Checks if the files has the given name, or exclude files of the given name.
            </summary>
        </member>
        <member name="T:FluentFTP.Rules.FtpFolderRegexRule">
            <summary>
            Only accept folders whose names match the given regular expression(s), or exclude folders that match.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFolderRegexRule.Whitelist">
            <summary>
            If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded.
            If false, folders where one of the supplied regex pattern matches are excluded.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFolderRegexRule.RegexPatterns">
            <summary>
            The files names to match
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFolderRegexRule.StartSegment">
            <summary>
            Which path segment to start checking from
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpFolderRegexRule.#ctor(System.Boolean,System.Collections.Generic.IList{System.String},System.Int32)">
            <summary>
            Only accept items that one of the supplied regex pattern.
            </summary>
            <param name="whitelist">If true, only folders where one of the supplied regex pattern matches are uploaded or downloaded. If false, folders where one of the supplied regex pattern matches are excluded.</param>
            <param name="regexPatterns">The list of regex patterns to match. Only valid patterns are accepted and stored. If none of the patterns are valid, this rule is disabled and passes all objects.</param>
            <param name="startSegment">Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder.</param>
        </member>
        <member name="M:FluentFTP.Rules.FtpFolderRegexRule.IsAllowed(FluentFTP.FtpListItem)">
            <summary>
            Checks if the FtpListItem Name does match any RegexPattern
            </summary>
        </member>
        <member name="T:FluentFTP.Rules.FtpFolderNameRule">
            <summary>
            Only accept folders that have the given name, or exclude folders of a given name.
            </summary>
        </member>
        <member name="F:FluentFTP.Rules.FtpFolderNameRule.CommonBlacklistedFolders">
            <summary>
            Common folders to blacklist
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFolderNameRule.Whitelist">
            <summary>
            If true, only folders of the given name are uploaded or downloaded.
            If false, folders of the given name are excluded.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFolderNameRule.Names">
            <summary>
            The folder names to match
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpFolderNameRule.StartSegment">
            <summary>
            Which path segment to start checking from
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpFolderNameRule.#ctor(System.Boolean,System.Collections.Generic.IList{System.String},System.Int32)">
            <summary>
            Only accept folders that have the given name, or exclude folders of a given name.
            </summary>
            <param name="whitelist">If true, only folders of the given name are downloaded. If false, folders of the given name are excluded.</param>
            <param name="names">The folder names to match</param>
            <param name="startSegment">Which path segment to start checking from. 0 checks root folder onwards. 1 skips root folder.</param>
        </member>
        <member name="M:FluentFTP.Rules.FtpFolderNameRule.IsAllowed(FluentFTP.FtpListItem)">
            <summary>
            Checks if the folders has the given name, or exclude folders of the given name.
            </summary>
        </member>
        <member name="T:FluentFTP.Rules.FtpRule">
            <summary>
            Base class used for all FTP Rules. Extend this class to create custom rules.
            You only need to provide an implementation for IsAllowed, and add any custom arguments that you require.
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpRule.#ctor">
            <summary>
            Rule object
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpRule.IsAllowed(FluentFTP.FtpListItem)">
            <summary>
            Returns true if the object has passed this rules.
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpRule.IsAllAllowed(System.Collections.Generic.List{FluentFTP.Rules.FtpRule},FluentFTP.FtpListItem)">
            <summary>
            Returns true if the object has passed all the rules.
            </summary>
        </member>
        <member name="T:FluentFTP.Rules.FtpSizeRule">
            <summary>
            Only accept files that are of the given size, or within the given range of sizes.
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpSizeRule.Operator">
            <summary>
            Which operator to use
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpSizeRule.X">
            <summary>
            The first value, required for all operators
            </summary>
        </member>
        <member name="P:FluentFTP.Rules.FtpSizeRule.Y">
            <summary>
            The second value, only required for BetweenRange and OutsideRange operators
            </summary>
        </member>
        <member name="M:FluentFTP.Rules.FtpSizeRule.#ctor(FluentFTP.FtpOperator,System.Int64,System.Int64)">
            <summary>
            Only accept files that are of the given size, or within the given range of sizes.
            </summary>
            <param name="ruleOperator">Which operator to use</param>
            <param name="x">The first value, required for all operators</param>
            <param name="y">The second value, only required for BetweenRange and OutsideRange operators.</param>
        </member>
        <member name="M:FluentFTP.Rules.FtpSizeRule.IsAllowed(FluentFTP.FtpListItem)">
            <summary>
            Checks if the file is of the given size, or within the given range of sizes.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.FtpBaseServer">
            <summary>
            The base class used for all FTP server specific support.
            You may extend this class to implement support for custom FTP servers.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.DetectBySyst(System.String)">
            <summary>
            Return true if your server is detected by the given SYST response message.
            Its a fallback method if the server did not send an identifying welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.RecursiveList">
            <summary>
            Detect if your FTP server supports the recursive LIST command (LIST -R).
            If you know for sure that this is supported, return true here.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.DefaultCapabilities">
            <summary>
            Return your FTP server's default capabilities.
            Used if your server does not broadcast its capabilities using the FEAT command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetParser">
            <summary>
            Return the default file listing parser to be used with your FTP server.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.DeleteDirectory(FluentFTP.FtpClient,System.String,System.String,System.Boolean,FluentFTP.FtpListOption)">
            <summary>
            Perform server-specific delete directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.DeleteDirectoryAsync(FluentFTP.AsyncFtpClient,System.String,System.String,System.Boolean,FluentFTP.FtpListOption,System.Threading.CancellationToken)">
            <summary>
            Perform async server-specific delete directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.CreateDirectory(FluentFTP.FtpClient,System.String,System.String,System.Boolean)">
            <summary>
            Perform server-specific create directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.CreateDirectoryAsync(FluentFTP.AsyncFtpClient,System.String,System.String,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Perform async server-specific create directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.AfterConnected(FluentFTP.FtpClient)">
            <summary>
            Perform server-specific post-connection commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.AfterConnectedAsync(FluentFTP.AsyncFtpClient,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific post-connection commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsCustomFileSize">
            <summary>
            Return true if your server requires custom handling of file size.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetFileSize(FluentFTP.FtpClient,System.String)">
            <summary>
            Perform server-specific file size fetching commands here.
            Return the file size in bytes.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetFileSizeAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific file size fetching commands here.
            Return the file size in bytes.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsRoot(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Check if the given path is a root directory on your FTP server.
            If you are unsure, return false.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.SkipParserErrorReport">
            <summary>
            Skip reporting a parser error
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.AlwaysReadToEnd(System.String)">
            <summary>
            Always read to end of stream on a download
            If you are unsure, return false.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsAbsolutePath(System.String)">
            <summary>
            Return true if the path is an absolute path according to your server's convention.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsCustomGetAbsolutePath">
            <summary>
            Return true if your server requires custom handling of absolute paths.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetAbsolutePath(FluentFTP.FtpClient,System.String)">
            <summary>
            Perform server-specific path modification here.
            Return the absolute path.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetAbsolutePathAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific path modification here.
            Return the absolute path.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsCustomGetAbsoluteDir">
            <summary>
            Return true if your server requires custom handling of absolute dir.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetAbsoluteDir(FluentFTP.FtpClient,System.String)">
            <summary>
            Perform server-specific path modification here.
            Return the absolute dir.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetAbsoluteDirAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific path modification here.
            Return the absolute path.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsCustomGetAbsoluteFilePath">
            <summary>
            Return true if your server requires custom handling of path and filename concatenation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetAbsoluteFilePath(FluentFTP.FtpClient,System.String,System.String)">
            <summary>
            Perform server-specific path modification here.
            Return concatenation of path and filename
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.GetAbsoluteFilePathAsync(FluentFTP.AsyncFtpClient,System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific path modification here.
            Return concatenation of path and filename
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsCustomCalculateFullFtpPath">
            <summary>
            Return true if your server requires custom handling to handle listing analysis.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.CalculateFullFtpPath(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,FluentFTP.FtpListItem)">
            <summary>
            Get the full path of a given FTP Listing entry
            Return null indicates custom code decided not to handle this
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.DontUseSizeEvenIfCapable(System.String)">
            <summary>
            Disable SIZE command even if server says it is supported
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.DontUseMdtmEvenIfCapable(System.String)">
            <summary>
            Disable MDTM command even if server says it is supported
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.IsCustomFileExists">
            <summary>
            Return true if your server requires custom handling to check file existence.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.FileExists(FluentFTP.FtpClient,System.String)">
            <summary>
            Check for existence of a file
            Return null indicates custom code decided not to handle this
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.FtpBaseServer.FileExistsAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Check for existence of a file
            Return null indicates custom code decided not to handle this
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.ApacheFtpServer">
            <summary>
            Server-specific handling for Apache (MINA) FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ApacheFtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ApacheFtpServer.DetectBySyst(System.String)">
            <summary>
            Return true if your server is detected by the given SYST response message.
            Its a fallback method if the server did not send an identifying welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.BFtpdServer">
            <summary>
            Server-specific handling for BFTPd FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.BFtpdServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.BFtpdServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.CerberusServer">
            <summary>
            Server-specific handling for Cerberus FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.CerberusServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.CerberusServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.CrushFtpServer">
            <summary>
            Server-specific handling for CrushFTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.CrushFtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.CrushFtpServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.DLinkServer">
            <summary>
            Server-specific handling for D-Link FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.DLinkServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.DLinkServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.FileZillaServer">
            <summary>
            Server-specific handling for FileZilla FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.FileZillaServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.FileZillaServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.FileZillaServer.RecursiveList">
            <summary>
            Detect if your FTP server supports the recursive LIST command (LIST -R).
            If you know for sure that this is supported, return true here.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.FritzBoxServer">
            <summary>
            Server-specific handling for FritzBox FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.FritzBoxServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.FritzBoxServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.Ftp2S3GatewayServer">
            <summary>
            Server-specific handling for FTP2S3Gateway FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.Ftp2S3GatewayServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.Ftp2S3GatewayServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.GlFtpdServer">
            <summary>
            Server-specific handling for glFTPd FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.GlFtpdServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.GlFtpdServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.GlobalScapeEftServer">
            <summary>
            Server-specific handling for GlobalScapeEFT FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.GlobalScapeEftServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.GlobalScapeEftServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.HomegateFtpServer">
            <summary>
            Server-specific handling for HomegateFTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.HomegateFtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.HomegateFtpServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.HuaweiServer">
            <summary>
            Server-specific handling for Huawei FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.HuaweiServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.HuaweiServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.IBMOS400FtpServer">
            <summary>
            Server-specific handling for IBMOS400FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMOS400FtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMOS400FtpServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMOS400FtpServer.GetParser">
            <summary>
            Return the default file listing parser to be used with your FTP server.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.IBMzOSFtpServer">
            <summary>
            Server-specific handling for IBMzOSFTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetParser">
            <summary>
            Return the default file listing parser to be used with your FTP server.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.AfterConnected(FluentFTP.FtpClient)">
            <summary>
            Perform server-specific post-connection commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.AfterConnectedAsync(FluentFTP.AsyncFtpClient,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific post-connection commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetFileSize(FluentFTP.FtpClient,System.String)">
            <summary>
            Get z/OS file size
            </summary>
            <param name="client">The client object this is being done for</param>
            <param name="path">The full path of the file whose size you want to retrieve</param>
            <remarks>
            Make sure you are in the right realm (z/OS or HFS) before doing this
            </remarks>
            <returns>The size of the file</returns>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetFileSizeAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Get z/OS file size
            </summary>
            <param name="client">The client object this is being done for</param>
            <param name="path">The full path of the file whose size you want to retrieve</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <remarks>
            Make sure you are in the right realm (z/OS or HFS) before doing this
            </remarks>
            <returns>The size of the file</returns>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.IsRoot(FluentFTP.Client.BaseClient.BaseFtpClient,System.String)">
            <summary>
            Check if the given path is a root directory on your FTP server.
            If you are unsure, return false.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.SkipParserErrorReport">
            <summary>
            Skip reporting a parser error
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.AlwaysReadToEnd(System.String)">
            <summary>
            Always read to End of stream on a download
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.IsCustomGetAbsolutePath">
            <summary>
            Return true if your server requires custom handling of absolute path.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetAbsolutePath(FluentFTP.FtpClient,System.String)">
            <summary>
            Perform server-specific path modification here.
            Return the absolute path.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetAbsolutePathAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific path modification here.
            Return the absolute path.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.IsCustomGetAbsoluteDir">
            <summary>
            Return true if your server requires custom handling of absolute dir.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetAbsoluteDir(FluentFTP.FtpClient,System.String)">
            <summary>
            Perform server-specific path modification here.
            Return null indicates custom code decided not to handle this
            Return the absolute dir.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetAbsoluteDirAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific path modification here.
            Return null indicates custom code decided not to handle this
            Return the absolute dir.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.IsCustomGetAbsoluteFilePath">
            <summary>
            Return true if your server requires custom handling of path and filename concatenation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetAbsoluteFilePath(FluentFTP.FtpClient,System.String,System.String)">
            <summary>
            Perform server-specific path modification here.
            Return null indicates custom code decided not to handle this
            Return concatenation of path and filename
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.GetAbsoluteFilePathAsync(FluentFTP.AsyncFtpClient,System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Perform server-specific path modification here.
            Return null indicates custom code decided not to handle this
            Return concatenation of path and filename
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.IsCustomCalculateFullFtpPath">
            <summary>
            Return true if your server requires custom handling to handle listing analysis.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.CalculateFullFtpPath(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,FluentFTP.FtpListItem)">
            <summary>
            Get the full path of a given FTP Listing entry
            Return null indicates custom code decided not to handle this
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.DontUseSizeEvenIfCapable(System.String)">
            <summary>
            Disable SIZE command even if server says it is supported
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.DontUseMdtmEvenIfCapable(System.String)">
            <summary>
            Disable MDTM command even if server says it is supported
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.IsCustomFileExists">
            <summary>
            Return true if your server requires custom handling to check file existence.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.FileExists(FluentFTP.FtpClient,System.String)">
            <summary>
            Check for existence of a file
            Return null indicates custom code decided not to handle this
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IBMzOSFtpServer.FileExistsAsync(FluentFTP.AsyncFtpClient,System.String,System.Threading.CancellationToken)">
            <summary>
            Check for existence of a file
            Return null indicates custom code decided not to handle this
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.IDALFtpServer">
            <summary>
            Server-specific handling for ABB IDAL FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IDALFtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.IDALFtpServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.MicroTikServer">
            <summary>
            Server-specific handling for MikroTik RouterOS FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.MicroTikServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.MicroTikServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.NonStopTandemServer">
            <summary>
            Server-specific handling for NonStop/Tandem FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.NonStopTandemServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.NonStopTandemServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.NonStopTandemServer.GetParser">
            <summary>
            Return the default file listing parser to be used with your FTP server.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.OpenVmsServer">
            <summary>
            Server-specific handling for OpenVMS FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.OpenVmsServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.OpenVmsServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.OpenVmsServer.DetectBySyst(System.String)">
            <summary>
            Return true if your server is detected by the given SYST response message.
            Its a fallback method if the server did not send an identifying welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.OpenVmsServer.DefaultCapabilities">
            <summary>
            Return your FTP server's default capabilities.
            Used if your server does not broadcast its capabilities using the FEAT command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.OpenVmsServer.IsAbsolutePath(System.String)">
            <summary>
            Return true if the path is an absolute path according to your server's convention.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.OpenVmsServer.GetParser">
            <summary>
            Return the default file listing parser to be used with your FTP server.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.OpenVmsServer.CalculateFullFtpPath(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,FluentFTP.FtpListItem)">
            <summary>
            Get the full path of a given FTP Listing entry
            Return null indicates custom code decided not to handle this
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.ProFtpdServer">
            <summary>
            Server-specific handling for ProFTPD FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ProFtpdServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ProFtpdServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ProFtpdServer.RecursiveList">
            <summary>
            Detect if your FTP server supports the recursive LIST command (LIST -R).
            If you know for sure that this is supported, return true here.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ProFtpdServer.DeleteDirectory(FluentFTP.FtpClient,System.String,System.String,System.Boolean,FluentFTP.FtpListOption)">
            <summary>
            Perform server-specific delete directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ProFtpdServer.DeleteDirectoryAsync(FluentFTP.AsyncFtpClient,System.String,System.String,System.Boolean,FluentFTP.FtpListOption,System.Threading.CancellationToken)">
            <summary>
            Perform async server-specific delete directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ProFtpdServer.CreateDirectory(FluentFTP.FtpClient,System.String,System.String,System.Boolean)">
            <summary>
            Perform server-specific create directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ProFtpdServer.CreateDirectoryAsync(FluentFTP.AsyncFtpClient,System.String,System.String,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Perform async server-specific create directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.PureFtpdServer">
            <summary>
            Server-specific handling for PureFTPd FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.PureFtpdServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.PureFtpdServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.PureFtpdServer.RecursiveList">
            <summary>
            Detect if your FTP server supports the recursive LIST command (LIST -R).
            If you know for sure that this is supported, return true here.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.PyFtpdLibServer">
            <summary>
            Server-specific handling for PyFtpdLib FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.PyFtpdLibServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.PyFtpdLibServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.RumpusServer">
            <summary>
            Server-specific handling for Rumpus FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.RumpusServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.RumpusServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.ServUServer">
            <summary>
            Server-specific handling for ServU FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ServUServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ServUServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ServUServer.DeleteDirectory(FluentFTP.FtpClient,System.String,System.String,System.Boolean,FluentFTP.FtpListOption)">
            <summary>
            Perform server-specific delete directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.ServUServer.DeleteDirectoryAsync(FluentFTP.AsyncFtpClient,System.String,System.String,System.Boolean,FluentFTP.FtpListOption,System.Threading.CancellationToken)">
            <summary>
            Perform async server-specific delete directory commands here.
            Return true if you executed a server-specific command.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.SolarisFtpServer">
            <summary>
            Server-specific handling for SolarisFTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.SolarisFtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.SolarisFtpServer.DetectBySyst(System.String)">
            <summary>
            Return true if your server is detected by the given SYST response message.
            Its a fallback method if the server did not send an identifying welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.TitanFtpServer">
            <summary>
            Server-specific handling for Titan FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.TitanFtpServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.TitanFtpServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.TPLinkServer">
            <summary>
            Server-specific handling for TP-LINK FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.TPLinkServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.TPLinkServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.VsFtpdServer">
            <summary>
            Server-specific handling for VsFTPd FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.VsFtpdServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.VsFtpdServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.VsFtpdServer.RecursiveList">
            <summary>
            Detect if your FTP server supports the recursive LIST command (LIST -R).
            If you know for sure that this is supported, return true here.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.WindowsCEServer">
            <summary>
            Server-specific handling for WindowsCE FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WindowsCEServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WindowsCEServer.DetectBySyst(System.String)">
            <summary>
            Return true if your server is detected by the given SYST response message.
            Its a fallback method if the server did not send an identifying welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WindowsCEServer.GetParser">
            <summary>
            Return the default file listing parser to be used with your FTP server.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.WindowsIISServer">
            <summary>
            Server-specific handling for WindowsServer/IIS FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WindowsIISServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WindowsIISServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WindowsIISServer.GetParser">
            <summary>
            Return the default file listing parser to be used with your FTP server.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.WSFTPServer">
            <summary>
            Server-specific handling for WS_FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WSFTPServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WSFTPServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.WuFtpdServer">
            <summary>
            Server-specific handling for WuFTPd FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WuFtpdServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WuFtpdServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WuFtpdServer.RecursiveList">
            <summary>
            Detect if your FTP server supports the recursive LIST command (LIST -R).
            If you know for sure that this is supported, return true here.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.WuFtpdServer.DefaultCapabilities">
            <summary>
            Return your FTP server's default capabilities.
            Used if your server does not broadcast its capabilities using the FEAT command.
            </summary>
        </member>
        <member name="T:FluentFTP.Servers.Handlers.XLightServer">
            <summary>
            Server-specific handling for XLight FTP servers
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.XLightServer.ToEnum">
            <summary>
            Return the FtpServer enum value corresponding to your server, or Unknown if its a custom implementation.
            </summary>
        </member>
        <member name="M:FluentFTP.Servers.Handlers.XLightServer.DetectByWelcome(System.String)">
            <summary>
            Return true if your server is detected by the given FTP server welcome message.
            </summary>
        </member>
        <member name="T:FluentFTP.FtpDataStream">
            <summary>
            Base class for data stream connections
            </summary>
        </member>
        <member name="P:FluentFTP.FtpDataStream.CommandStatus">
            <summary>
            Gets the status of the command that was used to open
            this data channel
            </summary>
        </member>
        <member name="P:FluentFTP.FtpDataStream.ControlConnection">
            <summary>
            Gets or sets the control connection for this data stream. Setting
            the control connection causes the object to be cloned and a new
            connection is made to the server to carry out the task. This ensures
            that multiple streams can be opened simultaneously.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpDataStream.Length">
            <summary>
            Gets or sets the length of the stream. Only valid for file transfers
            and only valid on servers that support the Size command.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpDataStream.Position">
            <summary>
            Gets or sets the position of the stream
            </summary>
        </member>
        <member name="M:FluentFTP.FtpDataStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads data off the stream
            </summary>
            <param name="buffer">The buffer to read into</param>
            <param name="offset">Where to start in the buffer</param>
            <param name="count">Number of bytes to read</param>
            <returns>The number of bytes read</returns>
        </member>
        <member name="M:FluentFTP.FtpDataStream.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Reads data off the stream asynchronously
            </summary>
            <param name="buffer">The buffer to read into</param>
            <param name="offset">Where to start in the buffer</param>
            <param name="count">Number of bytes to read</param>
            <param name="token">The cancellation token for this task</param>
            <returns>The number of bytes read</returns>
        </member>
        <member name="M:FluentFTP.FtpDataStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes data to the stream
            </summary>
            <param name="buffer">The buffer to write to the stream</param>
            <param name="offset">Where to start in the buffer</param>
            <param name="count">The number of bytes to write to the buffer</param>
        </member>
        <member name="M:FluentFTP.FtpDataStream.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Writes data to the stream asynchronously
            </summary>
            <param name="buffer">The buffer to write to the stream</param>
            <param name="offset">Where to start in the buffer</param>
            <param name="count">The number of bytes to write to the buffer</param>
            <param name="token">The <see cref="T:System.Threading.CancellationToken"/> for this task</param>
        </member>
        <member name="M:FluentFTP.FtpDataStream.SetLength(System.Int64)">
            <summary>
            Sets the length of this stream
            </summary>
            <param name="value">Value to apply to the Length property</param>
        </member>
        <member name="M:FluentFTP.FtpDataStream.SetPosition(System.Int64)">
            <summary>
            Sets the position of the stream. Intended to be used
            internally by FtpControlConnection.
            </summary>
            <param name="pos">The position</param>
        </member>
        <member name="M:FluentFTP.FtpDataStream.Close">
            <summary>
            Closes the connection and reads the server's reply
            </summary>
        </member>
        <member name="M:FluentFTP.FtpDataStream.#ctor(FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            Creates a new data stream object
            </summary>
            <param name="conn">The control connection to be used for carrying out this operation</param>
        </member>
        <member name="M:FluentFTP.FtpDataStream.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="T:FluentFTP.Streams.FtpFileStream">
            <summary>
            Stream object for the local files
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpFileStream.GetFileSize(System.String,System.Boolean)">
            <summary>
            Returns the file size using synchronous file I/O.
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpFileStream.GetFileSizeAsync(System.String,System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Returns the file size using async file I/O.
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpFileStream.GetFileDateModifiedUtc(System.String)">
            <summary>
            Returns the file size using synchronous file I/O.
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpFileStream.GetFileDateModifiedUtcAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Returns the file size using synchronous file I/O.
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpFileStream.GetFileReadStream(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,System.Boolean,System.Int64,System.Int64)">
            <summary>
            Returns a new stream to upload a file from disk.
            If the file fits within the fileSizeLimit, then it is read in a single disk call and stored in memory, and a MemoryStream is returned.
            If it is larger than that, then a regular read-only FileStream is returned.
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpFileStream.GetFileWriteStream(FluentFTP.Client.BaseClient.BaseFtpClient,System.String,System.Boolean,System.Int64,System.Int64,System.Boolean,System.Int64)">
            <summary>
            Returns a new stream to download a file to disk.
            If the file fits within the fileSizeLimit, then a new MemoryStream is returned.
            If it is larger than that, then a regular writable FileStream is returned.
            </summary>
        </member>
        <member name="T:FluentFTP.Streams.FtpSslStream">
             <summary>
             FtpSslStream is an SslStream that properly sends a close_notify message when closing
             the connection. This is required per RFC 5246 to avoid truncation attacks.
             For more information, see https://tools.ietf.org/html/rfc5246#section-7.2.1
            
             Inspired by: https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756
            
             See: https://learn.microsoft.com/en-us/windows/win32/secauthn/shutting-down-an-schannel-connection
             See: https://learn.microsoft.com/en-us/windows/win32/secauthn/using-sspi-with-a-windows-sockets-client?source=recommendations
            
             Note:
             Microsoft says we should not override close():
             "Place all cleanup logic for your stream object in Dispose(Boolean). Do not override Close()."
             See: https://learn.microsoft.com/en-us/dotnet/api/system.io.stream.dispose?view=net-7.0
             But: We recently changed the below logic due to issue #1107, which solved the problem in part
             
             </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpSslStream.#ctor(System.IO.Stream,System.Boolean,System.Net.Security.RemoteCertificateValidationCallback)">
            <summary>
            Create an SslStream object
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpSslStream.Close">
            <summary>
            Close
            </summary>
        </member>
        <member name="M:FluentFTP.Streams.FtpSslStream.ToString">
            <summary>
            For representing this SslStream in the log
            </summary>
        </member>
        <member name="T:FluentFTP.FtpSocketStream">
            <summary>
            Stream class used for talking. Used by FtpClient, extended by FtpDataStream
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.NetworkStream">
            <summary>
            The non-encrypted stream
            </summary>
        </member>
        <member name="F:FluentFTP.FtpSocketStream.Client">
            <summary>
            The client this stream is associated with
            </summary>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.#ctor(FluentFTP.Client.BaseClient.BaseFtpClient)">
            <summary>
            This stream connection to be associated with this client
            </summary>
        </member>
        <member name="F:FluentFTP.FtpSocketStream.m_lastActivity">
            <summary>
            Used for tracking read/write activity on the socket
            to determine if Poll() should be used to test for
            socket connectivity. The socket in this class will
            not know it has been disconnected if the remote host
            closes the connection first. Using Poll() avoids
            the exception that would be thrown when trying to
            read or write to the disconnected socket.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.Socket">
            <summary>
            The socket used for talking
            </summary>
        </member>
        <member name="F:FluentFTP.FtpSocketStream.SslSessionLength">
            <summary>
            Keep a count of command/response transactions on the
            control connection
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.SocketPollInterval">
            <summary>
            Gets or sets the length of time in milliseconds
            that must pass since the last socket activity
            before calling Poll() on the socket to test for
            connectivity. Setting this interval too low will
            have a negative impact on performance. Setting this
            interval to 0 disables Poll()'ing all together.
            The default value is 15 seconds.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.SocketDataAvailable">
            <summary>
            Gets the number of available bytes on the socket, 0 if the
            socket has not been initialized. This property is used internally
            by FtpClient in an effort to detect disconnections and gracefully
            reconnect the control connection.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.IsConnected">
            <summary>
            Gets a value indicating if this socket stream is connected
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.IsEncrypted">
            <summary>
            Gets a value indicating if encryption is being used
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.IsControlConnection">
            <summary>
            Is this stream the control connection?
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.SslProtocolActive">
            <summary>
            The negotiated SSL/TLS protocol version. Will have a valid value after connection is complete.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.BaseStream">
            <summary>
            Gets the underlying stream, could be a NetworkStream, SslStream or CustomStream
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.CanRead">
            <summary>
            Gets a value indicating if this stream can be read
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.CanSeek">
            <summary>
            Gets a value indicating if this stream if seekable
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.CanWrite">
            <summary>
            Gets a value indicating if this stream can be written to
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.Length">
            <summary>
            Gets the length of the stream
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.Position">
            <summary>
            Gets the current position of the stream. Trying to
            set this property throws an InvalidOperationException()
            </summary>
        </member>
        <member name="E:FluentFTP.FtpSocketStream.ValidateCertificate">
            <summary>
            Event is fired when a SSL certificate needs to be validated
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.ReadTimeout">
            <summary>
            Gets or sets the amount of time to wait for a read operation to complete. Default
            value is Timeout.Infinite.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.ConnectTimeout">
            <summary>
            Gets or sets the length of time milliseconds to wait
            for a connection succeed before giving up. The default
            is 0 = disable, use system default timeout.
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.LocalEndPoint">
            <summary>
            Gets the local end point of the socket
            </summary>
        </member>
        <member name="P:FluentFTP.FtpSocketStream.RemoteEndPoint">
            <summary>
            Gets the remote end point of the socket
            </summary>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.OnValidateCertificate(System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
            <summary>
            Fires the SSL certificate validation event
            </summary>
            <param name="certificate">Certificate being validated</param>
            <param name="chain">Certificate chain</param>
            <param name="errors">Policy errors if any</param>
            <returns>True if it was accepted, false otherwise</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.OnValidateCertificate(System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.String)">
            <summary>
            Fires the SSL certificate validation event for custom encrypted streams
            </summary>
            <param name="certificate">Certificate being validated</param>
            <param name="chain">Certificate chain</param>
            <param name="errorMessage">Policy errors if any</param>
            <returns>True if it was accepted, false otherwise</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Throws an InvalidOperationException
            </summary>
            <param name="offset">Ignored</param>
            <param name="origin">Ignored</param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.SetLength(System.Int64)">
            <summary>
            Throws an InvalidOperationException
            </summary>
            <param name="value">Ignored</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Flush">
            <summary>
            Flushes the stream
            </summary>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.FlushAsync(System.Threading.CancellationToken)">
            <summary>
            Flushes the stream asynchronously
            </summary>
            <param name="token">The <see cref="T:System.Threading.CancellationToken"/> for this task</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.RawSocketRead(System.Byte[])">
            <summary>
            Bypass the stream and read directly off the socket.
            </summary>
            <param name="buffer">The buffer to read into</param>
            <returns>The number of bytes read</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.RawSocketReadAsync(System.Byte[],System.Threading.CancellationToken)">
            <summary>
            Bypass the stream and read directly off the socket.
            </summary>
            <param name="buffer">The buffer to read into</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>The number of bytes read</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads data from the stream
            </summary>
            <param name="buffer">Buffer to read into</param>
            <param name="offset">Where in the buffer to start</param>
            <param name="count">Number of bytes to be read</param>
            <returns>The amount of bytes read from the stream</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Reads data from the stream
            </summary>
            <param name="buffer">Buffer to read into</param>
            <param name="offset">Where in the buffer to start</param>
            <param name="count">Number of bytes to be read</param>
            <param name="token">The <see cref="T:System.Threading.CancellationToken"/> for this task</param>
            <returns>The amount of bytes read from the stream</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ReadLine(System.Text.Encoding)">
            <summary>
            Reads a line from the socket
            </summary>
            <param name="encoding">The type of encoding used to convert from byte[] to string</param>
            <returns>A line from the stream, null if there is nothing to read</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ReadAllLines(System.Text.Encoding,System.Int32)">
            <summary>
            Reads all line from the socket
            </summary>
            <param name="encoding">The type of encoding used to convert from byte[] to string</param>
            <param name="bufferSize">The size of the buffer</param>
            <returns>A list of lines from the stream</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ReadLineAsync(System.Text.Encoding,System.Threading.CancellationToken)">
            <summary>
            Reads a line from the socket asynchronously
            </summary>
            <param name="encoding">The type of encoding used to convert from byte[] to string</param>
            <param name="token">The <see cref="T:System.Threading.CancellationToken"/> for this task</param>
            <returns>A line from the stream, null if there is nothing to read</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ReadAllLinesAsync(System.Text.Encoding,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Reads all line from the socket
            </summary>
            <param name="encoding">The type of encoding used to convert from byte[] to string</param>
            <param name="bufferSize">The size of the buffer</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <returns>A list of lines from the stream</returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes data to the stream
            </summary>
            <param name="buffer">Buffer to write to stream</param>
            <param name="offset">Where in the buffer to start</param>
            <param name="count">Number of bytes to be written</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Writes data to the stream asynchronously
            </summary>
            <param name="buffer">Buffer to write to stream</param>
            <param name="offset">Where in the buffer to start</param>
            <param name="count">Number of bytes to be written</param>
            <param name="token">The <see cref="T:System.Threading.CancellationToken"/> for this task</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.WriteLine(System.Text.Encoding,System.String)">
            <summary>
            Writes a line to the stream using the specified encoding
            </summary>
            <param name="encoding">Encoding used for writing the line</param>
            <param name="buf">The data to write</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.WriteLineAsync(System.Text.Encoding,System.String,System.Threading.CancellationToken)">
            <summary>
            Writes a line to the stream using the specified encoding asynchronously
            </summary>
            <param name="encoding">Encoding used for writing the line</param>
            <param name="buf">The data to write</param>
            <param name="token">The <see cref="T:System.Threading.CancellationToken"/> for this task</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Dispose(System.Boolean)">
            <summary>
            Disconnects from server
            </summary>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.DisposeSocket">
            <summary>
            Safely close the socket if its open
            </summary>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Boolean)">
            <summary>
            Sets socket options on the underlying socket
            </summary>
            <param name="level">SocketOptionLevel</param>
            <param name="name">SocketOptionName</param>
            <param name="value">SocketOptionValue</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.IsIpVersionAllowed(System.Net.IPAddress,FluentFTP.FtpIpVersion,System.String@)">
            <summary>
            Check if the specified IP Address is allowed
            </summary>
            <param name="ipad">The ip address to connect to</param>
            <param name="ipVersions">The enum value of allowed IP Versions</param>
            <param name="ipVersionString">Textual representation of the address family</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.GetCachedHostAddresses(System.String)">
            <summary>
            Get the IP Address(es) associated with this host
            </summary>
            <param name="host">The host to query</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.SetCachedHostAddresses(System.String,System.Net.IPAddress)">
            <summary>
            Set the connected IP Address associated with this host
            </summary>
            <param name="host">The host to query</param>
            <param name="ipad">The IP address to store in the cache</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Connect(System.String,System.Int32,FluentFTP.FtpIpVersion)">
            <summary>
            Connect to the specified host
            </summary>
            <param name="host">The host to connect to</param>
            <param name="port">The port to connect to</param>
            <param name="ipVersions">Internet Protocol versions to support during the connection phase</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ConnectHelper(System.Net.IPAddress,System.Int32)">
            <summary>
            Connect to the specified host
            Detects timeout and throws that explicitly
            </summary>
            <param name="ipad">The ip address to connect to</param>
            <param name="port">The port to connect to</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.GetCachedHostAddressesAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Get the IP Address(es) associated with this host
            </summary>
            <param name="host">The host to query</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ConnectAsync(System.String,System.Int32,FluentFTP.FtpIpVersion,System.Threading.CancellationToken)">
            <summary>
            Connect to the specified host
            </summary>
            <param name="host">The host to connect to</param>
            <param name="port">The port to connect to</param>
            <param name="ipVersions">Internet Protocol versions to support during the connection phase</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ConnectAsyncHelper(System.Net.IPAddress,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Connect to the specified host
            Detects timeout and throws that explicitly
            </summary>
            <param name="ipad">The ip address to connect to</param>
            <param name="port">The port to connect to</param>
            <param name="token">The token that can be used to cancel the entire process</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ActivateEncryption(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols)">
            <summary>
            Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
            If this event is not handled and there are SslPolicyErrors present, the certificate will
            not be accepted.
            </summary>
            <param name="targetHost">The host to authenticate the certificate against</param>
            <param name="clientCerts">A collection of client certificates to use when authenticating the SSL stream</param>
            <param name="sslProtocols">A bitwise parameter for supported encryption protocols.</param>
            <exception cref="T:System.Security.Authentication.AuthenticationException">Thrown when authentication fails</exception>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.ActivateEncryptionAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Threading.CancellationToken)">
            <summary>
            Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
            If this event is not handled and there are SslPolicyErrors present, the certificate will
            not be accepted.
            </summary>
            <param name="targetHost">The host to authenticate the certificate against</param>
            <param name="clientCerts">A collection of client certificates to use when authenticating the SSL stream</param>
            <param name="sslProtocols">A bitwise parameter for supported encryption protocols.</param>
            <param name="token">The token that can be used to cancel the entire process</param>
            <exception cref="T:System.Security.Authentication.AuthenticationException">Thrown when authentication fails</exception>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.CreateBufferStream">
            <summary>
            Conditionally create a SSL BufferStream based on the configuration in FtpClient.SslBuffering.
            </summary>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.GetBufferStream">
            <summary>
            If SSL Buffering is enabled it returns the BufferStream, else returns the internal NetworkStream.
            </summary>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Listen(System.Net.IPAddress,System.Int32)">
            <summary>
            Instructs this stream to listen for connections on the specified address and port
            </summary>
            <param name="address">The address to listen on</param>
            <param name="port">The port to listen on</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.Accept">
            <summary>
            Accepts a connection from a listening socket
            </summary>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.BeginAccept(System.AsyncCallback,System.Object)">
            <summary>
            Asynchronously accepts a connection from a listening socket
            </summary>
            <param name="callback"></param>
            <param name="state"></param>
            <returns></returns>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.EndAccept(System.IAsyncResult)">
            <summary>
            Completes a BeginAccept() operation
            </summary>
            <param name="ar">IAsyncResult returned from BeginAccept</param>
        </member>
        <member name="M:FluentFTP.FtpSocketStream.AcceptAsync">
            <summary>
            Accepts a connection from a listening socket
            </summary>
        </member>
    </members>
</doc>
