ntminer 4 năm trước cách đây
mục cha
commit
5981505d45

+ 10 - 4
src/AppModels/AppStatic.cs

@@ -735,8 +735,7 @@ namespace NTMiner {
         });
 
         public static ICommand OpenOfficialSite { get; private set; } = new DelegateCommand(() => {
-            string url = "http://ntminer.com/";
-            url = NTMinerContext.Instance.ServerContext.SysDicItemSet.TryGetDicItemValue(NTKeyword.ThisSystemSysDicCode, "HomePageUrl", defaultValue: url);
+            string url = HomePageUrl;
             VirtualRoot.Execute(new UnTopmostCommand());
             Process.Start(url);
         });
@@ -750,9 +749,9 @@ namespace NTMiner {
             }
         }
 
-        public static string OfficialSiteName {
+        public static string HomePageUrl {
             get {
-                string url = "NTMiner.com";
+                string url = "https://ntminer.com";
                 if (WpfUtil.IsInDesignMode) {
                     return url;
                 }
@@ -760,6 +759,13 @@ namespace NTMiner {
                 if (!string.IsNullOrEmpty(dicItemValue)) {
                     url = dicItemValue;
                 }
+                return url;
+            }
+        }
+
+        public static string OfficialSiteName {
+            get {
+                string url = HomePageUrl;
                 if (!string.IsNullOrEmpty(url)) {
                     if (url.StartsWith("https://")) {
                         return url.Substring("https://".Length);

+ 12 - 1
src/AppModels/MinerStudio/Vms/WebApiServerStateViewModel.cs

@@ -38,6 +38,7 @@ namespace NTMiner.MinerStudio.Vms {
             _cpu = data.Cpu;
             _cpuVm = new CpuDataViewModel(data.Cpu);
             _wsServerNodes = data.WsServerNodes;
+            _wsServerNodes.Sort((l, r) => string.Compare(l.Description, r.Description));
             _wsServerNodeVms = new ObservableCollection<WsServerNodeStateViewModel>(data.WsServerNodes.Select(a => new WsServerNodeStateViewModel(a)));
         }
 
@@ -65,13 +66,18 @@ namespace NTMiner.MinerStudio.Vms {
                     _wsServerNodeVms.Clear();
                 }
                 else {
+                    bool needSort = false;
                     if (_wsServerNodeVms == null) {
+                        needSort = true;
                         _wsServerNodeVms = new ObservableCollection<WsServerNodeStateViewModel>(value.Select(a => new WsServerNodeStateViewModel(a)));
                     }
                     else {
                         var toRemoves = _wsServerNodeVms.Where(a => value.All(b => b.Address != a.Address)).ToArray();
+                        if (toRemoves.Length != 0) {
+                            needSort = true;
+                        }
                         foreach (var item in toRemoves) {
-                            _wsServerNodeVms.Remove(item);
+                            _ = _wsServerNodeVms.Remove(item);
                         }
                         foreach (var item in value) {
                             var vm = _wsServerNodeVms.FirstOrDefault(a => a.Address == item.Address);
@@ -79,10 +85,15 @@ namespace NTMiner.MinerStudio.Vms {
                                 vm.Update(item);
                             }
                             else {
+                                needSort = true;
                                 _wsServerNodeVms.Add(new WsServerNodeStateViewModel(item));
                             }
                         }
                     }
+                    if (needSort) {
+                        _wsServerNodeVms = new ObservableCollection<WsServerNodeStateViewModel>(_wsServerNodeVms.OrderBy(a => a.Description));
+                        OnPropertyChanged(nameof(WsServerNodeVms));
+                    }
                 }
                 OnPropertyChanged(nameof(MinerClientWsSessionCount));
                 OnPropertyChanged(nameof(MinerClientSessionCount));

+ 1 - 11
src/AppModels/Vms/SpeedTableViewModel.cs

@@ -1,5 +1,4 @@
-using NTMiner.Gpus;
-using System.Windows;
+using System.Windows;
 
 namespace NTMiner.Vms {
     public class SpeedTableViewModel : ViewModelBase {
@@ -18,15 +17,6 @@ namespace NTMiner.Vms {
             }
         }
 
-        public Visibility IsVoltVisible {
-            get {
-                if (NTMinerContext.Instance.GpuSet.GpuType == GpuType.AMD) {
-                    return Visibility.Visible;
-                }
-                return Visibility.Collapsed;
-            }
-        }
-
         public AppRoot.GpuSpeedViewModels GpuSpeedVms {
             get {
                 return AppRoot.GpuSpeedViewModels.Instance;

+ 3 - 3
src/AppViews0/MinerStudio/Views/Ucs/WsServerNodePage.xaml

@@ -102,6 +102,8 @@
                         </DataTemplate>
                     </DataGridTemplateColumn.CellTemplate>
                 </DataGridTemplateColumn>
+                <DataGridTextColumn Width="100" IsReadOnly="True" Header="备注" Binding="{Binding Description}">
+                </DataGridTextColumn>
                 <DataGridTextColumn IsReadOnly="True" Width="100" Binding="{Binding MinerClientWsSessionCount}">
                     <DataGridTextColumn.Header>
                         <StackPanel>
@@ -163,7 +165,7 @@
                 </DataGridTextColumn>
                 <DataGridTextColumn IsReadOnly="True" Width="60" Header="CPU架构" Binding="{Binding CpuVm.ProcessorArchitecture}">
                 </DataGridTextColumn>
-                <DataGridTemplateColumn IsReadOnly="True" Width="280" Header="操作系统/CPU名称">
+                <DataGridTemplateColumn IsReadOnly="True" Width="*" Header="操作系统/CPU名称">
                     <DataGridTemplateColumn.CellTemplate>
                         <DataTemplate>
                             <StackPanel>
@@ -173,8 +175,6 @@
                         </DataTemplate>
                     </DataGridTemplateColumn.CellTemplate>
                 </DataGridTemplateColumn>
-                <DataGridTextColumn Width="*" IsReadOnly="True" Header="备注" Binding="{Binding Description}">
-				</DataGridTextColumn>
 			</DataGrid.Columns>
 		</DataGrid>
         <TextBlock 

+ 1 - 1
src/AppViews0/Views/Ucs/AboutPage.xaml

@@ -37,7 +37,7 @@
 						    KbDisplayLine="False"
 						    HorizontalAlignment="Left"
 						    Background="Transparent">
-                            <TextBlock Text="https://ntminer.com/"></TextBlock>
+                            <TextBlock Text="{x:Static app:AppStatic.HomePageUrl}"></TextBlock>
                         </controls:KbLinkButton>
                     </WrapPanel>
 				</StackPanel>

+ 2 - 2
src/AppViews0/Views/Ucs/SpeedTable.xaml

@@ -367,7 +367,7 @@
 						</DataTemplate>
 					</DataGridTemplateColumn.CellTemplate>
                 </DataGridTemplateColumn>
-                <DataGridTemplateColumn MinWidth="50" Width="50" IsReadOnly="True" CanUserResize="False" Visibility="{Binding Data.IsVoltVisible,Source={StaticResource proxy}}">
+                <DataGridTemplateColumn MinWidth="50" Width="50" IsReadOnly="True" CanUserResize="False">
                     <DataGridTemplateColumn.HeaderTemplate>
                         <DataTemplate>
                             <StackPanel>
@@ -435,7 +435,7 @@
 						</DataTemplate>
 					</DataGridTemplateColumn.CellTemplate>
                 </DataGridTemplateColumn>
-                <DataGridTemplateColumn MinWidth="50" Width="50" IsReadOnly="True" Header="显存电压" CanUserResize="False" Visibility="{Binding Data.IsVoltVisible,Source={StaticResource proxy}}">
+                <DataGridTemplateColumn MinWidth="50" Width="50" IsReadOnly="True" Header="显存电压" CanUserResize="False">
                     <DataGridTemplateColumn.HeaderTemplate>
                         <DataTemplate>
                             <StackPanel>

+ 1 - 0
src/CalcConfigUpdater/CalcConfigUpdater.csproj

@@ -57,6 +57,7 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="ConfigData.cs" />
+    <Compile Include="HtmlUtil.cs" />
     <Compile Include="IncomeItem.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />

+ 48 - 0
src/CalcConfigUpdater/HtmlUtil.cs

@@ -0,0 +1,48 @@
+using System;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace NTMiner {
+    public static class HtmlUtil {
+        public static async Task<string> GetF2poolHtmlAsync() {
+            return await Task.Factory.StartNew(() => {
+                try {
+                    string url = $"https://www.f2pool.com/?t={DateTime.Now.Ticks.ToString()}";
+                    if (url.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) {
+                        // 没有这一行可能会报错:System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道
+                        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
+                    }
+                    var httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
+                    httpWebRequest.Timeout = 30 * 1000;
+                    httpWebRequest.Method = "GET";
+                    httpWebRequest.Referer= "http://dl.ntminer.top";
+                    httpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";
+                    httpWebRequest.Headers["accept-encoding"] = "gzip, deflate, br";
+                    httpWebRequest.Headers["accept-language"] = "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6";
+                    httpWebRequest.Headers["cache-control"] = "max-age=0";
+                    httpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67";
+                    var response = httpWebRequest.GetResponse();
+                    using (Stream ms = new MemoryStream(), stream = response.GetResponseStream()) {
+                        byte[] buffer = new byte[NTKeyword.IntK];
+                        int n = stream.Read(buffer, 0, buffer.Length);
+                        while (n > 0) {
+                            ms.Write(buffer, 0, n);
+                            n = stream.Read(buffer, 0, buffer.Length);
+                        }
+                        byte[] data = new byte[ms.Length];
+                        ms.Position = 0;
+                        ms.Read(data, 0, data.Length);
+                        data = RpcRoot.ZipDecompress(data);
+                        return Encoding.UTF8.GetString(data);
+                    }
+                }
+                catch (Exception e) {
+                    Logger.ErrorDebugLine(e);
+                    return string.Empty;
+                }
+            });
+        }
+    }
+}

+ 3 - 29
src/CalcConfigUpdater/Program.cs

@@ -5,9 +5,6 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Text;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 
@@ -63,19 +60,11 @@ namespace NTMiner {
         }
 
         private static void UpdateAsync() {
-            Task.Factory.StartNew(() => {
+            Task.Factory.StartNew(async () => {
                 try {
-                    Task<byte[]> htmlDataTask = GetHtmlAsync("https://www.f2pool.com/");
-                    byte[] htmlData = null;
-                    try {
-                        Task.WaitAll(new Task[] { htmlDataTask }, 60 * 1000);
-                        htmlData = htmlDataTask.Result;
-                    }
-                    catch {
-                    }
-                    if (htmlData != null && htmlData.Length != 0) {
+                    string html = await HtmlUtil.GetF2poolHtmlAsync();
+                    if (!string.IsNullOrEmpty(html)) {
                         NTMinerConsole.UserOk($"{DateTime.Now.ToString()} - 鱼池首页html获取成功");
-                        string html = Encoding.UTF8.GetString(htmlData);
                         double usdCny = PickUsdCny(html);
                         NTMinerConsole.UserInfo($"usdCny={usdCny.ToString()}");
                         List<IncomeItem> incomeItems = PickIncomeItems(html);
@@ -288,20 +277,5 @@ namespace NTMiner {
                 return 0;
             }
         }
-
-        private static async Task<byte[]> GetHtmlAsync(string url) {
-            try {
-                // 没有这一行可能会报错:System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道
-                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
-                using (HttpClient client = RpcRoot.CreateHttpClient()) {
-                    client.Timeout = TimeSpan.FromSeconds(20);
-                    return await client.GetByteArrayAsync(url);
-                }
-            }
-            catch (Exception e) {
-                Logger.ErrorDebugLine(e);
-                return new byte[0];
-            }
-        }
     }
 }

+ 0 - 11730
src/MinerClient/Daemon/websocket-sharp.xml

@@ -1,11730 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>websocket-sharp</name>
-    </assembly>
-    <members>
-        <member name="T:WebSocketSharp.Ext">
-            <summary>
-            Provides a set of static methods for websocket-sharp.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Contains(System.String,System.Char[])">
-            <summary>
-            Determines whether the specified string contains any of characters in
-            the specified array of <see cref="T:System.Char"/>.
-            </summary>
-            <returns>
-            <c>true</c> if <paramref name="value"/> contains any of characters in
-            <paramref name="anyOf"/>; otherwise, <c>false</c>.
-            </returns>
-            <param name="value">
-            A <see cref="T:System.String"/> to test.
-            </param>
-            <param name="anyOf">
-            An array of <see cref="T:System.Char"/> that contains one or more characters to
-            seek.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.EqualsWith(System.Int32,System.Char,System.Action{System.Int32})">
-            <summary>
-            Determines whether the specified <see cref="T:System.Int32"/> equals the specified <see cref="T:System.Char"/>,
-            and invokes the specified <c>Action&lt;int&gt;</c> delegate at the same time.
-            </summary>
-            <returns>
-            <c>true</c> if <paramref name="value"/> equals <paramref name="c"/>;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="value">
-            An <see cref="T:System.Int32"/> to compare.
-            </param>
-            <param name="c">
-            A <see cref="T:System.Char"/> to compare.
-            </param>
-            <param name="action">
-            An <c>Action&lt;int&gt;</c> delegate that references the method(s) called
-            at the same time as comparing. An <see cref="T:System.Int32"/> parameter to pass to
-            the method(s) is <paramref name="value"/>.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.GetAbsolutePath(System.Uri)">
-            <summary>
-            Gets the absolute path from the specified <see cref="T:System.Uri"/>.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that represents the absolute path if it's successfully found;
-            otherwise, <see langword="null"/>.
-            </returns>
-            <param name="uri">
-            A <see cref="T:System.Uri"/> that represents the URI to get the absolute path from.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.GetName(System.String,System.Char)">
-            <summary>
-            Gets the name from the specified string that contains a pair of
-            name and value separated by a character.
-            </summary>
-            <returns>
-              <para>
-              A <see cref="T:System.String"/> that represents the name.
-              </para>
-              <para>
-              <see langword="null"/> if the name is not present.
-              </para>
-            </returns>
-            <param name="nameAndValue">
-            A <see cref="T:System.String"/> that contains a pair of name and value.
-            </param>
-            <param name="separator">
-            A <see cref="T:System.Char"/> used to separate name and value.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.GetValue(System.String,System.Char)">
-            <summary>
-            Gets the value from the specified string that contains a pair of
-            name and value separated by a character.
-            </summary>
-            <returns>
-              <para>
-              A <see cref="T:System.String"/> that represents the value.
-              </para>
-              <para>
-              <see langword="null"/> if the value is not present.
-              </para>
-            </returns>
-            <param name="nameAndValue">
-            A <see cref="T:System.String"/> that contains a pair of name and value.
-            </param>
-            <param name="separator">
-            A <see cref="T:System.Char"/> used to separate name and value.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.GetValue(System.String,System.Char,System.Boolean)">
-            <summary>
-            Gets the value from the specified string that contains a pair of
-            name and value separated by a character.
-            </summary>
-            <returns>
-              <para>
-              A <see cref="T:System.String"/> that represents the value.
-              </para>
-              <para>
-              <see langword="null"/> if the value is not present.
-              </para>
-            </returns>
-            <param name="nameAndValue">
-            A <see cref="T:System.String"/> that contains a pair of name and value.
-            </param>
-            <param name="separator">
-            A <see cref="T:System.Char"/> used to separate name and value.
-            </param>
-            <param name="unquote">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if unquotes the value; otherwise,
-            <c>false</c>.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.TryCreateWebSocketUri(System.String,System.Uri@,System.String@)">
-            <summary>
-            Tries to create a new <see cref="T:System.Uri"/> for WebSocket with
-            the specified <paramref name="uriString"/>.
-            </summary>
-            <returns>
-            <c>true</c> if the <see cref="T:System.Uri"/> was successfully created;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="uriString">
-            A <see cref="T:System.String"/> that represents a WebSocket URL to try.
-            </param>
-            <param name="result">
-            When this method returns, a <see cref="T:System.Uri"/> that
-            represents the WebSocket URL or <see langword="null"/>
-            if <paramref name="uriString"/> is invalid.
-            </param>
-            <param name="message">
-            When this method returns, a <see cref="T:System.String"/> that
-            represents an error message or <see langword="null"/>
-            if <paramref name="uriString"/> is valid.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.GetDescription(WebSocketSharp.Net.HttpStatusCode)">
-            <summary>
-            Gets the description of the specified HTTP status code.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that represents the description of
-            the HTTP status code.
-            </returns>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpStatusCode"/> enum values.
-              </para>
-              <para>
-              It specifies the HTTP status code.
-              </para>
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.GetStatusDescription(System.Int32)">
-            <summary>
-            Gets the description of the specified HTTP status code.
-            </summary>
-            <returns>
-              <para>
-              A <see cref="T:System.String"/> that represents the description of
-              the HTTP status code.
-              </para>
-              <para>
-              An empty string if the description is not present.
-              </para>
-            </returns>
-            <param name="code">
-            An <see cref="T:System.Int32"/> that specifies the HTTP status code.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.IsCloseStatusCode(System.UInt16)">
-            <summary>
-            Determines whether the specified ushort is in the range of
-            the status code for the WebSocket connection close.
-            </summary>
-            <remarks>
-              <para>
-              The ranges are the following:
-              </para>
-              <list type="bullet">
-                <item>
-                  <term>
-                  1000-2999: These numbers are reserved for definition by
-                  the WebSocket protocol.
-                  </term>
-                </item>
-                <item>
-                  <term>
-                  3000-3999: These numbers are reserved for use by libraries,
-                  frameworks, and applications.
-                  </term>
-                </item>
-                <item>
-                  <term>
-                  4000-4999: These numbers are reserved for private use.
-                  </term>
-                </item>
-              </list>
-            </remarks>
-            <returns>
-            <c>true</c> if <paramref name="value"/> is in the range of
-            the status code for the close; otherwise, <c>false</c>.
-            </returns>
-            <param name="value">
-            A <see cref="T:System.UInt16"/> to test.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.IsEnclosedIn(System.String,System.Char)">
-            <summary>
-            Determines whether the specified string is enclosed in
-            the specified character.
-            </summary>
-            <returns>
-            <c>true</c> if <paramref name="value"/> is enclosed in
-            <paramref name="c"/>; otherwise, <c>false</c>.
-            </returns>
-            <param name="value">
-            A <see cref="T:System.String"/> to test.
-            </param>
-            <param name="c">
-            A <see cref="T:System.Char"/> to find.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.IsHostOrder(WebSocketSharp.ByteOrder)">
-            <summary>
-            Determines whether the specified byte order is host (this computer
-            architecture) byte order.
-            </summary>
-            <returns>
-            <c>true</c> if <paramref name="order"/> is host byte order; otherwise,
-            <c>false</c>.
-            </returns>
-            <param name="order">
-            One of the <see cref="T:WebSocketSharp.ByteOrder"/> enum values to test.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.IsLocal(System.Net.IPAddress)">
-            <summary>
-            Determines whether the specified IP address is a local IP address.
-            </summary>
-            <remarks>
-            This local means NOT REMOTE for the current host.
-            </remarks>
-            <returns>
-            <c>true</c> if <paramref name="address"/> is a local IP address;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="address">
-            A <see cref="T:System.Net.IPAddress"/> to test.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="address"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Ext.IsNullOrEmpty(System.String)">
-            <summary>
-            Determines whether the specified string is <see langword="null"/> or
-            an empty string.
-            </summary>
-            <returns>
-            <c>true</c> if <paramref name="value"/> is <see langword="null"/> or
-            an empty string; otherwise, <c>false</c>.
-            </returns>
-            <param name="value">
-            A <see cref="T:System.String"/> to test.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.IsPredefinedScheme(System.String)">
-            <summary>
-            Determines whether the specified string is a predefined scheme.
-            </summary>
-            <returns>
-            <c>true</c> if <paramref name="value"/> is a predefined scheme;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="value">
-            A <see cref="T:System.String"/> to test.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.MaybeUri(System.String)">
-            <summary>
-            Determines whether the specified string is a URI string.
-            </summary>
-            <returns>
-            <c>true</c> if <paramref name="value"/> may be a URI string;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="value">
-            A <see cref="T:System.String"/> to test.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.SubArray``1(``0[],System.Int32,System.Int32)">
-            <summary>
-            Retrieves a sub-array from the specified array. A sub-array starts at
-            the specified index in the array.
-            </summary>
-            <returns>
-            An array of T that receives a sub-array.
-            </returns>
-            <param name="array">
-            An array of T from which to retrieve a sub-array.
-            </param>
-            <param name="startIndex">
-            An <see cref="T:System.Int32"/> that represents the zero-based index in the array
-            at which retrieving starts.
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that represents the number of elements to retrieve.
-            </param>
-            <typeparam name="T">
-            The type of elements in the array.
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="array"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="startIndex"/> is less than zero.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="startIndex"/> is greater than the end of the array.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than zero.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is greater than the number of elements from
-              <paramref name="startIndex"/> to the end of the array.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Ext.SubArray``1(``0[],System.Int64,System.Int64)">
-            <summary>
-            Retrieves a sub-array from the specified array. A sub-array starts at
-            the specified index in the array.
-            </summary>
-            <returns>
-            An array of T that receives a sub-array.
-            </returns>
-            <param name="array">
-            An array of T from which to retrieve a sub-array.
-            </param>
-            <param name="startIndex">
-            A <see cref="T:System.Int64"/> that represents the zero-based index in the array
-            at which retrieving starts.
-            </param>
-            <param name="length">
-            A <see cref="T:System.Int64"/> that represents the number of elements to retrieve.
-            </param>
-            <typeparam name="T">
-            The type of elements in the array.
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="array"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="startIndex"/> is less than zero.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="startIndex"/> is greater than the end of the array.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than zero.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is greater than the number of elements from
-              <paramref name="startIndex"/> to the end of the array.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.Int32,System.Action)">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            An <see cref="T:System.Int32"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-            An <see cref="T:System.Action"/> delegate to execute.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.Int64,System.Action)">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            A <see cref="T:System.Int64"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-            An <see cref="T:System.Action"/> delegate to execute.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.UInt32,System.Action)">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            A <see cref="T:System.UInt32"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-            An <see cref="T:System.Action"/> delegate to execute.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.UInt64,System.Action)">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            A <see cref="T:System.UInt64"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-            An <see cref="T:System.Action"/> delegate to execute.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.Int32,System.Action{System.Int32})">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            An <see cref="T:System.Int32"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-              <para>
-              An <c>Action&lt;int&gt;</c> delegate to execute.
-              </para>
-              <para>
-              The <see cref="T:System.Int32"/> parameter is the zero-based count of iteration.
-              </para>
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.Int64,System.Action{System.Int64})">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            A <see cref="T:System.Int64"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-              <para>
-              An <c>Action&lt;long&gt;</c> delegate to execute.
-              </para>
-              <para>
-              The <see cref="T:System.Int64"/> parameter is the zero-based count of iteration.
-              </para>
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.UInt32,System.Action{System.UInt32})">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            A <see cref="T:System.UInt32"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-              <para>
-              An <c>Action&lt;uint&gt;</c> delegate to execute.
-              </para>
-              <para>
-              The <see cref="T:System.UInt32"/> parameter is the zero-based count of iteration.
-              </para>
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.Times(System.UInt64,System.Action{System.UInt64})">
-            <summary>
-            Executes the specified delegate <paramref name="n"/> times.
-            </summary>
-            <param name="n">
-            A <see cref="T:System.UInt64"/> that specifies the number of times to execute.
-            </param>
-            <param name="action">
-              <para>
-              An <c>Action&lt;ulong&gt;</c> delegate to execute.
-              </para>
-              <para>
-              The <see cref="T:System.UInt64"/> parameter is the zero-based count of iteration.
-              </para>
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.To``1(System.Byte[],WebSocketSharp.ByteOrder)">
-            <summary>
-            Converts the specified byte array to the specified type value.
-            </summary>
-            <returns>
-              <para>
-              A T converted from <paramref name="source"/>.
-              </para>
-              <para>
-              The default value of T if not converted.
-              </para>
-            </returns>
-            <param name="source">
-            An array of <see cref="T:System.Byte"/> to convert.
-            </param>
-            <param name="sourceOrder">
-              <para>
-              One of the <see cref="T:WebSocketSharp.ByteOrder"/> enum values.
-              </para>
-              <para>
-              It specifies the byte order of <paramref name="source"/>.
-              </para>
-            </param>
-            <typeparam name="T">
-              <para>
-              The type of the return.
-              </para>
-              <para>
-              <see cref="T:System.Boolean"/>, <see cref="T:System.Char"/>, <see cref="T:System.Double"/>,
-              <see cref="T:System.Single"/>, <see cref="T:System.Int32"/>, <see cref="T:System.Int64"/>,
-              <see cref="T:System.Int16"/>, <see cref="T:System.UInt32"/>, <see cref="T:System.UInt64"/>,
-              or <see cref="T:System.UInt16"/>.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Ext.ToByteArray``1(``0,WebSocketSharp.ByteOrder)">
-            <summary>
-            Converts the specified value to a byte array.
-            </summary>
-            <returns>
-            An array of <see cref="T:System.Byte"/> converted from <paramref name="value"/>.
-            </returns>
-            <param name="value">
-            A T to convert.
-            </param>
-            <param name="order">
-              <para>
-              One of the <see cref="T:WebSocketSharp.ByteOrder"/> enum values.
-              </para>
-              <para>
-              It specifies the byte order of the return.
-              </para>
-            </param>
-            <typeparam name="T">
-              <para>
-              The type of <paramref name="value"/>.
-              </para>
-              <para>
-              <see cref="T:System.Boolean"/>, <see cref="T:System.Byte"/>, <see cref="T:System.Char"/>,
-              <see cref="T:System.Double"/>, <see cref="T:System.Single"/>, <see cref="T:System.Int32"/>,
-              <see cref="T:System.Int64"/>, <see cref="T:System.Int16"/>, <see cref="T:System.UInt32"/>,
-              <see cref="T:System.UInt64"/>, or <see cref="T:System.UInt16"/>.
-              </para>
-            </typeparam>
-        </member>
-        <member name="M:WebSocketSharp.Ext.ToHostOrder(System.Byte[],WebSocketSharp.ByteOrder)">
-            <summary>
-            Converts the order of elements in the specified byte array to
-            host (this computer architecture) byte order.
-            </summary>
-            <returns>
-              <para>
-              An array of <see cref="T:System.Byte"/> converted from
-              <paramref name="source"/>.
-              </para>
-              <para>
-              <paramref name="source"/> if the number of elements in
-              it is less than 2 or <paramref name="sourceOrder"/> is
-              same as host byte order.
-              </para>
-            </returns>
-            <param name="source">
-            An array of <see cref="T:System.Byte"/> to convert.
-            </param>
-            <param name="sourceOrder">
-              <para>
-              One of the <see cref="T:WebSocketSharp.ByteOrder"/> enum values.
-              </para>
-              <para>
-              It specifies the order of elements in <paramref name="source"/>.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Ext.ToString``1(``0[],System.String)">
-            <summary>
-            Converts the specified array to a string.
-            </summary>
-            <returns>
-              <para>
-              A <see cref="T:System.String"/> converted by concatenating each element of
-              <paramref name="array"/> across <paramref name="separator"/>.
-              </para>
-              <para>
-              An empty string if <paramref name="array"/> is an empty array.
-              </para>
-            </returns>
-            <param name="array">
-            An array of T to convert.
-            </param>
-            <param name="separator">
-            A <see cref="T:System.String"/> used to separate each element of
-            <paramref name="array"/>.
-            </param>
-            <typeparam name="T">
-            The type of elements in <paramref name="array"/>.
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="array"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Ext.ToUri(System.String)">
-            <summary>
-            Converts the specified string to a <see cref="T:System.Uri"/>.
-            </summary>
-            <returns>
-              <para>
-              A <see cref="T:System.Uri"/> converted from <paramref name="value"/>.
-              </para>
-              <para>
-              <see langword="null"/> if the conversion has failed.
-              </para>
-            </returns>
-            <param name="value">
-            A <see cref="T:System.String"/> to convert.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Ext.WriteContent(WebSocketSharp.Net.HttpListenerResponse,System.Byte[])">
-            <summary>
-            Sends the specified content data with the HTTP response.
-            </summary>
-            <param name="response">
-            A <see cref="T:WebSocketSharp.Net.HttpListenerResponse"/> that represents the HTTP response
-            used to send the content data.
-            </param>
-            <param name="content">
-            An array of <see cref="T:System.Byte"/> that specifies the content data to send.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="response"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="content"/> is <see langword="null"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.MessageEventArgs">
-            <summary>
-            Represents the event data for the <see cref="E:WebSocketSharp.WebSocket.OnMessage"/> event.
-            </summary>
-            <remarks>
-              <para>
-              That event occurs when the <see cref="T:WebSocketSharp.WebSocket"/> receives
-              a message or a ping if the <see cref="P:WebSocketSharp.WebSocket.EmitOnPing"/>
-              property is set to <c>true</c>.
-              </para>
-              <para>
-              If you would like to get the message data, you should access
-              the <see cref="P:WebSocketSharp.MessageEventArgs.Data"/> or <see cref="P:WebSocketSharp.MessageEventArgs.RawData"/> property.
-              </para>
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.MessageEventArgs.Opcode">
-            <summary>
-            Gets the opcode for the message.
-            </summary>
-            <value>
-            <see cref="F:WebSocketSharp.Opcode.Text"/>, <see cref="F:WebSocketSharp.Opcode.Binary"/>,
-            or <see cref="F:WebSocketSharp.Opcode.Ping"/>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.MessageEventArgs.Data">
-            <summary>
-            Gets the message data as a <see cref="T:System.String"/>.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the message data if its type is
-            text or ping and if decoding it to a string has successfully done;
-            otherwise, <see langword="null"/>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.MessageEventArgs.IsBinary">
-            <summary>
-            Gets a value indicating whether the message type is binary.
-            </summary>
-            <value>
-            <c>true</c> if the message type is binary; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.MessageEventArgs.IsPing">
-            <summary>
-            Gets a value indicating whether the message type is ping.
-            </summary>
-            <value>
-            <c>true</c> if the message type is ping; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.MessageEventArgs.IsText">
-            <summary>
-            Gets a value indicating whether the message type is text.
-            </summary>
-            <value>
-            <c>true</c> if the message type is text; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.MessageEventArgs.RawData">
-            <summary>
-            Gets the message data as an array of <see cref="T:System.Byte"/>.
-            </summary>
-            <value>
-            An array of <see cref="T:System.Byte"/> that represents the message data.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.CloseEventArgs">
-            <summary>
-            Represents the event data for the <see cref="E:WebSocketSharp.WebSocket.OnClose"/> event.
-            </summary>
-            <remarks>
-              <para>
-              That event occurs when the WebSocket connection has been closed.
-              </para>
-              <para>
-              If you would like to get the reason for the connection close, you should
-              access the <see cref="P:WebSocketSharp.CloseEventArgs.Code"/> or <see cref="P:WebSocketSharp.CloseEventArgs.Reason"/> property.
-              </para>
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.CloseEventArgs.Code">
-            <summary>
-            Gets the status code for the connection close.
-            </summary>
-            <value>
-            A <see cref="T:System.UInt16"/> that represents the status code for
-            the connection close if present.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.CloseEventArgs.Reason">
-            <summary>
-            Gets the reason for the connection close.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the reason for
-            the connection close if present.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.CloseEventArgs.WasClean">
-            <summary>
-            Gets a value indicating whether the connection has been closed cleanly.
-            </summary>
-            <value>
-            <c>true</c> if the connection has been closed cleanly; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.ByteOrder">
-            <summary>
-            Specifies the byte order.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.ByteOrder.Little">
-            <summary>
-            Specifies Little-endian.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.ByteOrder.Big">
-            <summary>
-            Specifies Big-endian.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.ErrorEventArgs">
-            <summary>
-            Represents the event data for the <see cref="E:WebSocketSharp.WebSocket.OnError"/> event.
-            </summary>
-            <remarks>
-              <para>
-              That event occurs when the <see cref="T:WebSocketSharp.WebSocket"/> gets an error.
-              </para>
-              <para>
-              If you would like to get the error message, you should access
-              the <see cref="P:WebSocketSharp.ErrorEventArgs.Message"/> property.
-              </para>
-              <para>
-              And if the error is due to an exception, you can get it by accessing
-              the <see cref="P:WebSocketSharp.ErrorEventArgs.Exception"/> property.
-              </para>
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.ErrorEventArgs.Exception">
-            <summary>
-            Gets the exception that caused the error.
-            </summary>
-            <value>
-            An <see cref="T:System.Exception"/> instance that represents the cause of
-            the error if it is due to an exception; otherwise, <see langword="null"/>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.ErrorEventArgs.Message">
-            <summary>
-            Gets the error message.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the error message.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.WebSocket">
-            <summary>
-            Implements the WebSocket interface.
-            </summary>
-            <remarks>
-              <para>
-              This class provides a set of methods and properties for two-way
-              communication using the WebSocket protocol.
-              </para>
-              <para>
-              The WebSocket protocol is defined in
-              <see href="http://tools.ietf.org/html/rfc6455">RFC 6455</see>.
-              </para>
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.WebSocket.EmptyBytes">
-            <summary>
-            Represents the empty array of <see cref="T:System.Byte"/> used internally.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.WebSocket.FragmentLength">
-            <summary>
-            Represents the length used to determine whether the data should be fragmented in sending.
-            </summary>
-            <remarks>
-              <para>
-              The data will be fragmented if that length is greater than the value of this field.
-              </para>
-              <para>
-              If you would like to change the value, you must set it to a value between <c>125</c> and
-              <c>Int32.MaxValue - 14</c> inclusive.
-              </para>
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.WebSocket.RandomNumber">
-            <summary>
-            Represents the random number generator used internally.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.#ctor(System.String,System.String[])">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.WebSocket"/> class with
-            <paramref name="url"/> and optionally <paramref name="protocols"/>.
-            </summary>
-            <param name="url">
-              <para>
-              A <see cref="T:System.String"/> that specifies the URL to which to connect.
-              </para>
-              <para>
-              The scheme of the URL must be ws or wss.
-              </para>
-              <para>
-              The new instance uses a secure connection if the scheme is wss.
-              </para>
-            </param>
-            <param name="protocols">
-              <para>
-              An array of <see cref="T:System.String"/> that specifies the names of
-              the subprotocols if necessary.
-              </para>
-              <para>
-              Each value of the array must be a token defined in
-              <see href="http://tools.ietf.org/html/rfc2616#section-2.2">
-              RFC 2616</see>.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="url"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="url"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="url"/> is an invalid WebSocket URL string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="protocols"/> contains a value that is not a token.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="protocols"/> contains a value twice.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Compression">
-            <summary>
-            Gets or sets the compression method used to compress a message.
-            </summary>
-            <remarks>
-            The set operation does nothing if the connection has already been
-            established or it is closing.
-            </remarks>
-            <value>
-              <para>
-              One of the <see cref="T:WebSocketSharp.CompressionMethod"/> enum values.
-              </para>
-              <para>
-              It specifies the compression method used to compress a message.
-              </para>
-              <para>
-              The default value is <see cref="F:WebSocketSharp.CompressionMethod.None"/>.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The set operation is not available if this instance is not a client.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Cookies">
-            <summary>
-            Gets the HTTP cookies included in the handshake request/response.
-            </summary>
-            <value>
-              <para>
-              An <see cref="T:System.Collections.Generic.IEnumerable{WebSocketSharp.Net.Cookie}"/>
-              instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the cookies.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Credentials">
-            <summary>
-            Gets the credentials for the HTTP authentication (Basic/Digest).
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Net.NetworkCredential"/> that represents the credentials
-              used to authenticate the client.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.EmitOnPing">
-            <summary>
-            Gets or sets a value indicating whether a <see cref="E:WebSocketSharp.WebSocket.OnMessage"/> event
-            is emitted when a ping is received.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if this instance emits a <see cref="E:WebSocketSharp.WebSocket.OnMessage"/> event
-              when receives a ping; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.EnableRedirection">
-            <summary>
-            Gets or sets a value indicating whether the URL redirection for
-            the handshake request is allowed.
-            </summary>
-            <remarks>
-            The set operation does nothing if the connection has already been
-            established or it is closing.
-            </remarks>
-            <value>
-              <para>
-              <c>true</c> if this instance allows the URL redirection for
-              the handshake request; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The set operation is not available if this instance is not a client.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Extensions">
-            <summary>
-            Gets the extensions selected by server.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that will be a list of the extensions
-            negotiated between client and server, or an empty string if
-            not specified or selected.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.IsAlive">
-            <summary>
-            Gets a value indicating whether the connection is alive.
-            </summary>
-            <remarks>
-            The get operation returns the value by using a ping/pong
-            if the current state of the connection is Open.
-            </remarks>
-            <value>
-            <c>true</c> if the connection is alive; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.IsSecure">
-            <summary>
-            Gets a value indicating whether a secure connection is used.
-            </summary>
-            <value>
-            <c>true</c> if this instance uses a secure connection; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Log">
-            <summary>
-            Gets the logging function.
-            </summary>
-            <remarks>
-            The default logging level is <see cref="F:WebSocketSharp.LogLevel.Error"/>.
-            </remarks>
-            <value>
-            A <see cref="T:WebSocketSharp.Logger"/> that provides the logging function.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Origin">
-            <summary>
-            Gets or sets the value of the HTTP Origin header to send with
-            the handshake request.
-            </summary>
-            <remarks>
-              <para>
-              The HTTP Origin header is defined in
-              <see href="http://tools.ietf.org/html/rfc6454#section-7">
-              Section 7 of RFC 6454</see>.
-              </para>
-              <para>
-              This instance sends the Origin header if this property has any.
-              </para>
-              <para>
-              The set operation does nothing if the connection has already been
-              established or it is closing.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of the Origin
-              header to send.
-              </para>
-              <para>
-              The syntax is &lt;scheme&gt;://&lt;host&gt;[:&lt;port&gt;].
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The set operation is not available if this instance is not a client.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The value specified for a set operation is not an absolute URI string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The value specified for a set operation includes the path segments.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Protocol">
-            <summary>
-            Gets the name of subprotocol selected by the server.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that will be one of the names of
-              subprotocols specified by client.
-              </para>
-              <para>
-              An empty string if not specified or selected.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.ReadyState">
-            <summary>
-            Gets the current state of the connection.
-            </summary>
-            <value>
-              <para>
-              One of the <see cref="T:WebSocketSharp.WebSocketState"/> enum values.
-              </para>
-              <para>
-              It indicates the current state of the connection.
-              </para>
-              <para>
-              The default value is <see cref="F:WebSocketSharp.WebSocketState.Connecting"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.SslConfiguration">
-            <summary>
-            Gets the configuration for secure connection.
-            </summary>
-            <remarks>
-            This configuration will be referenced when attempts to connect,
-            so it must be configured before any connect method is called.
-            </remarks>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.ClientSslConfiguration"/> that represents
-            the configuration used to establish a secure connection.
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              This instance is not a client.
-              </para>
-              <para>
-              This instance does not use a secure connection.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.Url">
-            <summary>
-            Gets the URL to which to connect.
-            </summary>
-            <value>
-            A <see cref="T:System.Uri"/> that represents the URL to which to connect.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.WebSocket.WaitTime">
-            <summary>
-            Gets or sets the time to wait for the response to the ping or close.
-            </summary>
-            <remarks>
-            The set operation does nothing if the connection has already been
-            established or it is closing.
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.TimeSpan"/> to wait for the response.
-              </para>
-              <para>
-              The default value is the same as 5 seconds if this instance is
-              a client.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The value specified for a set operation is zero or less.
-            </exception>
-        </member>
-        <member name="E:WebSocketSharp.WebSocket.OnClose">
-            <summary>
-            Occurs when the WebSocket connection has been closed.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.WebSocket.OnError">
-            <summary>
-            Occurs when the <see cref="T:WebSocketSharp.WebSocket"/> gets an error.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.WebSocket.OnMessage">
-            <summary>
-            Occurs when the <see cref="T:WebSocketSharp.WebSocket"/> receives a message.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.WebSocket.OnOpen">
-            <summary>
-            Occurs when the WebSocket connection has been established.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Accept">
-            <summary>
-            Accepts the handshake request.
-            </summary>
-            <remarks>
-            This method does nothing if the handshake request has already been
-            accepted.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              This instance is a client.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The close process is in progress.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The connection has already been closed.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.AcceptAsync">
-            <summary>
-            Accepts the handshake request asynchronously.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the accept process to be complete.
-              </para>
-              <para>
-              This method does nothing if the handshake request has already been
-              accepted.
-              </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              This instance is a client.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The close process is in progress.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The connection has already been closed.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Close">
-            <summary>
-            Closes the connection.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Close(System.UInt16)">
-            <summary>
-            Closes the connection with the specified code.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="code"/> is less than 1000 or greater than 4999.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1011 (server error).
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              It cannot be used by servers.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Close(WebSocketSharp.CloseStatusCode)">
-            <summary>
-            Closes the connection with the specified code.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.ServerError"/>.
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              It cannot be used by servers.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Close(System.UInt16,System.String)">
-            <summary>
-            Closes the connection with the specified code and reason.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="code"/> is less than 1000 or greater than 4999.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The size of <paramref name="reason"/> is greater than 123 bytes.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1011 (server error).
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              It cannot be used by servers.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1005 (no status) and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Close(WebSocketSharp.CloseStatusCode,System.String)">
-            <summary>
-            Closes the connection with the specified code and reason.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.ServerError"/>.
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              It cannot be used by servers.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.NoStatus"/> and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="reason"/> is greater than 123 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.CloseAsync">
-            <summary>
-            Closes the connection asynchronously.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.CloseAsync(System.UInt16)">
-            <summary>
-            Closes the connection asynchronously with the specified code.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="code"/> is less than 1000 or greater than 4999.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1011 (server error).
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              It cannot be used by servers.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.CloseAsync(WebSocketSharp.CloseStatusCode)">
-            <summary>
-            Closes the connection asynchronously with the specified code.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.ServerError"/>.
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              It cannot be used by servers.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.CloseAsync(System.UInt16,System.String)">
-            <summary>
-            Closes the connection asynchronously with the specified code and reason.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="code"/> is less than 1000 or greater than 4999.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The size of <paramref name="reason"/> is greater than 123 bytes.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1011 (server error).
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              It cannot be used by servers.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1005 (no status) and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.CloseAsync(WebSocketSharp.CloseStatusCode,System.String)">
-            <summary>
-            Closes the connection asynchronously with the specified code and reason.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.ServerError"/>.
-              It cannot be used by clients.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              It cannot be used by servers.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.NoStatus"/> and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="reason"/> is greater than 123 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Connect">
-            <summary>
-            Establishes a connection.
-            </summary>
-            <remarks>
-            This method does nothing if the connection has already been established.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              This instance is not a client.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The close process is in progress.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              A series of reconnecting has failed.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.ConnectAsync">
-            <summary>
-            Establishes a connection asynchronously.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the connect process to be complete.
-              </para>
-              <para>
-              This method does nothing if the connection has already been
-              established.
-              </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              This instance is not a client.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The close process is in progress.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              A series of reconnecting has failed.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Ping">
-            <summary>
-            Sends a ping using the WebSocket connection.
-            </summary>
-            <returns>
-            <c>true</c> if the send has done with no error and a pong has been
-            received within a time; otherwise, <c>false</c>.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Ping(System.String)">
-            <summary>
-            Sends a ping with <paramref name="message"/> using the WebSocket
-            connection.
-            </summary>
-            <returns>
-            <c>true</c> if the send has done with no error and a pong has been
-            received within a time; otherwise, <c>false</c>.
-            </returns>
-            <param name="message">
-              <para>
-              A <see cref="T:System.String"/> that represents the message to send.
-              </para>
-              <para>
-              The size must be 125 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="message"/> could not be UTF-8-encoded.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="message"/> is greater than 125 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Send(System.Byte[])">
-            <summary>
-            Sends the specified data using the WebSocket connection.
-            </summary>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Send(System.IO.FileInfo)">
-            <summary>
-            Sends the specified file using the WebSocket connection.
-            </summary>
-            <param name="fileInfo">
-              <para>
-              A <see cref="T:System.IO.FileInfo"/> that specifies the file to send.
-              </para>
-              <para>
-              The file is sent as the binary data.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="fileInfo"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The file does not exist.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The file could not be opened.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Send(System.String)">
-            <summary>
-            Sends the specified data using the WebSocket connection.
-            </summary>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.Send(System.IO.Stream,System.Int32)">
-            <summary>
-            Sends the data from the specified stream using the WebSocket connection.
-            </summary>
-            <param name="stream">
-              <para>
-              A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-              </para>
-              <para>
-              The data is sent as the binary data.
-              </para>
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="stream"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.SendAsync(System.Byte[],System.Action{System.Boolean})">
-            <summary>
-            Sends the specified data asynchronously using the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.SendAsync(System.IO.FileInfo,System.Action{System.Boolean})">
-            <summary>
-            Sends the specified file asynchronously using the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="fileInfo">
-              <para>
-              A <see cref="T:System.IO.FileInfo"/> that specifies the file to send.
-              </para>
-              <para>
-              The file is sent as the binary data.
-              </para>
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="fileInfo"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The file does not exist.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The file could not be opened.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.SendAsync(System.String,System.Action{System.Boolean})">
-            <summary>
-            Sends the specified data asynchronously using the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.SendAsync(System.IO.Stream,System.Int32,System.Action{System.Boolean})">
-            <summary>
-            Sends the data from the specified stream asynchronously using
-            the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="stream">
-              <para>
-              A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-              </para>
-              <para>
-              The data is sent as the binary data.
-              </para>
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="stream"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.SetCookie(WebSocketSharp.Net.Cookie)">
-            <summary>
-            Sets an HTTP cookie to send with the handshake request.
-            </summary>
-            <remarks>
-            This method does nothing if the connection has already been
-            established or it is closing.
-            </remarks>
-            <param name="cookie">
-            A <see cref="T:WebSocketSharp.Net.Cookie"/> that represents the cookie to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            This instance is not a client.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="cookie"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.SetCredentials(System.String,System.String,System.Boolean)">
-            <summary>
-            Sets the credentials for the HTTP authentication (Basic/Digest).
-            </summary>
-            <remarks>
-            This method does nothing if the connection has already been
-            established or it is closing.
-            </remarks>
-            <param name="username">
-              <para>
-              A <see cref="T:System.String"/> that represents the username associated with
-              the credentials.
-              </para>
-              <para>
-              <see langword="null"/> or an empty string if initializes
-              the credentials.
-              </para>
-            </param>
-            <param name="password">
-              <para>
-              A <see cref="T:System.String"/> that represents the password for the username
-              associated with the credentials.
-              </para>
-              <para>
-              <see langword="null"/> or an empty string if not necessary.
-              </para>
-            </param>
-            <param name="preAuth">
-            <c>true</c> if sends the credentials for the Basic authentication in
-            advance with the first handshake request; otherwise, <c>false</c>.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            This instance is not a client.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="username"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="password"/> contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.SetProxy(System.String,System.String,System.String)">
-            <summary>
-            Sets the URL of the HTTP proxy server through which to connect and
-            the credentials for the HTTP proxy authentication (Basic/Digest).
-            </summary>
-            <remarks>
-            This method does nothing if the connection has already been
-            established or it is closing.
-            </remarks>
-            <param name="url">
-              <para>
-              A <see cref="T:System.String"/> that represents the URL of the proxy server
-              through which to connect.
-              </para>
-              <para>
-              The syntax is http://&lt;host&gt;[:&lt;port&gt;].
-              </para>
-              <para>
-              <see langword="null"/> or an empty string if initializes the URL and
-              the credentials.
-              </para>
-            </param>
-            <param name="username">
-              <para>
-              A <see cref="T:System.String"/> that represents the username associated with
-              the credentials.
-              </para>
-              <para>
-              <see langword="null"/> or an empty string if the credentials are not
-              necessary.
-              </para>
-            </param>
-            <param name="password">
-              <para>
-              A <see cref="T:System.String"/> that represents the password for the username
-              associated with the credentials.
-              </para>
-              <para>
-              <see langword="null"/> or an empty string if not necessary.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            This instance is not a client.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="url"/> is not an absolute URI string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The scheme of <paramref name="url"/> is not http.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="url"/> includes the path segments.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="username"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="password"/> contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.WebSocket.System#IDisposable#Dispose">
-            <summary>
-            Closes the connection and releases all associated resources.
-            </summary>
-            <remarks>
-              <para>
-              This method closes the connection with close status 1001 (going away).
-              </para>
-              <para>
-              And this method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-        </member>
-        <member name="T:WebSocketSharp.Server.WebSocketServer">
-            <summary>
-            Provides a WebSocket protocol server.
-            </summary>
-            <remarks>
-            This class can provide multiple WebSocket services.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> class.
-            </summary>
-            <remarks>
-            The new instance listens for incoming handshake requests on
-            <see cref="F:System.Net.IPAddress.Any"/> and port 80.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> class
-            with the specified <paramref name="port"/>.
-            </summary>
-            <remarks>
-              <para>
-              The new instance listens for incoming handshake requests on
-              <see cref="F:System.Net.IPAddress.Any"/> and <paramref name="port"/>.
-              </para>
-              <para>
-              It provides secure connections if <paramref name="port"/> is 443.
-              </para>
-            </remarks>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> class
-            with the specified <paramref name="url"/>.
-            </summary>
-            <remarks>
-              <para>
-              The new instance listens for incoming handshake requests on
-              the IP address of the host of <paramref name="url"/> and
-              the port of <paramref name="url"/>.
-              </para>
-              <para>
-              Either port 80 or 443 is used if <paramref name="url"/> includes
-              no port. Port 443 is used if the scheme of <paramref name="url"/>
-              is wss; otherwise, port 80 is used.
-              </para>
-              <para>
-              The new instance provides secure connections if the scheme of
-              <paramref name="url"/> is wss.
-              </para>
-            </remarks>
-            <param name="url">
-            A <see cref="T:System.String"/> that represents the WebSocket URL of the server.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="url"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="url"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="url"/> is invalid.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.#ctor(System.Int32,System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> class
-            with the specified <paramref name="port"/> and <paramref name="secure"/>.
-            </summary>
-            <remarks>
-            The new instance listens for incoming handshake requests on
-            <see cref="F:System.Net.IPAddress.Any"/> and <paramref name="port"/>.
-            </remarks>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <param name="secure">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if the new instance provides
-            secure connections; otherwise, <c>false</c>.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.#ctor(System.Net.IPAddress,System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> class
-            with the specified <paramref name="address"/> and <paramref name="port"/>.
-            </summary>
-            <remarks>
-              <para>
-              The new instance listens for incoming handshake requests on
-              <paramref name="address"/> and <paramref name="port"/>.
-              </para>
-              <para>
-              It provides secure connections if <paramref name="port"/> is 443.
-              </para>
-            </remarks>
-            <param name="address">
-            A <see cref="T:System.Net.IPAddress"/> that represents the local
-            IP address on which to listen.
-            </param>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="address"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="address"/> is not a local IP address.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.#ctor(System.Net.IPAddress,System.Int32,System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> class
-            with the specified <paramref name="address"/>, <paramref name="port"/>,
-            and <paramref name="secure"/>.
-            </summary>
-            <remarks>
-            The new instance listens for incoming handshake requests on
-            <paramref name="address"/> and <paramref name="port"/>.
-            </remarks>
-            <param name="address">
-            A <see cref="T:System.Net.IPAddress"/> that represents the local
-            IP address on which to listen.
-            </param>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <param name="secure">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if the new instance provides
-            secure connections; otherwise, <c>false</c>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="address"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="address"/> is not a local IP address.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.Address">
-            <summary>
-            Gets the IP address of the server.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPAddress"/> that represents the local
-            IP address on which to listen for incoming handshake requests.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.AllowForwardedRequest">
-            <summary>
-            Gets or sets a value indicating whether the server accepts every
-            handshake request without checking the request URI.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-              <para>
-              <c>true</c> if the server accepts every handshake request without
-              checking the request URI; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.AuthenticationSchemes">
-            <summary>
-            Gets or sets the scheme used to authenticate the clients.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.AuthenticationSchemes"/>
-              enum values.
-              </para>
-              <para>
-              It represents the scheme used to authenticate the clients.
-              </para>
-              <para>
-              The default value is
-              <see cref="F:WebSocketSharp.Net.AuthenticationSchemes.Anonymous"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.IsListening">
-            <summary>
-            Gets a value indicating whether the server has started.
-            </summary>
-            <value>
-            <c>true</c> if the server has started; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.IsSecure">
-            <summary>
-            Gets a value indicating whether secure connections are provided.
-            </summary>
-            <value>
-            <c>true</c> if this instance provides secure connections; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.KeepClean">
-            <summary>
-            Gets or sets a value indicating whether the server cleans up
-            the inactive sessions periodically.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-              <para>
-              <c>true</c> if the server cleans up the inactive sessions every
-              60 seconds; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>true</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.Log">
-            <summary>
-            Gets the logging function for the server.
-            </summary>
-            <remarks>
-            The default logging level is <see cref="F:WebSocketSharp.LogLevel.Error"/>.
-            </remarks>
-            <value>
-            A <see cref="T:WebSocketSharp.Logger"/> that provides the logging function.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.Port">
-            <summary>
-            Gets the port of the server.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen for incoming handshake requests.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.Realm">
-            <summary>
-            Gets or sets the realm used for authentication.
-            </summary>
-            <remarks>
-              <para>
-              "SECRET AREA" is used as the realm if the value is
-              <see langword="null"/> or an empty string.
-              </para>
-              <para>
-              The set operation does nothing if the server has
-              already started or it is shutting down.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> or <see langword="null"/> by default.
-              </para>
-              <para>
-              That string represents the name of the realm.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.ReuseAddress">
-            <summary>
-            Gets or sets a value indicating whether the server is allowed to
-            be bound to an address that is already in use.
-            </summary>
-            <remarks>
-              <para>
-              You should set this property to <c>true</c> if you would
-              like to resolve to wait for socket in TIME_WAIT state.
-              </para>
-              <para>
-              The set operation does nothing if the server has already
-              started or it is shutting down.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              <c>true</c> if the server is allowed to be bound to an address
-              that is already in use; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.SslConfiguration">
-            <summary>
-            Gets the configuration for secure connection.
-            </summary>
-            <remarks>
-            This configuration will be referenced when attempts to start,
-            so it must be configured before the start method is called.
-            </remarks>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.ServerSslConfiguration"/> that represents
-            the configuration used to provide secure connections.
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not provide secure connections.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.UserCredentialsFinder">
-            <summary>
-            Gets or sets the delegate used to find the credentials
-            for an identity.
-            </summary>
-            <remarks>
-              <para>
-              No credentials are found if the method invoked by
-              the delegate returns <see langword="null"/> or
-              the value is <see langword="null"/>.
-              </para>
-              <para>
-              The set operation does nothing if the server has
-              already started or it is shutting down.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              A <c>Func&lt;<see cref="T:System.Security.Principal.IIdentity"/>,
-              <see cref="T:WebSocketSharp.Net.NetworkCredential"/>&gt;</c> delegate or
-              <see langword="null"/> if not needed.
-              </para>
-              <para>
-              That delegate invokes the method called for finding
-              the credentials used to authenticate a client.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.WaitTime">
-            <summary>
-            Gets or sets the time to wait for the response to the WebSocket Ping or
-            Close.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.TimeSpan"/> to wait for the response.
-              </para>
-              <para>
-              The default value is the same as 1 second.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The value specified for a set operation is zero or less.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServer.WebSocketServices">
-            <summary>
-            Gets the management function for the WebSocket services
-            provided by the server.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Server.WebSocketServiceManager"/> that manages
-            the WebSocket services provided by the server.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.AddWebSocketService``1(System.String,System.Func{``0})">
-            <summary>
-            Adds a WebSocket service with the specified behavior, path,
-            and delegate.
-            </summary>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to add.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <param name="creator">
-              <para>
-              A <c>Func&lt;TBehavior&gt;</c> delegate.
-              </para>
-              <para>
-              It invokes the method called when creating a new session
-              instance for the service.
-              </para>
-              <para>
-              The method must create a new instance of the specified
-              behavior class and return it.
-              </para>
-            </param>
-            <typeparam name="TBehavior">
-              <para>
-              The type of the behavior for the service.
-              </para>
-              <para>
-              It must inherit the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="path"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="creator"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is already in use.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.AddWebSocketService``1(System.String)">
-            <summary>
-            Adds a WebSocket service with the specified behavior and path.
-            </summary>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to add.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <typeparam name="TBehaviorWithNew">
-              <para>
-              The type of the behavior for the service.
-              </para>
-              <para>
-              It must inherit the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-              </para>
-              <para>
-              And also, it must have a public parameterless constructor.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is already in use.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.AddWebSocketService``1(System.String,System.Action{``0})">
-            <summary>
-            Adds a WebSocket service with the specified behavior, path,
-            and delegate.
-            </summary>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to add.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <param name="initializer">
-              <para>
-              An <c>Action&lt;TBehaviorWithNew&gt;</c> delegate or
-              <see langword="null"/> if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when initializing
-              a new session instance for the service.
-              </para>
-            </param>
-            <typeparam name="TBehaviorWithNew">
-              <para>
-              The type of the behavior for the service.
-              </para>
-              <para>
-              It must inherit the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-              </para>
-              <para>
-              And also, it must have a public parameterless constructor.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is already in use.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.RemoveWebSocketService(System.String)">
-            <summary>
-            Removes a WebSocket service with the specified path.
-            </summary>
-            <remarks>
-            The service is stopped with close status 1001 (going away)
-            if it has already started.
-            </remarks>
-            <returns>
-            <c>true</c> if the service is successfully found and removed;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to remove.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.Start">
-            <summary>
-            Starts receiving incoming handshake requests.
-            </summary>
-            <remarks>
-            This method does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              There is no server certificate for secure connection.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The underlying <see cref="T:System.Net.Sockets.TcpListener"/> has failed to start.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.Stop">
-            <summary>
-            Stops receiving incoming handshake requests.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The underlying <see cref="T:System.Net.Sockets.TcpListener"/> has failed to stop.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.Stop(System.UInt16,System.String)">
-            <summary>
-            Stops receiving incoming handshake requests and closes each connection
-            with the specified code and reason.
-            </summary>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="code"/> is less than 1000 or greater than 4999.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The size of <paramref name="reason"/> is greater than 123 bytes.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1005 (no status) and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The underlying <see cref="T:System.Net.Sockets.TcpListener"/> has failed to stop.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServer.Stop(WebSocketSharp.CloseStatusCode,System.String)">
-            <summary>
-            Stops receiving incoming handshake requests and closes each connection
-            with the specified code and reason.
-            </summary>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.NoStatus"/> and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="reason"/> is greater than 123 bytes.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The underlying <see cref="T:System.Net.Sockets.TcpListener"/> has failed to stop.
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Server.HttpServer">
-            <summary>
-            Provides a simple HTTP server that allows to accept
-            WebSocket handshake requests.
-            </summary>
-            <remarks>
-            This class can provide multiple WebSocket services.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.HttpServer"/> class.
-            </summary>
-            <remarks>
-            The new instance listens for incoming requests on
-            <see cref="F:System.Net.IPAddress.Any"/> and port 80.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.HttpServer"/> class with
-            the specified <paramref name="port"/>.
-            </summary>
-            <remarks>
-              <para>
-              The new instance listens for incoming requests on
-              <see cref="F:System.Net.IPAddress.Any"/> and <paramref name="port"/>.
-              </para>
-              <para>
-              It provides secure connections if <paramref name="port"/> is 443.
-              </para>
-            </remarks>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.HttpServer"/> class with
-            the specified <paramref name="url"/>.
-            </summary>
-            <remarks>
-              <para>
-              The new instance listens for incoming requests on the IP address of the
-              host of <paramref name="url"/> and the port of <paramref name="url"/>.
-              </para>
-              <para>
-              Either port 80 or 443 is used if <paramref name="url"/> includes
-              no port. Port 443 is used if the scheme of <paramref name="url"/>
-              is https; otherwise, port 80 is used.
-              </para>
-              <para>
-              The new instance provides secure connections if the scheme of
-              <paramref name="url"/> is https.
-              </para>
-            </remarks>
-            <param name="url">
-            A <see cref="T:System.String"/> that represents the HTTP URL of the server.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="url"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="url"/> is empty.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="url"/> is invalid.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.#ctor(System.Int32,System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.HttpServer"/> class with
-            the specified <paramref name="port"/> and <paramref name="secure"/>.
-            </summary>
-            <remarks>
-            The new instance listens for incoming requests on
-            <see cref="F:System.Net.IPAddress.Any"/> and <paramref name="port"/>.
-            </remarks>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <param name="secure">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if the new instance provides
-            secure connections; otherwise, <c>false</c>.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.#ctor(System.Net.IPAddress,System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.HttpServer"/> class with
-            the specified <paramref name="address"/> and <paramref name="port"/>.
-            </summary>
-            <remarks>
-              <para>
-              The new instance listens for incoming requests on
-              <paramref name="address"/> and <paramref name="port"/>.
-              </para>
-              <para>
-              It provides secure connections if <paramref name="port"/> is 443.
-              </para>
-            </remarks>
-            <param name="address">
-            A <see cref="T:System.Net.IPAddress"/> that represents
-            the local IP address on which to listen.
-            </param>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="address"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="address"/> is not a local IP address.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.#ctor(System.Net.IPAddress,System.Int32,System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.HttpServer"/> class with
-            the specified <paramref name="address"/>, <paramref name="port"/>,
-            and <paramref name="secure"/>.
-            </summary>
-            <remarks>
-            The new instance listens for incoming requests on
-            <paramref name="address"/> and <paramref name="port"/>.
-            </remarks>
-            <param name="address">
-            A <see cref="T:System.Net.IPAddress"/> that represents
-            the local IP address on which to listen.
-            </param>
-            <param name="port">
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen.
-            </param>
-            <param name="secure">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if the new instance provides
-            secure connections; otherwise, <c>false</c>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="address"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="address"/> is not a local IP address.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="port"/> is less than 1 or greater than 65535.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.Address">
-            <summary>
-            Gets the IP address of the server.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPAddress"/> that represents the local
-            IP address on which to listen for incoming requests.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.AuthenticationSchemes">
-            <summary>
-            Gets or sets the scheme used to authenticate the clients.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already
-            started or it is shutting down.
-            </remarks>
-            <value>
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.AuthenticationSchemes"/>
-              enum values.
-              </para>
-              <para>
-              It represents the scheme used to authenticate the clients.
-              </para>
-              <para>
-              The default value is
-              <see cref="F:WebSocketSharp.Net.AuthenticationSchemes.Anonymous"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.DocumentRootPath">
-            <summary>
-            Gets or sets the path to the document folder of the server.
-            </summary>
-            <remarks>
-              <para>
-              '/' or '\' is trimmed from the end of the value if any.
-              </para>
-              <para>
-              The set operation does nothing if the server has already
-              started or it is shutting down.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents a path to the folder
-              from which to find the requested file.
-              </para>
-              <para>
-              The default value is "./Public".
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentNullException">
-            The value specified for a set operation is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The value specified for a set operation is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The value specified for a set operation is an invalid path string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The value specified for a set operation is an absolute root.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.IsListening">
-            <summary>
-            Gets a value indicating whether the server has started.
-            </summary>
-            <value>
-            <c>true</c> if the server has started; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.IsSecure">
-            <summary>
-            Gets a value indicating whether secure connections are provided.
-            </summary>
-            <value>
-            <c>true</c> if this instance provides secure connections; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.KeepClean">
-            <summary>
-            Gets or sets a value indicating whether the server cleans up
-            the inactive sessions periodically.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already
-            started or it is shutting down.
-            </remarks>
-            <value>
-              <para>
-              <c>true</c> if the server cleans up the inactive sessions
-              every 60 seconds; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>true</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.Log">
-            <summary>
-            Gets the logging function for the server.
-            </summary>
-            <remarks>
-            The default logging level is <see cref="F:WebSocketSharp.LogLevel.Error"/>.
-            </remarks>
-            <value>
-            A <see cref="T:WebSocketSharp.Logger"/> that provides the logging function.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.Port">
-            <summary>
-            Gets the port of the server.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the number of the port
-            on which to listen for incoming requests.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.Realm">
-            <summary>
-            Gets or sets the realm used for authentication.
-            </summary>
-            <remarks>
-              <para>
-              "SECRET AREA" is used as the realm if the value is
-              <see langword="null"/> or an empty string.
-              </para>
-              <para>
-              The set operation does nothing if the server has
-              already started or it is shutting down.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> or <see langword="null"/> by default.
-              </para>
-              <para>
-              That string represents the name of the realm.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.ReuseAddress">
-            <summary>
-            Gets or sets a value indicating whether the server is allowed to
-            be bound to an address that is already in use.
-            </summary>
-            <remarks>
-              <para>
-              You should set this property to <c>true</c> if you would
-              like to resolve to wait for socket in TIME_WAIT state.
-              </para>
-              <para>
-              The set operation does nothing if the server has already
-              started or it is shutting down.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              <c>true</c> if the server is allowed to be bound to an address
-              that is already in use; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.SslConfiguration">
-            <summary>
-            Gets the configuration for secure connection.
-            </summary>
-            <remarks>
-            This configuration will be referenced when attempts to start,
-            so it must be configured before the start method is called.
-            </remarks>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.ServerSslConfiguration"/> that represents
-            the configuration used to provide secure connections.
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not provide secure connections.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.UserCredentialsFinder">
-            <summary>
-            Gets or sets the delegate used to find the credentials
-            for an identity.
-            </summary>
-            <remarks>
-              <para>
-              No credentials are found if the method invoked by
-              the delegate returns <see langword="null"/> or
-              the value is <see langword="null"/>.
-              </para>
-              <para>
-              The set operation does nothing if the server has
-              already started or it is shutting down.
-              </para>
-            </remarks>
-            <value>
-              <para>
-              A <c>Func&lt;<see cref="T:System.Security.Principal.IIdentity"/>,
-              <see cref="T:WebSocketSharp.Net.NetworkCredential"/>&gt;</c> delegate or
-              <see langword="null"/> if not needed.
-              </para>
-              <para>
-              That delegate invokes the method called for finding
-              the credentials used to authenticate a client.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.WaitTime">
-            <summary>
-            Gets or sets the time to wait for the response to the WebSocket Ping or
-            Close.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.TimeSpan"/> to wait for the response.
-              </para>
-              <para>
-              The default value is the same as 1 second.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The value specified for a set operation is zero or less.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpServer.WebSocketServices">
-            <summary>
-            Gets the management function for the WebSocket services
-            provided by the server.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Server.WebSocketServiceManager"/> that manages
-            the WebSocket services provided by the server.
-            </value>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnConnect">
-            <summary>
-            Occurs when the server receives an HTTP CONNECT request.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnDelete">
-            <summary>
-            Occurs when the server receives an HTTP DELETE request.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnGet">
-            <summary>
-            Occurs when the server receives an HTTP GET request.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnHead">
-            <summary>
-            Occurs when the server receives an HTTP HEAD request.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnOptions">
-            <summary>
-            Occurs when the server receives an HTTP OPTIONS request.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnPost">
-            <summary>
-            Occurs when the server receives an HTTP POST request.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnPut">
-            <summary>
-            Occurs when the server receives an HTTP PUT request.
-            </summary>
-        </member>
-        <member name="E:WebSocketSharp.Server.HttpServer.OnTrace">
-            <summary>
-            Occurs when the server receives an HTTP TRACE request.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.AddWebSocketService``1(System.String,System.Func{``0})">
-            <summary>
-            Adds a WebSocket service with the specified behavior, path,
-            and delegate.
-            </summary>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to add.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <param name="creator">
-              <para>
-              A <c>Func&lt;TBehavior&gt;</c> delegate.
-              </para>
-              <para>
-              It invokes the method called when creating a new session
-              instance for the service.
-              </para>
-              <para>
-              The method must create a new instance of the specified
-              behavior class and return it.
-              </para>
-            </param>
-            <typeparam name="TBehavior">
-              <para>
-              The type of the behavior for the service.
-              </para>
-              <para>
-              It must inherit the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="path"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="creator"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is already in use.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.AddWebSocketService``1(System.String)">
-            <summary>
-            Adds a WebSocket service with the specified behavior and path.
-            </summary>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to add.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <typeparam name="TBehaviorWithNew">
-              <para>
-              The type of the behavior for the service.
-              </para>
-              <para>
-              It must inherit the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-              </para>
-              <para>
-              And also, it must have a public parameterless constructor.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is already in use.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.AddWebSocketService``1(System.String,System.Action{``0})">
-            <summary>
-            Adds a WebSocket service with the specified behavior, path,
-            and delegate.
-            </summary>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to add.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <param name="initializer">
-              <para>
-              An <c>Action&lt;TBehaviorWithNew&gt;</c> delegate or
-              <see langword="null"/> if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when initializing
-              a new session instance for the service.
-              </para>
-            </param>
-            <typeparam name="TBehaviorWithNew">
-              <para>
-              The type of the behavior for the service.
-              </para>
-              <para>
-              It must inherit the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-              </para>
-              <para>
-              And also, it must have a public parameterless constructor.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is already in use.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.GetFile(System.String)">
-            <summary>
-            Gets the contents of the specified file from the document
-            folder of the server.
-            </summary>
-            <returns>
-              <para>
-              An array of <see cref="T:System.Byte"/> or <see langword="null"/>
-              if it fails.
-              </para>
-              <para>
-              That array represents the contents of the file.
-              </para>
-            </returns>
-            <param name="path">
-            A <see cref="T:System.String"/> that represents a virtual path to
-            find the file from the document folder.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> contains "..".
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.RemoveWebSocketService(System.String)">
-            <summary>
-            Removes a WebSocket service with the specified path.
-            </summary>
-            <remarks>
-            The service is stopped with close status 1001 (going away)
-            if it has already started.
-            </remarks>
-            <returns>
-            <c>true</c> if the service is successfully found and removed;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to remove.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.Start">
-            <summary>
-            Starts receiving incoming requests.
-            </summary>
-            <remarks>
-            This method does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              There is no server certificate for secure connection.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The underlying <see cref="T:WebSocketSharp.Net.HttpListener"/> has failed to start.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.Stop">
-            <summary>
-            Stops receiving incoming requests.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.Stop(System.UInt16,System.String)">
-            <summary>
-            Stops receiving incoming requests and closes each connection.
-            </summary>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the WebSocket connection close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the WebSocket
-              connection close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="code"/> is less than 1000 or greater than 4999.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The size of <paramref name="reason"/> is greater than 123 bytes.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1005 (no status) and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpServer.Stop(WebSocketSharp.CloseStatusCode,System.String)">
-            <summary>
-            Stops receiving incoming requests and closes each connection.
-            </summary>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the WebSocket
-              connection close.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the WebSocket
-              connection close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="reason"/> is greater than 123 bytes.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.NoStatus"/> and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Server.WebSocketServiceHost">
-            <summary>
-            Exposes the methods and properties used to access the information in
-            a WebSocket service provided by the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> or
-            <see cref="T:WebSocketSharp.Server.HttpServer"/>.
-            </summary>
-            <remarks>
-            This class is an abstract class.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceHost.#ctor(System.String,WebSocketSharp.Logger)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketServiceHost"/> class
-            with the specified <paramref name="path"/> and <paramref name="log"/>.
-            </summary>
-            <param name="path">
-            A <see cref="T:System.String"/> that represents the absolute path to the service.
-            </param>
-            <param name="log">
-            A <see cref="T:WebSocketSharp.Logger"/> that represents the logging function for the service.
-            </param>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceHost.Log">
-            <summary>
-            Gets the logging function for the service.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Logger"/> that provides the logging function.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceHost.KeepClean">
-            <summary>
-            Gets or sets a value indicating whether the service cleans up
-            the inactive sessions periodically.
-            </summary>
-            <remarks>
-            The set operation does nothing if the service has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-            <c>true</c> if the service cleans up the inactive sessions every
-            60 seconds; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceHost.Path">
-            <summary>
-            Gets the path to the service.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the absolute path to
-            the service.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceHost.Sessions">
-            <summary>
-            Gets the management function for the sessions in the service.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Server.WebSocketSessionManager"/> that manages the sessions in
-            the service.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceHost.BehaviorType">
-            <summary>
-            Gets the <see cref="T:System.Type"/> of the behavior of the service.
-            </summary>
-            <value>
-            A <see cref="T:System.Type"/> that represents the type of the behavior of
-            the service.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceHost.WaitTime">
-            <summary>
-            Gets or sets the time to wait for the response to the WebSocket Ping or
-            Close.
-            </summary>
-            <remarks>
-            The set operation does nothing if the service has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-            A <see cref="T:System.TimeSpan"/> to wait for the response.
-            </value>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The value specified for a set operation is zero or less.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceHost.CreateSession">
-            <summary>
-            Creates a new session for the service.
-            </summary>
-            <returns>
-            A <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> instance that represents
-            the new session.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Server.HttpRequestEventArgs">
-            <summary>
-            Represents the event data for the HTTP request events of
-            the <see cref="T:WebSocketSharp.Server.HttpServer"/>.
-            </summary>
-            <remarks>
-              <para>
-              An HTTP request event occurs when the <see cref="T:WebSocketSharp.Server.HttpServer"/>
-              receives an HTTP request.
-              </para>
-              <para>
-              You should access the <see cref="P:WebSocketSharp.Server.HttpRequestEventArgs.Request"/> property if you would
-              like to get the request data sent from a client.
-              </para>
-              <para>
-              And you should access the <see cref="P:WebSocketSharp.Server.HttpRequestEventArgs.Response"/> property if you would
-              like to get the response data to return to the client.
-              </para>
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpRequestEventArgs.Request">
-            <summary>
-            Gets the request data sent from a client.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.HttpListenerRequest"/> that provides the methods and
-            properties for the request data.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpRequestEventArgs.Response">
-            <summary>
-            Gets the response data to return to the client.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.HttpListenerResponse"/> that provides the methods and
-            properties for the response data.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.HttpRequestEventArgs.User">
-            <summary>
-            Gets the information for the client.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Security.Principal.IPrincipal"/> instance or <see langword="null"/>
-              if not authenticated.
-              </para>
-              <para>
-              That instance describes the identity, authentication scheme,
-              and security roles for the client.
-              </para>
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpRequestEventArgs.ReadFile(System.String)">
-            <summary>
-            Reads the specified file from the document folder of
-            the <see cref="T:WebSocketSharp.Server.HttpServer"/>.
-            </summary>
-            <returns>
-              <para>
-              An array of <see cref="T:System.Byte"/> or <see langword="null"/>
-              if it fails.
-              </para>
-              <para>
-              That array receives the contents of the file.
-              </para>
-            </returns>
-            <param name="path">
-            A <see cref="T:System.String"/> that represents a virtual path to
-            find the file from the document folder.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> contains "..".
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.HttpRequestEventArgs.TryReadFile(System.String,System.Byte[]@)">
-            <summary>
-            Tries to read the specified file from the document folder of
-            the <see cref="T:WebSocketSharp.Server.HttpServer"/>.
-            </summary>
-            <returns>
-            <c>true</c> if it succeeds to read; otherwise, <c>false</c>.
-            </returns>
-            <param name="path">
-            A <see cref="T:System.String"/> that represents a virtual path to
-            find the file from the document folder.
-            </param>
-            <param name="contents">
-              <para>
-              When this method returns, an array of <see cref="T:System.Byte"/> or
-              <see langword="null"/> if it fails.
-              </para>
-              <para>
-              That array receives the contents of the file.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> contains "..".
-              </para>
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Server.IWebSocketSession">
-            <summary>
-            Exposes the access to the information in a WebSocket session.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Server.IWebSocketSession.ConnectionState">
-            <summary>
-            Gets the current state of the WebSocket connection for the session.
-            </summary>
-            <value>
-              <para>
-              One of the <see cref="T:WebSocketSharp.WebSocketState"/> enum values.
-              </para>
-              <para>
-              It indicates the current state of the connection.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.IWebSocketSession.Context">
-            <summary>
-            Gets the information in the WebSocket handshake request.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.WebSockets.WebSocketContext"/> instance that provides the access to
-            the information in the handshake request.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.IWebSocketSession.ID">
-            <summary>
-            Gets the unique ID of the session.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the unique ID of the session.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.IWebSocketSession.Protocol">
-            <summary>
-            Gets the name of the WebSocket subprotocol for the session.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the name of the subprotocol
-            if present.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.IWebSocketSession.StartTime">
-            <summary>
-            Gets the time that the session has started.
-            </summary>
-            <value>
-            A <see cref="T:System.DateTime"/> that represents the time that the session
-            has started.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.Server.WebSocketSessionManager">
-            <summary>
-            Provides the management function for the sessions in a WebSocket service.
-            </summary>
-            <remarks>
-            This class manages the sessions in a WebSocket service provided by
-            the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> or <see cref="T:WebSocketSharp.Server.HttpServer"/>.
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.ActiveIDs">
-            <summary>
-            Gets the IDs for the active sessions in the WebSocket service.
-            </summary>
-            <value>
-              <para>
-              An <c>IEnumerable&lt;string&gt;</c> instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the IDs for the active sessions.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.Count">
-            <summary>
-            Gets the number of the sessions in the WebSocket service.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the number of the sessions.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.IDs">
-            <summary>
-            Gets the IDs for the sessions in the WebSocket service.
-            </summary>
-            <value>
-              <para>
-              An <c>IEnumerable&lt;string&gt;</c> instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the IDs for the sessions.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.InactiveIDs">
-            <summary>
-            Gets the IDs for the inactive sessions in the WebSocket service.
-            </summary>
-            <value>
-              <para>
-              An <c>IEnumerable&lt;string&gt;</c> instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the IDs for the inactive sessions.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.Item(System.String)">
-            <summary>
-            Gets the session instance with <paramref name="id"/>.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Server.IWebSocketSession"/> instance or <see langword="null"/>
-              if not found.
-              </para>
-              <para>
-              The session instance provides the function to access the information
-              in the session.
-              </para>
-            </value>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session to find.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="id"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="id"/> is an empty string.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.KeepClean">
-            <summary>
-            Gets or sets a value indicating whether the inactive sessions in
-            the WebSocket service are cleaned up periodically.
-            </summary>
-            <remarks>
-            The set operation does nothing if the service has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-            <c>true</c> if the inactive sessions are cleaned up every 60 seconds;
-            otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.Sessions">
-            <summary>
-            Gets the session instances in the WebSocket service.
-            </summary>
-            <value>
-              <para>
-              An <c>IEnumerable&lt;IWebSocketSession&gt;</c> instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the session instances.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketSessionManager.WaitTime">
-            <summary>
-            Gets or sets the time to wait for the response to the WebSocket Ping or
-            Close.
-            </summary>
-            <remarks>
-            The set operation does nothing if the service has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-            A <see cref="T:System.TimeSpan"/> to wait for the response.
-            </value>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The value specified for a set operation is zero or less.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.Broadcast(System.Byte[])">
-            <summary>
-            Sends <paramref name="data"/> to every client in the WebSocket service.
-            </summary>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.Broadcast(System.String)">
-            <summary>
-            Sends <paramref name="data"/> to every client in the WebSocket service.
-            </summary>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.Broadcast(System.IO.Stream,System.Int32)">
-            <summary>
-            Sends the data from <paramref name="stream"/> to every client in
-            the WebSocket service.
-            </summary>
-            <remarks>
-            The data is sent as the binary data.
-            </remarks>
-            <param name="stream">
-            A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="stream"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.BroadcastAsync(System.Byte[],System.Action)">
-            <summary>
-            Sends <paramref name="data"/> asynchronously to every client in
-            the WebSocket service.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <see cref="T:System.Action"/> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.BroadcastAsync(System.String,System.Action)">
-            <summary>
-            Sends <paramref name="data"/> asynchronously to every client in
-            the WebSocket service.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <see cref="T:System.Action"/> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.BroadcastAsync(System.IO.Stream,System.Int32,System.Action)">
-            <summary>
-            Sends the data from <paramref name="stream"/> asynchronously to
-            every client in the WebSocket service.
-            </summary>
-            <remarks>
-              <para>
-              The data is sent as the binary data.
-              </para>
-              <para>
-              This method does not wait for the send to be complete.
-              </para>
-            </remarks>
-            <param name="stream">
-            A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <see cref="T:System.Action"/> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="stream"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.Broadping">
-            <summary>
-            Sends a ping to every client in the WebSocket service.
-            </summary>
-            <returns>
-              <para>
-              A <c>Dictionary&lt;string, bool&gt;</c>.
-              </para>
-              <para>
-              It represents a collection of pairs of a session ID and
-              a value indicating whether a pong has been received from
-              the client within a time.
-              </para>
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.Broadping(System.String)">
-            <summary>
-            Sends a ping with <paramref name="message"/> to every client in
-            the WebSocket service.
-            </summary>
-            <returns>
-              <para>
-              A <c>Dictionary&lt;string, bool&gt;</c>.
-              </para>
-              <para>
-              It represents a collection of pairs of a session ID and
-              a value indicating whether a pong has been received from
-              the client within a time.
-              </para>
-            </returns>
-            <param name="message">
-              <para>
-              A <see cref="T:System.String"/> that represents the message to send.
-              </para>
-              <para>
-              The size must be 125 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="message"/> could not be UTF-8-encoded.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="message"/> is greater than 125 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.CloseSession(System.String)">
-            <summary>
-            Closes the specified session.
-            </summary>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session to close.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="id"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="id"/> is an empty string.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The session could not be found.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.CloseSession(System.String,System.UInt16,System.String)">
-            <summary>
-            Closes the specified session with <paramref name="code"/> and
-            <paramref name="reason"/>.
-            </summary>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session to close.
-            </param>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="id"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="id"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1005 (no status) and there is
-              <paramref name="reason"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The session could not be found.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="code"/> is less than 1000 or greater than 4999.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The size of <paramref name="reason"/> is greater than 123 bytes.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.CloseSession(System.String,WebSocketSharp.CloseStatusCode,System.String)">
-            <summary>
-            Closes the specified session with <paramref name="code"/> and
-            <paramref name="reason"/>.
-            </summary>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session to close.
-            </param>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="id"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="id"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.NoStatus"/> and there is
-              <paramref name="reason"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The session could not be found.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="reason"/> is greater than 123 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.PingTo(System.String)">
-            <summary>
-            Sends a ping to the client using the specified session.
-            </summary>
-            <returns>
-            <c>true</c> if the send has done with no error and a pong has been
-            received from the client within a time; otherwise, <c>false</c>.
-            </returns>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="id"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="id"/> is an empty string.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The session could not be found.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.PingTo(System.String,System.String)">
-            <summary>
-            Sends a ping with <paramref name="message"/> to the client using
-            the specified session.
-            </summary>
-            <returns>
-            <c>true</c> if the send has done with no error and a pong has been
-            received from the client within a time; otherwise, <c>false</c>.
-            </returns>
-            <param name="message">
-              <para>
-              A <see cref="T:System.String"/> that represents the message to send.
-              </para>
-              <para>
-              The size must be 125 bytes or less in UTF-8.
-              </para>
-            </param>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="id"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="id"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="message"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The session could not be found.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="message"/> is greater than 125 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.SendTo(System.Byte[],System.String)">
-            <summary>
-            Sends <paramref name="data"/> to the client using the specified session.
-            </summary>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="id"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="data"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="id"/> is an empty string.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              The session could not be found.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The current state of the WebSocket connection is not Open.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.SendTo(System.String,System.String)">
-            <summary>
-            Sends <paramref name="data"/> to the client using the specified session.
-            </summary>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="id"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="data"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="id"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="data"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              The session could not be found.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The current state of the WebSocket connection is not Open.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.SendTo(System.IO.Stream,System.Int32,System.String)">
-            <summary>
-            Sends the data from <paramref name="stream"/> to the client using
-            the specified session.
-            </summary>
-            <remarks>
-            The data is sent as the binary data.
-            </remarks>
-            <param name="stream">
-            A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="id"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="stream"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="id"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              The session could not be found.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The current state of the WebSocket connection is not Open.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.SendToAsync(System.Byte[],System.String,System.Action{System.Boolean})">
-            <summary>
-            Sends <paramref name="data"/> asynchronously to the client using
-            the specified session.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="id"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="data"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="id"/> is an empty string.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              The session could not be found.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The current state of the WebSocket connection is not Open.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.SendToAsync(System.String,System.String,System.Action{System.Boolean})">
-            <summary>
-            Sends <paramref name="data"/> asynchronously to the client using
-            the specified session.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="id"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="data"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="id"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="data"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              The session could not be found.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The current state of the WebSocket connection is not Open.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.SendToAsync(System.IO.Stream,System.Int32,System.String,System.Action{System.Boolean})">
-            <summary>
-            Sends the data from <paramref name="stream"/> asynchronously to
-            the client using the specified session.
-            </summary>
-            <remarks>
-              <para>
-              The data is sent as the binary data.
-              </para>
-              <para>
-              This method does not wait for the send to be complete.
-              </para>
-            </remarks>
-            <param name="stream">
-            A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-              <para>
-              <paramref name="id"/> is <see langword="null"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="stream"/> is <see langword="null"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="id"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              The session could not be found.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The current state of the WebSocket connection is not Open.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.Sweep">
-            <summary>
-            Cleans up the inactive sessions in the WebSocket service.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketSessionManager.TryGetSession(System.String,WebSocketSharp.Server.IWebSocketSession@)">
-            <summary>
-            Tries to get the session instance with <paramref name="id"/>.
-            </summary>
-            <returns>
-            <c>true</c> if the session is successfully found; otherwise,
-            <c>false</c>.
-            </returns>
-            <param name="id">
-            A <see cref="T:System.String"/> that represents the ID of the session to find.
-            </param>
-            <param name="session">
-              <para>
-              When this method returns, a <see cref="T:WebSocketSharp.Server.IWebSocketSession"/>
-              instance or <see langword="null"/> if not found.
-              </para>
-              <para>
-              The session instance provides the function to access
-              the information in the session.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="id"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="id"/> is an empty string.
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Server.WebSocketServiceManager">
-            <summary>
-            Provides the management function for the WebSocket services.
-            </summary>
-            <remarks>
-            This class manages the WebSocket services provided by
-            the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> or <see cref="T:WebSocketSharp.Server.HttpServer"/>.
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceManager.Count">
-            <summary>
-            Gets the number of the WebSocket services.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the number of the services.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceManager.Hosts">
-            <summary>
-            Gets the host instances for the WebSocket services.
-            </summary>
-            <value>
-              <para>
-              An <c>IEnumerable&lt;WebSocketServiceHost&gt;</c> instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the host instances.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceManager.Item(System.String)">
-            <summary>
-            Gets the host instance for a WebSocket service with the specified path.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Server.WebSocketServiceHost"/> instance or
-              <see langword="null"/> if not found.
-              </para>
-              <para>
-              The host instance provides the function to access
-              the information in the service.
-              </para>
-            </value>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to find.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is empty.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceManager.KeepClean">
-            <summary>
-            Gets or sets a value indicating whether the inactive sessions in
-            the WebSocket services are cleaned up periodically.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-            <c>true</c> if the inactive sessions are cleaned up every 60 seconds;
-            otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceManager.Paths">
-            <summary>
-            Gets the paths for the WebSocket services.
-            </summary>
-            <value>
-              <para>
-              An <c>IEnumerable&lt;string&gt;</c> instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the paths.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceManager.SessionCount">
-            <summary>
-            Gets the total number of the sessions in the WebSocket services.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the total number of
-            the sessions in the services.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketServiceManager.WaitTime">
-            <summary>
-            Gets or sets the time to wait for the response to the WebSocket Ping or
-            Close.
-            </summary>
-            <remarks>
-            The set operation does nothing if the server has already started or
-            it is shutting down.
-            </remarks>
-            <value>
-            A <see cref="T:System.TimeSpan"/> to wait for the response.
-            </value>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The value specified for a set operation is zero or less.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.AddService``1(System.String,System.Action{``0})">
-            <summary>
-            Adds a WebSocket service with the specified behavior, path,
-            and delegate.
-            </summary>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to add.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <param name="initializer">
-              <para>
-              An <c>Action&lt;TBehavior&gt;</c> delegate or
-              <see langword="null"/> if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when initializing
-              a new session instance for the service.
-              </para>
-            </param>
-            <typeparam name="TBehavior">
-              <para>
-              The type of the behavior for the service.
-              </para>
-              <para>
-              It must inherit the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-              </para>
-              <para>
-              And also, it must have a public parameterless constructor.
-              </para>
-            </typeparam>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is empty.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is already in use.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.Broadcast(System.Byte[])">
-            <summary>
-            Sends <paramref name="data"/> to every client in the WebSocket services.
-            </summary>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.Broadcast(System.String)">
-            <summary>
-            Sends <paramref name="data"/> to every client in the WebSocket services.
-            </summary>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.BroadcastAsync(System.Byte[],System.Action)">
-            <summary>
-            Sends <paramref name="data"/> asynchronously to every client in
-            the WebSocket services.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <see cref="T:System.Action"/> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.BroadcastAsync(System.String,System.Action)">
-            <summary>
-            Sends <paramref name="data"/> asynchronously to every client in
-            the WebSocket services.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <see cref="T:System.Action"/> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.BroadcastAsync(System.IO.Stream,System.Int32,System.Action)">
-            <summary>
-            Sends the data from <paramref name="stream"/> asynchronously to
-            every client in the WebSocket services.
-            </summary>
-            <remarks>
-              <para>
-              The data is sent as the binary data.
-              </para>
-              <para>
-              This method does not wait for the send to be complete.
-              </para>
-            </remarks>
-            <param name="stream">
-            A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <see cref="T:System.Action"/> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="stream"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.Broadping">
-            <summary>
-            Sends a ping to every client in the WebSocket services.
-            </summary>
-            <returns>
-              <para>
-              A <c>Dictionary&lt;string, Dictionary&lt;string, bool&gt;&gt;</c>.
-              </para>
-              <para>
-              It represents a collection of pairs of a service path and another
-              collection of pairs of a session ID and a value indicating whether
-              a pong has been received from the client within a time.
-              </para>
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.Broadping(System.String)">
-            <summary>
-            Sends a ping with <paramref name="message"/> to every client in
-            the WebSocket services.
-            </summary>
-            <returns>
-              <para>
-              A <c>Dictionary&lt;string, Dictionary&lt;string, bool&gt;&gt;</c>.
-              </para>
-              <para>
-              It represents a collection of pairs of a service path and another
-              collection of pairs of a session ID and a value indicating whether
-              a pong has been received from the client within a time.
-              </para>
-            </returns>
-            <param name="message">
-              <para>
-              A <see cref="T:System.String"/> that represents the message to send.
-              </para>
-              <para>
-              The size must be 125 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the manager is not Start.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="message"/> could not be UTF-8-encoded.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="message"/> is greater than 125 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.Clear">
-            <summary>
-            Removes all WebSocket services managed by the manager.
-            </summary>
-            <remarks>
-            A service is stopped with close status 1001 (going away)
-            if it has already started.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.RemoveService(System.String)">
-            <summary>
-            Removes a WebSocket service with the specified path.
-            </summary>
-            <remarks>
-            The service is stopped with close status 1001 (going away)
-            if it has already started.
-            </remarks>
-            <returns>
-            <c>true</c> if the service is successfully found and removed;
-            otherwise, <c>false</c>.
-            </returns>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to remove.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is empty.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketServiceManager.TryGetServiceHost(System.String,WebSocketSharp.Server.WebSocketServiceHost@)">
-            <summary>
-            Tries to get the host instance for a WebSocket service with
-            the specified path.
-            </summary>
-            <returns>
-            <c>true</c> if the service is successfully found; otherwise,
-            <c>false</c>.
-            </returns>
-            <param name="path">
-              <para>
-              A <see cref="T:System.String"/> that represents an absolute path to
-              the service to find.
-              </para>
-              <para>
-              / is trimmed from the end of the string if present.
-              </para>
-            </param>
-            <param name="host">
-              <para>
-              When this method returns, a <see cref="T:WebSocketSharp.Server.WebSocketServiceHost"/>
-              instance or <see langword="null"/> if not found.
-              </para>
-              <para>
-              The host instance provides the function to access
-              the information in the service.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="path"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="path"/> is empty.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> is not an absolute path.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="path"/> includes either or both
-              query and fragment components.
-              </para>
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Server.WebSocketBehavior">
-            <summary>
-            Exposes a set of methods and properties used to define the behavior of
-            a WebSocket service provided by the <see cref="T:WebSocketSharp.Server.WebSocketServer"/> or
-            <see cref="T:WebSocketSharp.Server.HttpServer"/>.
-            </summary>
-            <remarks>
-            This class is an abstract class.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Server.WebSocketBehavior"/> class.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.Headers">
-            <summary>
-            Gets the HTTP headers included in a WebSocket handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the headers.
-              </para>
-              <para>
-              <see langword="null"/> if the session has not started yet.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.Log">
-            <summary>
-            Gets the logging function.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Logger"/> that provides the logging function.
-              </para>
-              <para>
-              <see langword="null"/> if the session has not started yet.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.QueryString">
-            <summary>
-            Gets the query string included in a WebSocket handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the query
-              parameters.
-              </para>
-              <para>
-              An empty collection if not included.
-              </para>
-              <para>
-              <see langword="null"/> if the session has not started yet.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.Sessions">
-            <summary>
-            Gets the management function for the sessions in the service.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Server.WebSocketSessionManager"/> that manages the sessions in
-              the service.
-              </para>
-              <para>
-              <see langword="null"/> if the session has not started yet.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.ConnectionState">
-            <summary>
-            Gets the current state of the WebSocket connection for a session.
-            </summary>
-            <value>
-              <para>
-              One of the <see cref="T:WebSocketSharp.WebSocketState"/> enum values.
-              </para>
-              <para>
-              It indicates the current state of the connection.
-              </para>
-              <para>
-              <see cref="F:WebSocketSharp.WebSocketState.Connecting"/> if the session has not
-              started yet.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.Context">
-            <summary>
-            Gets the information in a WebSocket handshake request to the service.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Net.WebSockets.WebSocketContext"/> instance that provides the access to
-              the information in the handshake request.
-              </para>
-              <para>
-              <see langword="null"/> if the session has not started yet.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.CookiesValidator">
-            <summary>
-            Gets or sets the delegate used to validate the HTTP cookies included in
-            a WebSocket handshake request to the service.
-            </summary>
-            <value>
-              <para>
-              A <c>Func&lt;CookieCollection, CookieCollection, bool&gt;</c> delegate
-              or <see langword="null"/> if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the WebSocket instance
-              for a session validates the handshake request.
-              </para>
-              <para>
-              1st <see cref="T:WebSocketSharp.Net.CookieCollection"/> parameter passed to the method
-              contains the cookies to validate if present.
-              </para>
-              <para>
-              2nd <see cref="T:WebSocketSharp.Net.CookieCollection"/> parameter passed to the method
-              receives the cookies to send to the client.
-              </para>
-              <para>
-              The method must return <c>true</c> if the cookies are valid.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.EmitOnPing">
-            <summary>
-            Gets or sets a value indicating whether the WebSocket instance for
-            a session emits the message event when receives a ping.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the WebSocket instance emits the message event
-              when receives a ping; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.ID">
-            <summary>
-            Gets the unique ID of a session.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the unique ID of the session.
-              </para>
-              <para>
-              <see langword="null"/> if the session has not started yet.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.IgnoreExtensions">
-            <summary>
-            Gets or sets a value indicating whether the service ignores
-            the Sec-WebSocket-Extensions header included in a WebSocket
-            handshake request.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the service ignores the extensions requested
-              from a client; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.OriginValidator">
-            <summary>
-            Gets or sets the delegate used to validate the Origin header included in
-            a WebSocket handshake request to the service.
-            </summary>
-            <value>
-              <para>
-              A <c>Func&lt;string, bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the WebSocket instance
-              for a session validates the handshake request.
-              </para>
-              <para>
-              The <see cref="T:System.String"/> parameter passed to the method is the value
-              of the Origin header or <see langword="null"/> if the header is not
-              present.
-              </para>
-              <para>
-              The method must return <c>true</c> if the header value is valid.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.Protocol">
-            <summary>
-            Gets or sets the name of the WebSocket subprotocol for the service.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the name of the subprotocol.
-              </para>
-              <para>
-              The value specified for a set must be a token defined in
-              <see href="http://tools.ietf.org/html/rfc2616#section-2.2">
-              RFC 2616</see>.
-              </para>
-              <para>
-              The default value is an empty string.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The set operation is not available if the session has already started.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The value specified for a set operation is not a token.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Server.WebSocketBehavior.StartTime">
-            <summary>
-            Gets the time that a session has started.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.DateTime"/> that represents the time that the session
-              has started.
-              </para>
-              <para>
-              <see cref="F:System.DateTime.MaxValue"/> if the session has not started yet.
-              </para>
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Close">
-            <summary>
-            Closes the WebSocket connection for a session.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-            The session has not started yet.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Close(System.UInt16,System.String)">
-            <summary>
-            Closes the WebSocket connection for a session with the specified
-            code and reason.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The session has not started yet.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="code"/> is less than 1000 or greater than 4999.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The size of <paramref name="reason"/> is greater than 123 bytes.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1005 (no status) and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Close(WebSocketSharp.CloseStatusCode,System.String)">
-            <summary>
-            Closes the WebSocket connection for a session with the specified
-            code and reason.
-            </summary>
-            <remarks>
-            This method does nothing if the current state of the connection is
-            Closing or Closed.
-            </remarks>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The session has not started yet.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="reason"/> is greater than 123 bytes.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.NoStatus"/> and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.CloseAsync">
-            <summary>
-            Closes the WebSocket connection for a session asynchronously.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-            The session has not started yet.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.CloseAsync(System.UInt16,System.String)">
-            <summary>
-            Closes the WebSocket connection for a session asynchronously with
-            the specified code and reason.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-            <param name="code">
-              <para>
-              A <see cref="T:System.UInt16"/> that represents the status code indicating
-              the reason for the close.
-              </para>
-              <para>
-              The status codes are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The session has not started yet.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-              <para>
-              <paramref name="code"/> is less than 1000 or greater than 4999.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The size of <paramref name="reason"/> is greater than 123 bytes.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is 1010 (mandatory extension).
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is 1005 (no status) and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.CloseAsync(WebSocketSharp.CloseStatusCode,System.String)">
-            <summary>
-            Closes the WebSocket connection for a session asynchronously with
-            the specified code and reason.
-            </summary>
-            <remarks>
-              <para>
-              This method does not wait for the close to be complete.
-              </para>
-              <para>
-              This method does nothing if the current state of the connection is
-              Closing or Closed.
-              </para>
-            </remarks>
-            <param name="code">
-              <para>
-              One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values.
-              </para>
-              <para>
-              It represents the status code indicating the reason for the close.
-              </para>
-            </param>
-            <param name="reason">
-              <para>
-              A <see cref="T:System.String"/> that represents the reason for the close.
-              </para>
-              <para>
-              The size must be 123 bytes or less in UTF-8.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The session has not started yet.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.MandatoryExtension"/>.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="code"/> is
-              <see cref="F:WebSocketSharp.CloseStatusCode.NoStatus"/> and there is reason.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="reason"/> could not be UTF-8-encoded.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The size of <paramref name="reason"/> is greater than 123 bytes.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Error(System.String,System.Exception)">
-            <summary>
-            Calls the <see cref="M:WebSocketSharp.Server.WebSocketBehavior.OnError(WebSocketSharp.ErrorEventArgs)"/> method with the specified message.
-            </summary>
-            <param name="message">
-            A <see cref="T:System.String"/> that represents the error message.
-            </param>
-            <param name="exception">
-            An <see cref="T:System.Exception"/> instance that represents the cause of
-            the error if present.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="message"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="message"/> is an empty string.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.OnClose(WebSocketSharp.CloseEventArgs)">
-            <summary>
-            Called when the WebSocket connection for a session has been closed.
-            </summary>
-            <param name="e">
-            A <see cref="T:WebSocketSharp.CloseEventArgs"/> that represents the event data passed
-            from a <see cref="E:WebSocketSharp.WebSocket.OnClose"/> event.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.OnError(WebSocketSharp.ErrorEventArgs)">
-            <summary>
-            Called when the WebSocket instance for a session gets an error.
-            </summary>
-            <param name="e">
-            A <see cref="T:WebSocketSharp.ErrorEventArgs"/> that represents the event data passed
-            from a <see cref="E:WebSocketSharp.WebSocket.OnError"/> event.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.OnMessage(WebSocketSharp.MessageEventArgs)">
-            <summary>
-            Called when the WebSocket instance for a session receives a message.
-            </summary>
-            <param name="e">
-            A <see cref="T:WebSocketSharp.MessageEventArgs"/> that represents the event data passed
-            from a <see cref="E:WebSocketSharp.WebSocket.OnMessage"/> event.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.OnOpen">
-            <summary>
-            Called when the WebSocket connection for a session has been established.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Send(System.Byte[])">
-            <summary>
-            Sends the specified data to a client using the WebSocket connection.
-            </summary>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Send(System.IO.FileInfo)">
-            <summary>
-            Sends the specified file to a client using the WebSocket connection.
-            </summary>
-            <param name="fileInfo">
-              <para>
-              A <see cref="T:System.IO.FileInfo"/> that specifies the file to send.
-              </para>
-              <para>
-              The file is sent as the binary data.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="fileInfo"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The file does not exist.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The file could not be opened.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Send(System.String)">
-            <summary>
-            Sends the specified data to a client using the WebSocket connection.
-            </summary>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.Send(System.IO.Stream,System.Int32)">
-            <summary>
-            Sends the data from the specified stream to a client using
-            the WebSocket connection.
-            </summary>
-            <param name="stream">
-              <para>
-              A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-              </para>
-              <para>
-              The data is sent as the binary data.
-              </para>
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="stream"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.SendAsync(System.Byte[],System.Action{System.Boolean})">
-            <summary>
-            Sends the specified data to a client asynchronously using
-            the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            An array of <see cref="T:System.Byte"/> that represents the binary data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.SendAsync(System.IO.FileInfo,System.Action{System.Boolean})">
-            <summary>
-            Sends the specified file to a client asynchronously using
-            the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="fileInfo">
-              <para>
-              A <see cref="T:System.IO.FileInfo"/> that specifies the file to send.
-              </para>
-              <para>
-              The file is sent as the binary data.
-              </para>
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="fileInfo"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The file does not exist.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The file could not be opened.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.SendAsync(System.String,System.Action{System.Boolean})">
-            <summary>
-            Sends the specified data to a client asynchronously using
-            the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="data">
-            A <see cref="T:System.String"/> that represents the text data to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="data"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="data"/> could not be UTF-8-encoded.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Server.WebSocketBehavior.SendAsync(System.IO.Stream,System.Int32,System.Action{System.Boolean})">
-            <summary>
-            Sends the data from the specified stream to a client asynchronously
-            using the WebSocket connection.
-            </summary>
-            <remarks>
-            This method does not wait for the send to be complete.
-            </remarks>
-            <param name="stream">
-              <para>
-              A <see cref="T:System.IO.Stream"/> instance from which to read the data to send.
-              </para>
-              <para>
-              The data is sent as the binary data.
-              </para>
-            </param>
-            <param name="length">
-            An <see cref="T:System.Int32"/> that specifies the number of bytes to send.
-            </param>
-            <param name="completed">
-              <para>
-              An <c>Action&lt;bool&gt;</c> delegate or <see langword="null"/>
-              if not needed.
-              </para>
-              <para>
-              The delegate invokes the method called when the send is complete.
-              </para>
-              <para>
-              <c>true</c> is passed to the method if the send has done with
-              no error; otherwise, <c>false</c>.
-              </para>
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The current state of the connection is not Open.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="stream"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="stream"/> cannot be read.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="length"/> is less than 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              No data could be read from <paramref name="stream"/>.
-              </para>
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Net.AuthenticationSchemes">
-            <summary>
-            Specifies the scheme for authentication.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.AuthenticationSchemes.None">
-            <summary>
-            No authentication is allowed.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.AuthenticationSchemes.Digest">
-            <summary>
-            Specifies digest authentication.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.AuthenticationSchemes.Basic">
-            <summary>
-            Specifies basic authentication.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.AuthenticationSchemes.Anonymous">
-            <summary>
-            Specifies anonymous authentication.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Net.Cookie">
-            <summary>
-            Provides a set of methods and properties used to manage an HTTP cookie.
-            </summary>
-            <remarks>
-              <para>
-              This class refers to the following specifications:
-              </para>
-              <list type="bullet">
-                <item>
-                  <term>
-                  <see href="http://web.archive.org/web/20020803110822/http://wp.netscape.com/newsref/std/cookie_spec.html">Netscape specification</see>
-                  </term>
-                </item>
-                <item>
-                  <term>
-                  <see href="https://tools.ietf.org/html/rfc2109">RFC 2109</see>
-                  </term>
-                </item>
-                <item>
-                  <term>
-                  <see href="https://tools.ietf.org/html/rfc2965">RFC 2965</see>
-                  </term>
-                </item>
-                <item>
-                  <term>
-                  <see href="https://tools.ietf.org/html/rfc6265">RFC 6265</see>
-                  </term>
-                </item>
-              </list>
-              <para>
-              This class cannot be inherited.
-              </para>
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.Cookie"/> class.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.#ctor(System.String,System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.Cookie"/> class with
-            the specified name and value.
-            </summary>
-            <param name="name">
-              <para>
-              A <see cref="T:System.String"/> that specifies the name of the cookie.
-              </para>
-              <para>
-              The name must be a token defined in
-              <see href="http://tools.ietf.org/html/rfc2616#section-2.2">
-              RFC 2616</see>.
-              </para>
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the cookie.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="name"/> starts with a dollar sign.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="value"/> is a string not enclosed in double quotes
-              that contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.#ctor(System.String,System.String,System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.Cookie"/> class with
-            the specified name, value, and path.
-            </summary>
-            <param name="name">
-              <para>
-              A <see cref="T:System.String"/> that specifies the name of the cookie.
-              </para>
-              <para>
-              The name must be a token defined in
-              <see href="http://tools.ietf.org/html/rfc2616#section-2.2">
-              RFC 2616</see>.
-              </para>
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the cookie.
-            </param>
-            <param name="path">
-            A <see cref="T:System.String"/> that specifies the value of the Path
-            attribute of the cookie.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="name"/> starts with a dollar sign.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="value"/> is a string not enclosed in double quotes
-              that contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.#ctor(System.String,System.String,System.String,System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.Cookie"/> class with
-            the specified name, value, path, and domain.
-            </summary>
-            <param name="name">
-              <para>
-              A <see cref="T:System.String"/> that specifies the name of the cookie.
-              </para>
-              <para>
-              The name must be a token defined in
-              <see href="http://tools.ietf.org/html/rfc2616#section-2.2">
-              RFC 2616</see>.
-              </para>
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the cookie.
-            </param>
-            <param name="path">
-            A <see cref="T:System.String"/> that specifies the value of the Path
-            attribute of the cookie.
-            </param>
-            <param name="domain">
-            A <see cref="T:System.String"/> that specifies the value of the Domain
-            attribute of the cookie.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="name"/> starts with a dollar sign.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              <paramref name="value"/> is a string not enclosed in double quotes
-              that contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Comment">
-            <summary>
-            Gets the value of the Comment attribute of the cookie.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the comment to document
-              intended use of the cookie.
-              </para>
-              <para>
-              <see langword="null"/> if not present.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.CommentUri">
-            <summary>
-            Gets the value of the CommentURL attribute of the cookie.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Uri"/> that represents the URI that provides
-              the comment to document intended use of the cookie.
-              </para>
-              <para>
-              <see langword="null"/> if not present.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Discard">
-            <summary>
-            Gets a value indicating whether the client discards the cookie
-            unconditionally when the client terminates.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the client discards the cookie unconditionally
-              when the client terminates; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Domain">
-            <summary>
-            Gets or sets the value of the Domain attribute of the cookie.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the domain name that
-              the cookie is valid for.
-              </para>
-              <para>
-              An empty string if this attribute is not needed.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Expired">
-            <summary>
-            Gets or sets a value indicating whether the cookie has expired.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the cookie has expired; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Expires">
-            <summary>
-            Gets or sets the value of the Expires attribute of the cookie.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.DateTime"/> that represents the date and time that
-              the cookie expires on.
-              </para>
-              <para>
-              <see cref="F:System.DateTime.MinValue"/> if this attribute is not needed.
-              </para>
-              <para>
-              The default value is <see cref="F:System.DateTime.MinValue"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.HttpOnly">
-            <summary>
-            Gets or sets a value indicating whether non-HTTP APIs can access
-            the cookie.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if non-HTTP APIs cannot access the cookie; otherwise,
-              <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Name">
-            <summary>
-            Gets or sets the name of the cookie.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the name of the cookie.
-              </para>
-              <para>
-              The name must be a token defined in
-              <see href="http://tools.ietf.org/html/rfc2616#section-2.2">
-              RFC 2616</see>.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentNullException">
-            The value specified for a set operation is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The value specified for a set operation is an empty string.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              The value specified for a set operation starts with a dollar sign.
-              </para>
-              <para>
-              - or -
-              </para>
-              <para>
-              The value specified for a set operation contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Path">
-            <summary>
-            Gets or sets the value of the Path attribute of the cookie.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the subset of URI on
-            the origin server that the cookie applies to.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Port">
-            <summary>
-            Gets the value of the Port attribute of the cookie.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the list of TCP ports
-              that the cookie applies to.
-              </para>
-              <para>
-              <see langword="null"/> if not present.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Secure">
-            <summary>
-            Gets or sets a value indicating whether the security level of
-            the cookie is secure.
-            </summary>
-            <remarks>
-            When this property is <c>true</c>, the cookie may be included in
-            the request only if the request is transmitted over HTTPS.
-            </remarks>
-            <value>
-              <para>
-              <c>true</c> if the security level of the cookie is secure;
-              otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.TimeStamp">
-            <summary>
-            Gets the time when the cookie was issued.
-            </summary>
-            <value>
-            A <see cref="T:System.DateTime"/> that represents the time when
-            the cookie was issued.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Value">
-            <summary>
-            Gets or sets the value of the cookie.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the value of the cookie.
-            </value>
-            <exception cref="T:System.ArgumentException">
-            The value specified for a set operation is a string not enclosed in
-            double quotes that contains an invalid character.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.Cookie.Version">
-            <summary>
-            Gets the value of the Version attribute of the cookie.
-            </summary>
-            <value>
-              <para>
-              An <see cref="T:System.Int32"/> that represents the version of HTTP state
-              management that the cookie conforms to.
-              </para>
-              <para>
-              0 or 1. 0 if not present.
-              </para>
-              <para>
-              The default value is 0.
-              </para>
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.ToResponseString">
-            <summary>
-            Returns a string that represents the current cookie instance.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that is suitable for the Set-Cookie response
-            header.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.Equals(System.Object)">
-            <summary>
-            Determines whether the current cookie instance is equal to
-            the specified <see cref="T:System.Object"/> instance.
-            </summary>
-            <param name="comparand">
-              <para>
-              An <see cref="T:System.Object"/> instance to compare with
-              the current cookie instance.
-              </para>
-              <para>
-              An reference to a <see cref="T:WebSocketSharp.Net.Cookie"/> instance.
-              </para>
-            </param>
-            <returns>
-            <c>true</c> if the current cookie instance is equal to
-            <paramref name="comparand"/>; otherwise, <c>false</c>.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.GetHashCode">
-            <summary>
-            Gets a hash code for the current cookie instance.
-            </summary>
-            <returns>
-            An <see cref="T:System.Int32"/> that represents the hash code.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.Cookie.ToString">
-            <summary>
-            Returns a string that represents the current cookie instance.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that is suitable for the Cookie request header.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Net.CookieCollection">
-            <summary>
-            Provides a collection of instances of the <see cref="T:WebSocketSharp.Net.Cookie"/> class.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.CookieCollection"/> class.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.CookieCollection.Count">
-            <summary>
-            Gets the number of cookies in the collection.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the number of cookies in
-            the collection.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.CookieCollection.IsReadOnly">
-            <summary>
-            Gets a value indicating whether the collection is read-only.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the collection is read-only; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.CookieCollection.IsSynchronized">
-            <summary>
-            Gets a value indicating whether the access to the collection is
-            thread safe.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the access to the collection is thread safe;
-              otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.CookieCollection.Item(System.Int32)">
-            <summary>
-            Gets the cookie at the specified index from the collection.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.Cookie"/> at the specified index in the collection.
-            </value>
-            <param name="index">
-            An <see cref="T:System.Int32"/> that specifies the zero-based index of the cookie
-            to find.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="index"/> is out of allowable range for the collection.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.CookieCollection.Item(System.String)">
-            <summary>
-            Gets the cookie with the specified name from the collection.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Net.Cookie"/> with the specified name in the collection.
-              </para>
-              <para>
-              <see langword="null"/> if not found.
-              </para>
-            </value>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the cookie to find.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.CookieCollection.SyncRoot">
-            <summary>
-            Gets an object used to synchronize access to the collection.
-            </summary>
-            <value>
-            An <see cref="T:System.Object"/> used to synchronize access to the collection.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.Add(WebSocketSharp.Net.Cookie)">
-            <summary>
-            Adds the specified cookie to the collection.
-            </summary>
-            <param name="cookie">
-            A <see cref="T:WebSocketSharp.Net.Cookie"/> to add.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The collection is read-only.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="cookie"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.Add(WebSocketSharp.Net.CookieCollection)">
-            <summary>
-            Adds the specified cookies to the collection.
-            </summary>
-            <param name="cookies">
-            A <see cref="T:WebSocketSharp.Net.CookieCollection"/> that contains the cookies to add.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The collection is read-only.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="cookies"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.Clear">
-            <summary>
-            Removes all cookies from the collection.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The collection is read-only.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.Contains(WebSocketSharp.Net.Cookie)">
-            <summary>
-            Determines whether the collection contains the specified cookie.
-            </summary>
-            <returns>
-            <c>true</c> if the cookie is found in the collection; otherwise,
-            <c>false</c>.
-            </returns>
-            <param name="cookie">
-            A <see cref="T:WebSocketSharp.Net.Cookie"/> to find.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="cookie"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.CopyTo(WebSocketSharp.Net.Cookie[],System.Int32)">
-            <summary>
-            Copies the elements of the collection to the specified array,
-            starting at the specified index.
-            </summary>
-            <param name="array">
-            An array of <see cref="T:WebSocketSharp.Net.Cookie"/> that specifies the destination of
-            the elements copied from the collection.
-            </param>
-            <param name="index">
-            An <see cref="T:System.Int32"/> that specifies the zero-based index in
-            the array at which copying starts.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="array"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="index"/> is less than zero.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The space from <paramref name="index"/> to the end of
-            <paramref name="array"/> is not enough to copy to.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.GetEnumerator">
-            <summary>
-            Gets the enumerator that iterates through the collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.Generic.IEnumerator{Cookie}"/>
-            instance that can be used to iterate through the collection.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.Remove(WebSocketSharp.Net.Cookie)">
-            <summary>
-            Removes the specified cookie from the collection.
-            </summary>
-            <returns>
-              <para>
-              <c>true</c> if the cookie is successfully removed; otherwise,
-              <c>false</c>.
-              </para>
-              <para>
-              <c>false</c> if the cookie is not found in the collection.
-              </para>
-            </returns>
-            <param name="cookie">
-            A <see cref="T:WebSocketSharp.Net.Cookie"/> to remove.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-            The collection is read-only.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="cookie"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieCollection.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            Gets the enumerator that iterates through the collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.IEnumerator"/> instance that can be used to iterate
-            through the collection.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Net.CookieException">
-            <summary>
-            The exception that is thrown when a <see cref="T:WebSocketSharp.Net.Cookie"/> gets an error.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.CookieException"/> class
-            with the serialized data.
-            </summary>
-            <param name="serializationInfo">
-            A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.
-            </param>
-            <param name="streamingContext">
-            A <see cref="T:System.Runtime.Serialization.StreamingContext"/> that specifies the source for
-            the deserialization.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="serializationInfo"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieException.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.CookieException"/> class.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Populates the specified <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with
-            the data needed to serialize the current instance.
-            </summary>
-            <param name="serializationInfo">
-            A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.
-            </param>
-            <param name="streamingContext">
-            A <see cref="T:System.Runtime.Serialization.StreamingContext"/> that specifies the destination for
-            the serialization.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="serializationInfo"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.CookieException.System#Runtime#Serialization#ISerializable#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Populates the specified <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with
-            the data needed to serialize the current instance.
-            </summary>
-            <param name="serializationInfo">
-            A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data.
-            </param>
-            <param name="streamingContext">
-            A <see cref="T:System.Runtime.Serialization.StreamingContext"/> that specifies the destination for
-            the serialization.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="serializationInfo"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpListener">
-            <summary>
-            Provides a simple, programmatically controlled HTTP listener.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.HttpListener"/> class.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.AuthenticationSchemes">
-            <summary>
-            Gets or sets the scheme used to authenticate the clients.
-            </summary>
-            <value>
-            One of the <see cref="T:WebSocketSharp.Net.AuthenticationSchemes"/> enum values,
-            represents the scheme used to authenticate the clients. The default value is
-            <see cref="F:WebSocketSharp.Net.AuthenticationSchemes.Anonymous"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.AuthenticationSchemeSelector">
-            <summary>
-            Gets or sets the delegate called to select the scheme used to authenticate the clients.
-            </summary>
-            <remarks>
-            If you set this property, the listener uses the authentication scheme selected by
-            the delegate for each request. Or if you don't set, the listener uses the value of
-            the <see cref="P:WebSocketSharp.Net.HttpListener.AuthenticationSchemes"/> property as the authentication
-            scheme for all requests.
-            </remarks>
-            <value>
-            A <c>Func&lt;<see cref="T:WebSocketSharp.Net.HttpListenerRequest"/>, <see cref="P:WebSocketSharp.Net.HttpListener.AuthenticationSchemes"/>&gt;</c>
-            delegate that references the method used to select an authentication scheme. The default
-            value is <see langword="null"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.CertificateFolderPath">
-            <summary>
-            Gets or sets the path to the folder in which stores the certificate files used to
-            authenticate the server on the secure connection.
-            </summary>
-            <remarks>
-              <para>
-              This property represents the path to the folder in which stores the certificate files
-              associated with each port number of added URI prefixes. A set of the certificate files
-              is a pair of the <c>'port number'.cer</c> (DER) and <c>'port number'.key</c>
-              (DER, RSA Private Key).
-              </para>
-              <para>
-              If this property is <see langword="null"/> or empty, the result of
-              <c>System.Environment.GetFolderPath
-              (<see cref="F:System.Environment.SpecialFolder.ApplicationData"/>)</c> is used as the default path.
-              </para>
-            </remarks>
-            <value>
-            A <see cref="T:System.String"/> that represents the path to the folder in which stores
-            the certificate files. The default value is <see langword="null"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.IgnoreWriteExceptions">
-            <summary>
-            Gets or sets a value indicating whether the listener returns exceptions that occur when
-            sending the response to the client.
-            </summary>
-            <value>
-            <c>true</c> if the listener shouldn't return those exceptions; otherwise, <c>false</c>.
-            The default value is <c>false</c>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.IsListening">
-            <summary>
-            Gets a value indicating whether the listener has been started.
-            </summary>
-            <value>
-            <c>true</c> if the listener has been started; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.IsSupported">
-            <summary>
-            Gets a value indicating whether the listener can be used with the current operating system.
-            </summary>
-            <value>
-            <c>true</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.Log">
-            <summary>
-            Gets the logging functions.
-            </summary>
-            <remarks>
-            The default logging level is <see cref="F:WebSocketSharp.LogLevel.Error"/>. If you would like to change it,
-            you should set the <c>Log.Level</c> property to any of the <see cref="T:WebSocketSharp.LogLevel"/> enum
-            values.
-            </remarks>
-            <value>
-            A <see cref="T:WebSocketSharp.Logger"/> that provides the logging functions.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.Prefixes">
-            <summary>
-            Gets the URI prefixes handled by the listener.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.HttpListenerPrefixCollection"/> that contains the URI prefixes.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.Realm">
-            <summary>
-            Gets or sets the name of the realm associated with the listener.
-            </summary>
-            <remarks>
-            If this property is <see langword="null"/> or empty, <c>"SECRET AREA"</c> will be used as
-            the name of the realm.
-            </remarks>
-            <value>
-            A <see cref="T:System.String"/> that represents the name of the realm. The default value is
-            <see langword="null"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.SslConfiguration">
-            <summary>
-            Gets or sets the SSL configuration used to authenticate the server and
-            optionally the client for secure connection.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.ServerSslConfiguration"/> that represents the configuration used to
-            authenticate the server and optionally the client for secure connection.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.UnsafeConnectionNtlmAuthentication">
-            <summary>
-            Gets or sets a value indicating whether, when NTLM authentication is used,
-            the authentication information of first request is used to authenticate
-            additional requests on the same connection.
-            </summary>
-            <remarks>
-            This property isn't currently supported and always throws
-            a <see cref="T:System.NotSupportedException"/>.
-            </remarks>
-            <value>
-            <c>true</c> if the authentication information of first request is used;
-            otherwise, <c>false</c>.
-            </value>
-            <exception cref="T:System.NotSupportedException">
-            Any use of this property.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListener.UserCredentialsFinder">
-            <summary>
-            Gets or sets the delegate called to find the credentials for an identity used to
-            authenticate a client.
-            </summary>
-            <value>
-            A <c>Func&lt;<see cref="T:System.Security.Principal.IIdentity"/>, <see cref="T:WebSocketSharp.Net.NetworkCredential"/>&gt;</c> delegate
-            that references the method used to find the credentials. The default value is
-            <see langword="null"/>.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.Abort">
-            <summary>
-            Shuts down the listener immediately.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.BeginGetContext(System.AsyncCallback,System.Object)">
-            <summary>
-            Begins getting an incoming request asynchronously.
-            </summary>
-            <remarks>
-            This asynchronous operation must be completed by calling the <c>EndGetContext</c> method.
-            Typically, the method is invoked by the <paramref name="callback"/> delegate.
-            </remarks>
-            <returns>
-            An <see cref="T:System.IAsyncResult"/> that represents the status of the asynchronous operation.
-            </returns>
-            <param name="callback">
-            An <see cref="T:System.AsyncCallback"/> delegate that references the method to invoke when
-            the asynchronous operation completes.
-            </param>
-            <param name="state">
-            An <see cref="T:System.Object"/> that represents a user defined object to pass to
-            the <paramref name="callback"/> delegate.
-            </param>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              This listener has no URI prefix on which listens.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              This listener hasn't been started, or is currently stopped.
-              </para>
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.Close">
-            <summary>
-            Shuts down the listener.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.EndGetContext(System.IAsyncResult)">
-            <summary>
-            Ends an asynchronous operation to get an incoming request.
-            </summary>
-            <remarks>
-            This method completes an asynchronous operation started by calling
-            the <c>BeginGetContext</c> method.
-            </remarks>
-            <returns>
-            A <see cref="T:WebSocketSharp.Net.HttpListenerContext"/> that represents a request.
-            </returns>
-            <param name="asyncResult">
-            An <see cref="T:System.IAsyncResult"/> obtained by calling the <c>BeginGetContext</c> method.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="asyncResult"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="asyncResult"/> wasn't obtained by calling the <c>BeginGetContext</c> method.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This method was already called for the specified <paramref name="asyncResult"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.GetContext">
-            <summary>
-            Gets an incoming request.
-            </summary>
-            <remarks>
-            This method waits for an incoming request, and returns when a request is received.
-            </remarks>
-            <returns>
-            A <see cref="T:WebSocketSharp.Net.HttpListenerContext"/> that represents a request.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-              <para>
-              This listener has no URI prefix on which listens.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              This listener hasn't been started, or is currently stopped.
-              </para>
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.Start">
-            <summary>
-            Starts receiving incoming requests.
-            </summary>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.Stop">
-            <summary>
-            Stops receiving incoming requests.
-            </summary>
-            <exception cref="T:System.ObjectDisposedException">
-            This listener has been closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListener.System#IDisposable#Dispose">
-            <summary>
-            Releases all resources used by the listener.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpListenerContext">
-            <summary>
-            Provides the access to the HTTP request and response objects used by
-            the <see cref="T:WebSocketSharp.Net.HttpListener"/> class.
-            </summary>
-            <remarks>
-            This class cannot be inherited.
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerContext.Request">
-            <summary>
-            Gets the HTTP request object that represents a client request.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.HttpListenerRequest"/> that represents the client request.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerContext.Response">
-            <summary>
-            Gets the HTTP response object used to send a response to the client.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.HttpListenerResponse"/> that represents a response to
-            the client request.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerContext.User">
-            <summary>
-            Gets the client information (identity, authentication, and security roles).
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Security.Principal.IPrincipal"/> instance or <see langword="null"/> if not
-              authenticated.
-              </para>
-              <para>
-              The instance describes the client.
-              </para>
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerContext.AcceptWebSocket(System.String)">
-            <summary>
-            Accepts a WebSocket handshake request.
-            </summary>
-            <returns>
-            A <see cref="T:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext"/> that represents
-            the WebSocket handshake request.
-            </returns>
-            <param name="protocol">
-            A <see cref="T:System.String"/> that specifies the subprotocol supported on
-            the WebSocket connection.
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="protocol"/> is empty.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="protocol"/> contains an invalid character.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This method has already been called.
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpListenerException">
-            <summary>
-            The exception that is thrown when a <see cref="T:WebSocketSharp.Net.HttpListener"/> gets an error
-            processing an HTTP request.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.HttpListenerException"/> class from
-            the specified <see cref="T:System.Runtime.Serialization.SerializationInfo"/> and <see cref="T:System.Runtime.Serialization.StreamingContext"/>.
-            </summary>
-            <param name="serializationInfo">
-            A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that contains the serialized object data.
-            </param>
-            <param name="streamingContext">
-            A <see cref="T:System.Runtime.Serialization.StreamingContext"/> that specifies the source for the deserialization.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerException.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.HttpListenerException"/> class.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerException.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.HttpListenerException"/> class
-            with the specified <paramref name="errorCode"/>.
-            </summary>
-            <param name="errorCode">
-            An <see cref="T:System.Int32"/> that identifies the error.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerException.#ctor(System.Int32,System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.HttpListenerException"/> class
-            with the specified <paramref name="errorCode"/> and <paramref name="message"/>.
-            </summary>
-            <param name="errorCode">
-            An <see cref="T:System.Int32"/> that identifies the error.
-            </param>
-            <param name="message">
-            A <see cref="T:System.String"/> that describes the error.
-            </param>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerException.ErrorCode">
-            <summary>
-            Gets the error code that identifies the error that occurred.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that identifies the error.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpListenerPrefixCollection">
-            <summary>
-            Provides a collection used to store the URI prefixes for a instance of
-            the <see cref="T:WebSocketSharp.Net.HttpListener"/> class.
-            </summary>
-            <remarks>
-            The <see cref="T:WebSocketSharp.Net.HttpListener"/> instance responds to the request which has
-            a requested URI that the prefixes most closely match.
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerPrefixCollection.Count">
-            <summary>
-            Gets the number of prefixes in the collection.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the number of prefixes.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerPrefixCollection.IsReadOnly">
-            <summary>
-            Gets a value indicating whether the access to the collection is
-            read-only.
-            </summary>
-            <value>
-            Always returns <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerPrefixCollection.IsSynchronized">
-            <summary>
-            Gets a value indicating whether the access to the collection is
-            synchronized.
-            </summary>
-            <value>
-            Always returns <c>false</c>.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefixCollection.Add(System.String)">
-            <summary>
-            Adds the specified URI prefix to the collection.
-            </summary>
-            <param name="uriPrefix">
-              <para>
-              A <see cref="T:System.String"/> that specifies the URI prefix to add.
-              </para>
-              <para>
-              It must be a well-formed URI prefix with http or https scheme,
-              and must end with a '/'.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="uriPrefix"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="uriPrefix"/> is invalid.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:WebSocketSharp.Net.HttpListener"/> instance associated with this
-            collection is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefixCollection.Clear">
-            <summary>
-            Removes all URI prefixes from the collection.
-            </summary>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:WebSocketSharp.Net.HttpListener"/> instance associated with this
-            collection is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefixCollection.Contains(System.String)">
-            <summary>
-            Returns a value indicating whether the collection contains the
-            specified URI prefix.
-            </summary>
-            <returns>
-            <c>true</c> if the collection contains the URI prefix; otherwise,
-            <c>false</c>.
-            </returns>
-            <param name="uriPrefix">
-            A <see cref="T:System.String"/> that specifies the URI prefix to test.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="uriPrefix"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:WebSocketSharp.Net.HttpListener"/> instance associated with this
-            collection is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefixCollection.CopyTo(System.String[],System.Int32)">
-            <summary>
-            Copies the contents of the collection to the specified array of string.
-            </summary>
-            <param name="array">
-            An array of <see cref="T:System.String"/> that specifies the destination of
-            the URI prefix strings copied from the collection.
-            </param>
-            <param name="offset">
-            An <see cref="T:System.Int32"/> that specifies the zero-based index in
-            the array at which copying begins.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="array"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="offset"/> is less than zero.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The space from <paramref name="offset"/> to the end of
-            <paramref name="array"/> is not enough to copy to.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:WebSocketSharp.Net.HttpListener"/> instance associated with this
-            collection is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefixCollection.GetEnumerator">
-            <summary>
-            Gets the enumerator that iterates through the collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.Generic.IEnumerator{string}"/>
-            instance that can be used to iterate through the collection.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefixCollection.Remove(System.String)">
-            <summary>
-            Removes the specified URI prefix from the collection.
-            </summary>
-            <returns>
-            <c>true</c> if the URI prefix is successfully removed; otherwise,
-            <c>false</c>.
-            </returns>
-            <param name="uriPrefix">
-            A <see cref="T:System.String"/> that specifies the URI prefix to remove.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="uriPrefix"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:WebSocketSharp.Net.HttpListener"/> instance associated with this
-            collection is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefixCollection.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            Gets the enumerator that iterates through the collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.IEnumerator"/> instance that can be used to iterate
-            through the collection.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpListenerRequest">
-            <summary>
-            Represents an incoming HTTP request to a <see cref="T:WebSocketSharp.Net.HttpListener"/>
-            instance.
-            </summary>
-            <remarks>
-            This class cannot be inherited.
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.AcceptTypes">
-            <summary>
-            Gets the media types that are acceptable for the client.
-            </summary>
-            <value>
-              <para>
-              An array of <see cref="T:System.String"/> that contains the names of the media
-              types specified in the value of the Accept header.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.ClientCertificateError">
-            <summary>
-            Gets an error code that identifies a problem with the certificate
-            provided by the client.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents an error code.
-            </value>
-            <exception cref="T:System.NotSupportedException">
-            This property is not supported.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.ContentEncoding">
-            <summary>
-            Gets the encoding for the entity body data included in the request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Text.Encoding"/> converted from the charset value of the
-              Content-Type header.
-              </para>
-              <para>
-              <see cref="P:System.Text.Encoding.UTF8"/> if the charset value is not available.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.ContentLength64">
-            <summary>
-            Gets the length in bytes of the entity body data included in the
-            request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Int64"/> converted from the value of the Content-Length
-              header.
-              </para>
-              <para>
-              -1 if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.ContentType">
-            <summary>
-            Gets the media type of the entity body data included in the request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of the Content-Type
-              header.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.Cookies">
-            <summary>
-            Gets the cookies included in the request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Net.CookieCollection"/> that contains the cookies.
-              </para>
-              <para>
-              An empty collection if not included.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.HasEntityBody">
-            <summary>
-            Gets a value indicating whether the request has the entity body data.
-            </summary>
-            <value>
-            <c>true</c> if the request has the entity body data; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.Headers">
-            <summary>
-            Gets the headers included in the request.
-            </summary>
-            <value>
-            A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the headers.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.HttpMethod">
-            <summary>
-            Gets the HTTP method specified by the client.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the HTTP method specified in
-            the request line.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.InputStream">
-            <summary>
-            Gets a stream that contains the entity body data included in
-            the request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.IO.Stream"/> that contains the entity body data.
-              </para>
-              <para>
-              <see cref="F:System.IO.Stream.Null"/> if the entity body data is not available.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.IsAuthenticated">
-            <summary>
-            Gets a value indicating whether the client is authenticated.
-            </summary>
-            <value>
-            <c>true</c> if the client is authenticated; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.IsLocal">
-            <summary>
-            Gets a value indicating whether the request is sent from the local
-            computer.
-            </summary>
-            <value>
-            <c>true</c> if the request is sent from the same computer as the server;
-            otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.IsSecureConnection">
-            <summary>
-            Gets a value indicating whether a secure connection is used to send
-            the request.
-            </summary>
-            <value>
-            <c>true</c> if the connection is secure; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.IsWebSocketRequest">
-            <summary>
-            Gets a value indicating whether the request is a WebSocket handshake
-            request.
-            </summary>
-            <value>
-            <c>true</c> if the request is a WebSocket handshake request; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.KeepAlive">
-            <summary>
-            Gets a value indicating whether a persistent connection is requested.
-            </summary>
-            <value>
-            <c>true</c> if the request specifies that the connection is kept open;
-            otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.LocalEndPoint">
-            <summary>
-            Gets the endpoint to which the request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the server IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.ProtocolVersion">
-            <summary>
-            Gets the HTTP version specified by the client.
-            </summary>
-            <value>
-            A <see cref="T:System.Version"/> that represents the HTTP version specified in
-            the request line.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.QueryString">
-            <summary>
-            Gets the query string included in the request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the query
-              parameters.
-              </para>
-              <para>
-              An empty collection if not included.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.RawUrl">
-            <summary>
-            Gets the raw URL specified by the client.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the request target specified in
-            the request line.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.RemoteEndPoint">
-            <summary>
-            Gets the endpoint from which the request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the client IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.RequestTraceIdentifier">
-            <summary>
-            Gets the trace identifier of the request.
-            </summary>
-            <value>
-            A <see cref="T:System.Guid"/> that represents the trace identifier.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.Url">
-            <summary>
-            Gets the URL requested by the client.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Uri"/> that represents the URL parsed from the request.
-              </para>
-              <para>
-              <see langword="null"/> if the URL cannot be parsed.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.UrlReferrer">
-            <summary>
-            Gets the URI of the resource from which the requested URL was obtained.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Uri"/> converted from the value of the Referer header.
-              </para>
-              <para>
-              <see langword="null"/> if the header value is not available.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.UserAgent">
-            <summary>
-            Gets the user agent from which the request is originated.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of the User-Agent
-              header.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.UserHostAddress">
-            <summary>
-            Gets the IP address and port number to which the request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the server IP address and port
-            number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.UserHostName">
-            <summary>
-            Gets the server host name requested by the client.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of the Host header.
-              </para>
-              <para>
-              It includes the port number if provided.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerRequest.UserLanguages">
-            <summary>
-            Gets the natural languages that are acceptable for the client.
-            </summary>
-            <value>
-              <para>
-              An array of <see cref="T:System.String"/> that contains the names of the
-              natural languages specified in the value of the Accept-Language
-              header.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerRequest.BeginGetClientCertificate(System.AsyncCallback,System.Object)">
-            <summary>
-            Begins getting the certificate provided by the client asynchronously.
-            </summary>
-            <returns>
-            An <see cref="T:System.IAsyncResult"/> instance that indicates the status of the
-            operation.
-            </returns>
-            <param name="requestCallback">
-            An <see cref="T:System.AsyncCallback"/> delegate that invokes the method called
-            when the operation is complete.
-            </param>
-            <param name="state">
-            An <see cref="T:System.Object"/> that represents a user defined object to pass to
-            the callback delegate.
-            </param>
-            <exception cref="T:System.NotSupportedException">
-            This method is not supported.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerRequest.EndGetClientCertificate(System.IAsyncResult)">
-            <summary>
-            Ends an asynchronous operation to get the certificate provided by the
-            client.
-            </summary>
-            <returns>
-            A <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"/> that represents an X.509 certificate
-            provided by the client.
-            </returns>
-            <param name="asyncResult">
-            An <see cref="T:System.IAsyncResult"/> instance returned when the operation
-            started.
-            </param>
-            <exception cref="T:System.NotSupportedException">
-            This method is not supported.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerRequest.GetClientCertificate">
-            <summary>
-            Gets the certificate provided by the client.
-            </summary>
-            <returns>
-            A <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"/> that represents an X.509 certificate
-            provided by the client.
-            </returns>
-            <exception cref="T:System.NotSupportedException">
-            This method is not supported.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerRequest.ToString">
-            <summary>
-            Returns a string that represents the current instance.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that contains the request line and headers
-            included in the request.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpListenerResponse">
-            <summary>
-            Represents an HTTP response to an HTTP request received by
-            a <see cref="T:WebSocketSharp.Net.HttpListener"/> instance.
-            </summary>
-            <remarks>
-            This class cannot be inherited.
-            </remarks>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.ContentEncoding">
-            <summary>
-            Gets or sets the encoding for the entity body data included in
-            the response.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Text.Encoding"/> that represents the encoding for
-              the entity body data.
-              </para>
-              <para>
-              <see langword="null"/> if no encoding is specified.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.ContentLength64">
-            <summary>
-            Gets or sets the number of bytes in the entity body data included in
-            the response.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Int64"/> that represents the number of bytes in
-              the entity body data.
-              </para>
-              <para>
-              It is used for the value of the Content-Length header.
-              </para>
-              <para>
-              The default value is zero.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The value specified for a set operation is less than zero.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.ContentType">
-            <summary>
-            Gets or sets the media type of the entity body included in
-            the response.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the media type of
-              the entity body.
-              </para>
-              <para>
-              It is used for the value of the Content-Type header.
-              </para>
-              <para>
-              <see langword="null"/> if no media type is specified.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The value specified for a set operation is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The value specified for a set operation contains
-              an invalid character.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.Cookies">
-            <summary>
-            Gets or sets the collection of cookies sent with the response.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.CookieCollection"/> that contains the cookies sent with
-            the response.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.Headers">
-            <summary>
-            Gets or sets the collection of the HTTP headers sent to the client.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.WebHeaderCollection"/> that contains the headers sent to
-            the client.
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The value specified for a set operation is not valid for a response.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.KeepAlive">
-            <summary>
-            Gets or sets a value indicating whether the server requests
-            a persistent connection.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the server requests a persistent connection;
-              otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>true</c>.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.OutputStream">
-            <summary>
-            Gets a stream instance to which the entity body data can be written.
-            </summary>
-            <value>
-            A <see cref="T:System.IO.Stream"/> instance to which the entity body data can be
-            written.
-            </value>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.ProtocolVersion">
-            <summary>
-            Gets or sets the HTTP version used for the response.
-            </summary>
-            <value>
-            A <see cref="T:System.Version"/> that represents the HTTP version used for
-            the response.
-            </value>
-            <exception cref="T:System.ArgumentNullException">
-            The value specified for a set operation is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The value specified for a set operation does not have its Major
-              property set to 1.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The value specified for a set operation does not have its Minor
-              property set to either 0 or 1.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.RedirectLocation">
-            <summary>
-            Gets or sets the URL to which the client is redirected to locate
-            a requested resource.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the absolute URL for
-              the redirect location.
-              </para>
-              <para>
-              It is used for the value of the Location header.
-              </para>
-              <para>
-              <see langword="null"/> if no redirect location is specified.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              The value specified for a set operation is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The value specified for a set operation is not an absolute URL.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.SendChunked">
-            <summary>
-            Gets or sets a value indicating whether the response uses the chunked
-            transfer encoding.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the response uses the chunked transfer encoding;
-              otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.StatusCode">
-            <summary>
-            Gets or sets the HTTP status code returned to the client.
-            </summary>
-            <value>
-              <para>
-              An <see cref="T:System.Int32"/> that represents the HTTP status code for
-              the response to the request.
-              </para>
-              <para>
-              The default value is 200. It indicates that the request has
-              succeeded.
-              </para>
-            </value>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-            <exception cref="T:System.Net.ProtocolViolationException">
-              <para>
-              The value specified for a set operation is invalid.
-              </para>
-              <para>
-              Valid values are between 100 and 999 inclusive.
-              </para>
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpListenerResponse.StatusDescription">
-            <summary>
-            Gets or sets the description of the HTTP status code returned to
-            the client.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the description of
-              the HTTP status code for the response to the request.
-              </para>
-              <para>
-              The default value is
-              the <see href="http://tools.ietf.org/html/rfc2616#section-10">
-              RFC 2616</see> description for the <see cref="P:WebSocketSharp.Net.HttpListenerResponse.StatusCode"/>
-              property value.
-              </para>
-              <para>
-              An empty string if an RFC 2616 description does not exist.
-              </para>
-            </value>
-            <exception cref="T:System.ArgumentNullException">
-            The value specified for a set operation is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The value specified for a set operation contains an invalid character.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.Abort">
-            <summary>
-            Closes the connection to the client without sending a response.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.AppendCookie(WebSocketSharp.Net.Cookie)">
-            <summary>
-            Appends the specified cookie to the cookies sent with the response.
-            </summary>
-            <param name="cookie">
-            A <see cref="T:WebSocketSharp.Net.Cookie"/> to append.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="cookie"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.AppendHeader(System.String,System.String)">
-            <summary>
-            Appends an HTTP header with the specified name and value to
-            the headers for the response.
-            </summary>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the header to
-            append.
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the header to
-            append.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a restricted header name.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The current headers do not allow the header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.Close">
-            <summary>
-            Sends the response to the client and releases the resources used by
-            this instance.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.Close(System.Byte[],System.Boolean)">
-            <summary>
-            Sends the response with the specified entity body data to the client
-            and releases the resources used by this instance.
-            </summary>
-            <param name="responseEntity">
-            An array of <see cref="T:System.Byte"/> that contains the entity body data.
-            </param>
-            <param name="willBlock">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if this method blocks execution while
-            flushing the stream to the client; otherwise, <c>false</c>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="responseEntity"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.CopyFrom(WebSocketSharp.Net.HttpListenerResponse)">
-            <summary>
-            Copies some properties from the specified response instance to
-            this instance.
-            </summary>
-            <param name="templateResponse">
-            A <see cref="T:WebSocketSharp.Net.HttpListenerResponse"/> to copy.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="templateResponse"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.Redirect(System.String)">
-            <summary>
-            Configures the response to redirect the client's request to
-            the specified URL.
-            </summary>
-            <remarks>
-            This method sets the <see cref="P:WebSocketSharp.Net.HttpListenerResponse.RedirectLocation"/> property to
-            <paramref name="url"/>, the <see cref="P:WebSocketSharp.Net.HttpListenerResponse.StatusCode"/> property to
-            302, and the <see cref="P:WebSocketSharp.Net.HttpListenerResponse.StatusDescription"/> property to "Found".
-            </remarks>
-            <param name="url">
-            A <see cref="T:System.String"/> that specifies the absolute URL to which
-            the client is redirected to locate a requested resource.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="url"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="url"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="url"/> is not an absolute URL.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The response is already being sent.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            This instance is closed.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.SetCookie(WebSocketSharp.Net.Cookie)">
-            <summary>
-            Adds or updates a cookie in the cookies sent with the response.
-            </summary>
-            <param name="cookie">
-            A <see cref="T:WebSocketSharp.Net.Cookie"/> to set.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="cookie"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="cookie"/> already exists in the cookies but
-            it cannot be updated.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.SetHeader(System.String,System.String)">
-            <summary>
-            Adds or updates an HTTP header with the specified name and value in
-            the headers for the response.
-            </summary>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the header to set.
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the header to set.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a restricted header name.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The current headers do not allow the header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerResponse.System#IDisposable#Dispose">
-            <summary>
-            Releases all resources used by this instance.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpUtility.htmlEncode(System.String,System.Boolean)">
-            <summary>
-            Converts the specified string to an HTML-encoded string.
-            </summary>
-            <remarks>
-              <para>
-              This method starts encoding with a NCR from the character code 160
-              but does not stop at the character code 255.
-              </para>
-              <para>
-              One reason is the unicode characters &#65308; and &#65310; that
-              look like &lt; and &gt;.
-              </para>
-            </remarks>
-            <returns>
-            A <see cref="T:System.String"/> that represents an encoded string.
-            </returns>
-            <param name="s">
-            A <see cref="T:System.String"/> to encode.
-            </param>
-            <param name="minimal">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if encodes without a NCR;
-            otherwise, <c>false</c>.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpUtility.initEntities">
-            <summary>
-            Initializes the _entities field.
-            </summary>
-            <remarks>
-            This method builds a dictionary of HTML character entity references.
-            This dictionary comes from the HTML 4.01 W3C recommendation.
-            </remarks>
-        </member>
-        <member name="T:WebSocketSharp.Net.WebHeaderCollection">
-            <summary>
-            Provides a collection of the HTTP headers associated with a request or
-            response.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.WebHeaderCollection"/> class
-            from the specified instances of the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> and
-            <see cref="T:System.Runtime.Serialization.StreamingContext"/> classes.
-            </summary>
-            <param name="serializationInfo">
-            A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that contains the serialized
-            object data.
-            </param>
-            <param name="streamingContext">
-            A <see cref="T:System.Runtime.Serialization.StreamingContext"/> that specifies the source for
-            the deserialization.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="serializationInfo"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            An element with the specified name is not found in
-            <paramref name="serializationInfo"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.WebHeaderCollection"/>
-            class.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebHeaderCollection.AllKeys">
-            <summary>
-            Gets all header names in the collection.
-            </summary>
-            <value>
-            An array of <see cref="T:System.String"/> that contains all header names in
-            the collection.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebHeaderCollection.Count">
-            <summary>
-            Gets the number of headers in the collection.
-            </summary>
-            <value>
-            An <see cref="T:System.Int32"/> that represents the number of headers in
-            the collection.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebHeaderCollection.Item(WebSocketSharp.Net.HttpRequestHeader)">
-            <summary>
-            Gets or sets the specified request header.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the value of the request header.
-            </value>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpRequestHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the request header to get or set.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="header"/> is a restricted header.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the request header.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebHeaderCollection.Item(WebSocketSharp.Net.HttpResponseHeader)">
-            <summary>
-            Gets or sets the specified response header.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the value of the response header.
-            </value>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpResponseHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the response header to get or set.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="header"/> is a restricted header.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the response header.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebHeaderCollection.Keys">
-            <summary>
-            Gets a collection of header names in the collection.
-            </summary>
-            <value>
-            A <see cref="T:System.Collections.Specialized.NameObjectCollectionBase.KeysCollection"/> that contains
-            all header names in the collection.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.AddWithoutValidate(System.String,System.String)">
-            <summary>
-            Adds a header to the collection without checking if the header is on
-            the restricted header list.
-            </summary>
-            <param name="headerName">
-            A <see cref="T:System.String"/> that specifies the name of the header to add.
-            </param>
-            <param name="headerValue">
-            A <see cref="T:System.String"/> that specifies the value of the header to add.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="headerName"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="headerName"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="headerName"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="headerName"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="headerValue"/> contains an invalid character.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="headerValue"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Add(System.String)">
-            <summary>
-            Adds the specified header to the collection.
-            </summary>
-            <param name="header">
-            A <see cref="T:System.String"/> that specifies the header to add,
-            with the name and value separated by a colon character (':').
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="header"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="header"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="header"/> does not contain a colon character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The name part of <paramref name="header"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The name part of <paramref name="header"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The name part of <paramref name="header"/> contains an invalid
-              character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              The value part of <paramref name="header"/> contains an invalid
-              character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="header"/> is a restricted header.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of the value part of <paramref name="header"/> is greater
-            than 65,535 characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Add(WebSocketSharp.Net.HttpRequestHeader,System.String)">
-            <summary>
-            Adds the specified request header with the specified value to
-            the collection.
-            </summary>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpRequestHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the request header to add.
-              </para>
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the header to add.
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="header"/> is a restricted header.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the request header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Add(WebSocketSharp.Net.HttpResponseHeader,System.String)">
-            <summary>
-            Adds the specified response header with the specified value to
-            the collection.
-            </summary>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpResponseHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the response header to add.
-              </para>
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the header to add.
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="header"/> is a restricted header.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the response header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Add(System.String,System.String)">
-            <summary>
-            Adds a header with the specified name and value to the collection.
-            </summary>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the header to add.
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the header to add.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a restricted header name.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Clear">
-            <summary>
-            Removes all headers from the collection.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Get(System.Int32)">
-            <summary>
-            Get the value of the header at the specified index in the collection.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that receives the value of the header.
-            </returns>
-            <param name="index">
-            An <see cref="T:System.Int32"/> that specifies the zero-based index of the header
-            to find.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="index"/> is out of allowable range of indexes for
-            the collection.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Get(System.String)">
-            <summary>
-            Get the value of the header with the specified name in the collection.
-            </summary>
-            <returns>
-              <para>
-              A <see cref="T:System.String"/> that receives the value of the header.
-              </para>
-              <para>
-              <see langword="null"/> if not found.
-              </para>
-            </returns>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the header to find.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.GetEnumerator">
-            <summary>
-            Gets the enumerator used to iterate through the collection.
-            </summary>
-            <returns>
-            An <see cref="T:System.Collections.IEnumerator"/> instance used to iterate through
-            the collection.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.GetKey(System.Int32)">
-            <summary>
-            Get the name of the header at the specified index in the collection.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that receives the name of the header.
-            </returns>
-            <param name="index">
-            An <see cref="T:System.Int32"/> that specifies the zero-based index of the header
-            to find.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="index"/> is out of allowable range of indexes for
-            the collection.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.GetValues(System.Int32)">
-            <summary>
-            Get the values of the header at the specified index in the collection.
-            </summary>
-            <returns>
-              <para>
-              An array of <see cref="T:System.String"/> that receives the values of
-              the header.
-              </para>
-              <para>
-              <see langword="null"/> if not present.
-              </para>
-            </returns>
-            <param name="index">
-            An <see cref="T:System.Int32"/> that specifies the zero-based index of the header
-            to find.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="index"/> is out of allowable range of indexes for
-            the collection.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.GetValues(System.String)">
-            <summary>
-            Get the values of the header with the specified name in the collection.
-            </summary>
-            <returns>
-              <para>
-              An array of <see cref="T:System.String"/> that receives the values of
-              the header.
-              </para>
-              <para>
-              <see langword="null"/> if not present.
-              </para>
-            </returns>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the header to find.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data
-            needed to serialize this instance.
-            </summary>
-            <param name="serializationInfo">
-            A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with the data.
-            </param>
-            <param name="streamingContext">
-            A <see cref="T:System.Runtime.Serialization.StreamingContext"/> that specifies the destination for
-            the serialization.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="serializationInfo"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.IsRestricted(System.String)">
-            <summary>
-            Determines whether the specified HTTP header can be set for the request.
-            </summary>
-            <returns>
-            <c>true</c> if the header cannot be set; otherwise, <c>false</c>.
-            </returns>
-            <param name="headerName">
-            A <see cref="T:System.String"/> that specifies the name of the header to test.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="headerName"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="headerName"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="headerName"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="headerName"/> contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.IsRestricted(System.String,System.Boolean)">
-            <summary>
-            Determines whether the specified HTTP header can be set for the request
-            or the response.
-            </summary>
-            <returns>
-            <c>true</c> if the header cannot be set; otherwise, <c>false</c>.
-            </returns>
-            <param name="headerName">
-            A <see cref="T:System.String"/> that specifies the name of the header to test.
-            </param>
-            <param name="response">
-            A <see cref="T:System.Boolean"/>: <c>true</c> if the test is for the response;
-            otherwise, <c>false</c>.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="headerName"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="headerName"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="headerName"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="headerName"/> contains an invalid character.
-              </para>
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.OnDeserialization(System.Object)">
-            <summary>
-            Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and raises
-            the deserialization event when the deserialization is complete.
-            </summary>
-            <param name="sender">
-            An <see cref="T:System.Object"/> instance that represents the source of
-            the deserialization event.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Remove(WebSocketSharp.Net.HttpRequestHeader)">
-            <summary>
-            Removes the specified request header from the collection.
-            </summary>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpRequestHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the request header to remove.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="header"/> is a restricted header.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the request header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Remove(WebSocketSharp.Net.HttpResponseHeader)">
-            <summary>
-            Removes the specified response header from the collection.
-            </summary>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpResponseHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the response header to remove.
-              </para>
-            </param>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="header"/> is a restricted header.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the response header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Remove(System.String)">
-            <summary>
-            Removes the specified header from the collection.
-            </summary>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the header to remove.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a restricted header name.
-              </para>
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Set(WebSocketSharp.Net.HttpRequestHeader,System.String)">
-            <summary>
-            Sets the specified request header to the specified value.
-            </summary>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpRequestHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the request header to set.
-              </para>
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the request header
-            to set.
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="header"/> is a restricted header.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the request header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Set(WebSocketSharp.Net.HttpResponseHeader,System.String)">
-            <summary>
-            Sets the specified response header to the specified value.
-            </summary>
-            <param name="header">
-              <para>
-              One of the <see cref="T:WebSocketSharp.Net.HttpResponseHeader"/> enum values.
-              </para>
-              <para>
-              It specifies the response header to set.
-              </para>
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the response header
-            to set.
-            </param>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="header"/> is a restricted header.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the response header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.Set(System.String,System.String)">
-            <summary>
-            Sets the specified header to the specified value.
-            </summary>
-            <param name="name">
-            A <see cref="T:System.String"/> that specifies the name of the header to set.
-            </param>
-            <param name="value">
-            A <see cref="T:System.String"/> that specifies the value of the header to set.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="name"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-              <para>
-              <paramref name="name"/> is an empty string.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a string of spaces.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="value"/> contains an invalid character.
-              </para>
-              <para>
-              -or-
-              </para>
-              <para>
-              <paramref name="name"/> is a restricted header name.
-              </para>
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The length of <paramref name="value"/> is greater than 65,535
-            characters.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            This instance does not allow the header.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.ToByteArray">
-            <summary>
-            Converts the current instance to an array of byte.
-            </summary>
-            <returns>
-            An array of <see cref="T:System.Byte"/> converted from a string that represents
-            the current instance.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.ToString">
-            <summary>
-            Returns a string that represents the current instance.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that represents all headers in the collection.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebHeaderCollection.System#Runtime#Serialization#ISerializable#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance with the data
-            needed to serialize this instance.
-            </summary>
-            <param name="serializationInfo">
-            A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with the data.
-            </param>
-            <param name="streamingContext">
-            A <see cref="T:System.Runtime.Serialization.StreamingContext"/> that specifies the destination for
-            the serialization.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="serializationInfo"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpVersion">
-            <summary>
-            Provides the HTTP version numbers.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpVersion.Version10">
-            <summary>
-            Provides a <see cref="T:System.Version"/> instance for the HTTP/1.0.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpVersion.Version11">
-            <summary>
-            Provides a <see cref="T:System.Version"/> instance for the HTTP/1.1.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpVersion.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.HttpVersion"/> class.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpStatusCode">
-            <summary>
-            Indicates the HTTP status code that can be specified in a server response.
-            </summary>
-            <remarks>
-            The values of this enumeration are defined in
-            <see href="http://tools.ietf.org/html/rfc2616#section-10">RFC 2616</see>.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Continue">
-            <summary>
-            Equivalent to status code 100. Indicates that the client should continue
-            with its request.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.SwitchingProtocols">
-            <summary>
-            Equivalent to status code 101. Indicates that the server is switching
-            the HTTP version or protocol on the connection.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.OK">
-            <summary>
-            Equivalent to status code 200. Indicates that the client's request has
-            succeeded.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Created">
-            <summary>
-            Equivalent to status code 201. Indicates that the client's request has
-            been fulfilled and resulted in a new resource being created.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Accepted">
-            <summary>
-            Equivalent to status code 202. Indicates that the client's request has
-            been accepted for processing, but the processing has not been completed.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.NonAuthoritativeInformation">
-            <summary>
-            Equivalent to status code 203. Indicates that the returned metainformation
-            is from a local or a third-party copy instead of the origin server.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.NoContent">
-            <summary>
-            Equivalent to status code 204. Indicates that the server has fulfilled
-            the client's request but does not need to return an entity-body.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.ResetContent">
-            <summary>
-            Equivalent to status code 205. Indicates that the server has fulfilled
-            the client's request, and the user agent should reset the document view
-            which caused the request to be sent.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.PartialContent">
-            <summary>
-            Equivalent to status code 206. Indicates that the server has fulfilled
-            the partial GET request for the resource.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.MultipleChoices">
-            <summary>
-              <para>
-              Equivalent to status code 300. Indicates that the requested resource
-              corresponds to any of multiple representations.
-              </para>
-              <para>
-              MultipleChoices is a synonym for Ambiguous.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Ambiguous">
-            <summary>
-              <para>
-              Equivalent to status code 300. Indicates that the requested resource
-              corresponds to any of multiple representations.
-              </para>
-              <para>
-              Ambiguous is a synonym for MultipleChoices.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.MovedPermanently">
-            <summary>
-              <para>
-              Equivalent to status code 301. Indicates that the requested resource
-              has been assigned a new permanent URI and any future references to
-              this resource should use one of the returned URIs.
-              </para>
-              <para>
-              MovedPermanently is a synonym for Moved.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Moved">
-            <summary>
-              <para>
-              Equivalent to status code 301. Indicates that the requested resource
-              has been assigned a new permanent URI and any future references to
-              this resource should use one of the returned URIs.
-              </para>
-              <para>
-              Moved is a synonym for MovedPermanently.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Found">
-            <summary>
-              <para>
-              Equivalent to status code 302. Indicates that the requested resource
-              is located temporarily under a different URI.
-              </para>
-              <para>
-              Found is a synonym for Redirect.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Redirect">
-            <summary>
-              <para>
-              Equivalent to status code 302. Indicates that the requested resource
-              is located temporarily under a different URI.
-              </para>
-              <para>
-              Redirect is a synonym for Found.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.SeeOther">
-            <summary>
-              <para>
-              Equivalent to status code 303. Indicates that the response to
-              the request can be found under a different URI and should be
-              retrieved using a GET method on that resource.
-              </para>
-              <para>
-              SeeOther is a synonym for RedirectMethod.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.RedirectMethod">
-            <summary>
-              <para>
-              Equivalent to status code 303. Indicates that the response to
-              the request can be found under a different URI and should be
-              retrieved using a GET method on that resource.
-              </para>
-              <para>
-              RedirectMethod is a synonym for SeeOther.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.NotModified">
-            <summary>
-            Equivalent to status code 304. Indicates that the client has performed
-            a conditional GET request and access is allowed, but the document has
-            not been modified.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.UseProxy">
-            <summary>
-            Equivalent to status code 305. Indicates that the requested resource
-            must be accessed through the proxy given by the Location field.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Unused">
-            <summary>
-            Equivalent to status code 306. This status code was used in a previous
-            version of the specification, is no longer used, and is reserved for
-            future use.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.TemporaryRedirect">
-            <summary>
-              <para>
-              Equivalent to status code 307. Indicates that the requested resource
-              is located temporarily under a different URI.
-              </para>
-              <para>
-              TemporaryRedirect is a synonym for RedirectKeepVerb.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.RedirectKeepVerb">
-            <summary>
-              <para>
-              Equivalent to status code 307. Indicates that the requested resource
-              is located temporarily under a different URI.
-              </para>
-              <para>
-              RedirectKeepVerb is a synonym for TemporaryRedirect.
-              </para>
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.BadRequest">
-            <summary>
-            Equivalent to status code 400. Indicates that the client's request could
-            not be understood by the server due to malformed syntax.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Unauthorized">
-            <summary>
-            Equivalent to status code 401. Indicates that the client's request
-            requires user authentication.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.PaymentRequired">
-            <summary>
-            Equivalent to status code 402. This status code is reserved for future
-            use.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Forbidden">
-            <summary>
-            Equivalent to status code 403. Indicates that the server understood
-            the client's request but is refusing to fulfill it.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.NotFound">
-            <summary>
-            Equivalent to status code 404. Indicates that the server has not found
-            anything matching the request URI.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.MethodNotAllowed">
-            <summary>
-            Equivalent to status code 405. Indicates that the method specified
-            in the request line is not allowed for the resource identified by
-            the request URI.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.NotAcceptable">
-            <summary>
-            Equivalent to status code 406. Indicates that the server does not
-            have the appropriate resource to respond to the Accept headers in
-            the client's request.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.ProxyAuthenticationRequired">
-            <summary>
-            Equivalent to status code 407. Indicates that the client must first
-            authenticate itself with the proxy.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.RequestTimeout">
-            <summary>
-            Equivalent to status code 408. Indicates that the client did not produce
-            a request within the time that the server was prepared to wait.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Conflict">
-            <summary>
-            Equivalent to status code 409. Indicates that the client's request could
-            not be completed due to a conflict on the server.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.Gone">
-            <summary>
-            Equivalent to status code 410. Indicates that the requested resource is
-            no longer available at the server and no forwarding address is known.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.LengthRequired">
-            <summary>
-            Equivalent to status code 411. Indicates that the server refuses to
-            accept the client's request without a defined Content-Length.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.PreconditionFailed">
-            <summary>
-            Equivalent to status code 412. Indicates that the precondition given in
-            one or more of the request headers evaluated to false when it was tested
-            on the server.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.RequestEntityTooLarge">
-            <summary>
-            Equivalent to status code 413. Indicates that the entity of the client's
-            request is larger than the server is willing or able to process.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.RequestUriTooLong">
-            <summary>
-            Equivalent to status code 414. Indicates that the request URI is longer
-            than the server is willing to interpret.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.UnsupportedMediaType">
-            <summary>
-            Equivalent to status code 415. Indicates that the entity of the client's
-            request is in a format not supported by the requested resource for the
-            requested method.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.RequestedRangeNotSatisfiable">
-            <summary>
-            Equivalent to status code 416. Indicates that none of the range
-            specifier values in a Range request header overlap the current
-            extent of the selected resource.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.ExpectationFailed">
-            <summary>
-            Equivalent to status code 417. Indicates that the expectation given in
-            an Expect request header could not be met by the server.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.InternalServerError">
-            <summary>
-            Equivalent to status code 500. Indicates that the server encountered
-            an unexpected condition which prevented it from fulfilling the client's
-            request.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.NotImplemented">
-            <summary>
-            Equivalent to status code 501. Indicates that the server does not
-            support the functionality required to fulfill the client's request.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.BadGateway">
-            <summary>
-            Equivalent to status code 502. Indicates that a gateway or proxy server
-            received an invalid response from the upstream server.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.ServiceUnavailable">
-            <summary>
-            Equivalent to status code 503. Indicates that the server is currently
-            unable to handle the client's request due to a temporary overloading
-            or maintenance of the server.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.GatewayTimeout">
-            <summary>
-            Equivalent to status code 504. Indicates that a gateway or proxy server
-            did not receive a timely response from the upstream server or some other
-            auxiliary server.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpStatusCode.HttpVersionNotSupported">
-            <summary>
-            Equivalent to status code 505. Indicates that the server does not
-            support the HTTP version used in the client's request.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext">
-            <summary>
-            Provides the access to the information in a WebSocket handshake request to
-            a <see cref="T:WebSocketSharp.Net.HttpListener"/> instance.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.CookieCollection">
-            <summary>
-            Gets the HTTP cookies included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Net.CookieCollection"/> that contains
-              the cookies.
-              </para>
-              <para>
-              An empty collection if not included.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.Headers">
-            <summary>
-            Gets the HTTP headers included in the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the headers.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.Host">
-            <summary>
-            Gets the value of the Host header included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the server host name requested
-              by the client.
-              </para>
-              <para>
-              It includes the port number if provided.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.IsAuthenticated">
-            <summary>
-            Gets a value indicating whether the client is authenticated.
-            </summary>
-            <value>
-            <c>true</c> if the client is authenticated; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.IsLocal">
-            <summary>
-            Gets a value indicating whether the handshake request is sent from
-            the local computer.
-            </summary>
-            <value>
-            <c>true</c> if the handshake request is sent from the same computer
-            as the server; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.IsSecureConnection">
-            <summary>
-            Gets a value indicating whether a secure connection is used to send
-            the handshake request.
-            </summary>
-            <value>
-            <c>true</c> if the connection is secure; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.IsWebSocketRequest">
-            <summary>
-            Gets a value indicating whether the request is a WebSocket handshake
-            request.
-            </summary>
-            <value>
-            <c>true</c> if the request is a WebSocket handshake request; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.Origin">
-            <summary>
-            Gets the value of the Origin header included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of the Origin header.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.QueryString">
-            <summary>
-            Gets the query string included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the query
-              parameters.
-              </para>
-              <para>
-              An empty collection if not included.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.RequestUri">
-            <summary>
-            Gets the URI requested by the client.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Uri"/> that represents the URI parsed from the request.
-              </para>
-              <para>
-              <see langword="null"/> if the URI cannot be parsed.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.SecWebSocketKey">
-            <summary>
-            Gets the value of the Sec-WebSocket-Key header included in
-            the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of
-              the Sec-WebSocket-Key header.
-              </para>
-              <para>
-              The value is used to prove that the server received
-              a valid WebSocket handshake request.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.SecWebSocketProtocols">
-            <summary>
-            Gets the names of the subprotocols from the Sec-WebSocket-Protocol
-            header included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              An <see cref="T:System.Collections.Generic.IEnumerable{string}"/>
-              instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the names of the subprotocols.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.SecWebSocketVersion">
-            <summary>
-            Gets the value of the Sec-WebSocket-Version header included in
-            the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the WebSocket protocol
-              version specified by the client.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.ServerEndPoint">
-            <summary>
-            Gets the endpoint to which the handshake request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the server IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.User">
-            <summary>
-            Gets the client information.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Security.Principal.IPrincipal"/> instance that represents identity,
-              authentication, and security roles for the client.
-              </para>
-              <para>
-              <see langword="null"/> if the client is not authenticated.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.UserEndPoint">
-            <summary>
-            Gets the endpoint from which the handshake request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the client IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.WebSocket">
-            <summary>
-            Gets the WebSocket instance used for two-way communication between
-            the client and server.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.WebSocket"/>.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebSockets.HttpListenerWebSocketContext.ToString">
-            <summary>
-            Returns a string that represents the current instance.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that contains the request line and headers
-            included in the handshake request.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext">
-            <summary>
-            Provides the access to the information in a WebSocket handshake request to
-            a <see cref="T:System.Net.Sockets.TcpListener"/> instance.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.CookieCollection">
-            <summary>
-            Gets the HTTP cookies included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:WebSocketSharp.Net.CookieCollection"/> that contains
-              the cookies.
-              </para>
-              <para>
-              An empty collection if not included.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.Headers">
-            <summary>
-            Gets the HTTP headers included in the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the headers.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.Host">
-            <summary>
-            Gets the value of the Host header included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the server host name requested
-              by the client.
-              </para>
-              <para>
-              It includes the port number if provided.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.IsAuthenticated">
-            <summary>
-            Gets a value indicating whether the client is authenticated.
-            </summary>
-            <value>
-            <c>true</c> if the client is authenticated; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.IsLocal">
-            <summary>
-            Gets a value indicating whether the handshake request is sent from
-            the local computer.
-            </summary>
-            <value>
-            <c>true</c> if the handshake request is sent from the same computer
-            as the server; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.IsSecureConnection">
-            <summary>
-            Gets a value indicating whether a secure connection is used to send
-            the handshake request.
-            </summary>
-            <value>
-            <c>true</c> if the connection is secure; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.IsWebSocketRequest">
-            <summary>
-            Gets a value indicating whether the request is a WebSocket handshake
-            request.
-            </summary>
-            <value>
-            <c>true</c> if the request is a WebSocket handshake request; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.Origin">
-            <summary>
-            Gets the value of the Origin header included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of the Origin header.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.QueryString">
-            <summary>
-            Gets the query string included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the query
-              parameters.
-              </para>
-              <para>
-              An empty collection if not included.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.RequestUri">
-            <summary>
-            Gets the URI requested by the client.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Uri"/> that represents the URI parsed from the request.
-              </para>
-              <para>
-              <see langword="null"/> if the URI cannot be parsed.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.SecWebSocketKey">
-            <summary>
-            Gets the value of the Sec-WebSocket-Key header included in
-            the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of
-              the Sec-WebSocket-Key header.
-              </para>
-              <para>
-              The value is used to prove that the server received
-              a valid WebSocket handshake request.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.SecWebSocketProtocols">
-            <summary>
-            Gets the names of the subprotocols from the Sec-WebSocket-Protocol
-            header included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              An <see cref="T:System.Collections.Generic.IEnumerable{string}"/>
-              instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the names of the subprotocols.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.SecWebSocketVersion">
-            <summary>
-            Gets the value of the Sec-WebSocket-Version header included in
-            the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the WebSocket protocol
-              version specified by the client.
-              </para>
-              <para>
-              <see langword="null"/> if the header is not present.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.ServerEndPoint">
-            <summary>
-            Gets the endpoint to which the handshake request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the server IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.User">
-            <summary>
-            Gets the client information.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Security.Principal.IPrincipal"/> instance that represents identity,
-              authentication, and security roles for the client.
-              </para>
-              <para>
-              <see langword="null"/> if the client is not authenticated.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.UserEndPoint">
-            <summary>
-            Gets the endpoint from which the handshake request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the client IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.WebSocket">
-            <summary>
-            Gets the WebSocket instance used for two-way communication between
-            the client and server.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.WebSocket"/>.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext.ToString">
-            <summary>
-            Returns a string that represents the current instance.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that contains the request line and headers
-            included in the handshake request.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Net.WebSockets.WebSocketContext">
-            <summary>
-            Exposes the access to the information in a WebSocket handshake request.
-            </summary>
-            <remarks>
-            This class is an abstract class.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Net.WebSockets.WebSocketContext.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.WebSockets.WebSocketContext"/> class.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.CookieCollection">
-            <summary>
-            Gets the HTTP cookies included in the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.Net.CookieCollection"/> that contains
-            the cookies.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.Headers">
-            <summary>
-            Gets the HTTP headers included in the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the headers.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.Host">
-            <summary>
-            Gets the value of the Host header included in the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the server host name requested
-            by the client.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.IsAuthenticated">
-            <summary>
-            Gets a value indicating whether the client is authenticated.
-            </summary>
-            <value>
-            <c>true</c> if the client is authenticated; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.IsLocal">
-            <summary>
-            Gets a value indicating whether the handshake request is sent from
-            the local computer.
-            </summary>
-            <value>
-            <c>true</c> if the handshake request is sent from the same computer
-            as the server; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.IsSecureConnection">
-            <summary>
-            Gets a value indicating whether a secure connection is used to send
-            the handshake request.
-            </summary>
-            <value>
-            <c>true</c> if the connection is secure; otherwise, <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.IsWebSocketRequest">
-            <summary>
-            Gets a value indicating whether the request is a WebSocket handshake
-            request.
-            </summary>
-            <value>
-            <c>true</c> if the request is a WebSocket handshake request; otherwise,
-            <c>false</c>.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.Origin">
-            <summary>
-            Gets the value of the Origin header included in the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the value of the Origin header.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.QueryString">
-            <summary>
-            Gets the query string included in the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:System.Collections.Specialized.NameValueCollection"/> that contains the query parameters.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.RequestUri">
-            <summary>
-            Gets the URI requested by the client.
-            </summary>
-            <value>
-            A <see cref="T:System.Uri"/> that represents the URI parsed from the request.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.SecWebSocketKey">
-            <summary>
-            Gets the value of the Sec-WebSocket-Key header included in
-            the handshake request.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.String"/> that represents the value of
-              the Sec-WebSocket-Key header.
-              </para>
-              <para>
-              The value is used to prove that the server received
-              a valid WebSocket handshake request.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.SecWebSocketProtocols">
-            <summary>
-            Gets the names of the subprotocols from the Sec-WebSocket-Protocol
-            header included in the handshake request.
-            </summary>
-            <value>
-              <para>
-              An <see cref="T:System.Collections.Generic.IEnumerable{string}"/>
-              instance.
-              </para>
-              <para>
-              It provides an enumerator which supports the iteration over
-              the collection of the names of the subprotocols.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.SecWebSocketVersion">
-            <summary>
-            Gets the value of the Sec-WebSocket-Version header included in
-            the handshake request.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the WebSocket protocol
-            version specified by the client.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.ServerEndPoint">
-            <summary>
-            Gets the endpoint to which the handshake request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the server IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.User">
-            <summary>
-            Gets the client information.
-            </summary>
-            <value>
-            A <see cref="T:System.Security.Principal.IPrincipal"/> instance that represents identity,
-            authentication, and security roles for the client.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.UserEndPoint">
-            <summary>
-            Gets the endpoint from which the handshake request is sent.
-            </summary>
-            <value>
-            A <see cref="T:System.Net.IPEndPoint"/> that represents the client IP
-            address and port number.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.WebSockets.WebSocketContext.WebSocket">
-            <summary>
-            Gets the WebSocket instance used for two-way communication between
-            the client and server.
-            </summary>
-            <value>
-            A <see cref="T:WebSocketSharp.WebSocket"/>.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpBasicIdentity">
-            <summary>
-            Holds the username and password from an HTTP Basic authentication attempt.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpBasicIdentity.Password">
-            <summary>
-            Gets the password from a basic authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the password.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpDigestIdentity">
-            <summary>
-            Holds the username and other parameters from
-            an HTTP Digest authentication attempt.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Algorithm">
-            <summary>
-            Gets the algorithm parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the algorithm parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Cnonce">
-            <summary>
-            Gets the cnonce parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the cnonce parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Nc">
-            <summary>
-            Gets the nc parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the nc parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Nonce">
-            <summary>
-            Gets the nonce parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the nonce parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Opaque">
-            <summary>
-            Gets the opaque parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the opaque parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Qop">
-            <summary>
-            Gets the qop parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the qop parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Realm">
-            <summary>
-            Gets the realm parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the realm parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Response">
-            <summary>
-            Gets the response parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the response parameter.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.HttpDigestIdentity.Uri">
-            <summary>
-            Gets the uri parameter from a digest authentication attempt.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the uri parameter.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.Net.NetworkCredential">
-            <summary>
-            Provides the credentials for the password-based authentication.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.NetworkCredential.#ctor(System.String,System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.NetworkCredential"/> class with
-            the specified <paramref name="username"/> and <paramref name="password"/>.
-            </summary>
-            <param name="username">
-            A <see cref="T:System.String"/> that represents the username associated with
-            the credentials.
-            </param>
-            <param name="password">
-            A <see cref="T:System.String"/> that represents the password for the username
-            associated with the credentials.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="username"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="username"/> is empty.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.NetworkCredential.#ctor(System.String,System.String,System.String,System.String[])">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.NetworkCredential"/> class with
-            the specified <paramref name="username"/>, <paramref name="password"/>,
-            <paramref name="domain"/> and <paramref name="roles"/>.
-            </summary>
-            <param name="username">
-            A <see cref="T:System.String"/> that represents the username associated with
-            the credentials.
-            </param>
-            <param name="password">
-            A <see cref="T:System.String"/> that represents the password for the username
-            associated with the credentials.
-            </param>
-            <param name="domain">
-            A <see cref="T:System.String"/> that represents the domain associated with
-            the credentials.
-            </param>
-            <param name="roles">
-            An array of <see cref="T:System.String"/> that represents the roles
-            associated with the credentials if any.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="username"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="username"/> is empty.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.NetworkCredential.Domain">
-            <summary>
-            Gets the domain associated with the credentials.
-            </summary>
-            <remarks>
-            This property returns an empty string if the domain was
-            initialized with <see langword="null"/>.
-            </remarks>
-            <value>
-            A <see cref="T:System.String"/> that represents the domain name
-            to which the username belongs.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.NetworkCredential.Password">
-            <summary>
-            Gets the password for the username associated with the credentials.
-            </summary>
-            <remarks>
-            This property returns an empty string if the password was
-            initialized with <see langword="null"/>.
-            </remarks>
-            <value>
-            A <see cref="T:System.String"/> that represents the password.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.NetworkCredential.Roles">
-            <summary>
-            Gets the roles associated with the credentials.
-            </summary>
-            <remarks>
-            This property returns an empty array if the roles were
-            initialized with <see langword="null"/>.
-            </remarks>
-            <value>
-            An array of <see cref="T:System.String"/> that represents the role names
-            to which the username belongs.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.NetworkCredential.Username">
-            <summary>
-            Gets the username associated with the credentials.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the username.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefix.#ctor(System.String,WebSocketSharp.Net.HttpListener)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.HttpListenerPrefix"/> class
-            with the specified URI prefix and HTTP listener.
-            </summary>
-            <remarks>
-            This constructor must be called after calling the CheckPrefix method.
-            </remarks>
-            <param name="uriPrefix">
-            A <see cref="T:System.String"/> that specifies the URI prefix.
-            </param>
-            <param name="listener">
-            A <see cref="T:WebSocketSharp.Net.HttpListener"/> that specifies the HTTP listener.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefix.Equals(System.Object)">
-            <summary>
-            Determines whether the current instance is equal to the specified
-            <see cref="T:System.Object"/> instance.
-            </summary>
-            <remarks>
-            This method will be required to detect duplicates in any collection.
-            </remarks>
-            <param name="obj">
-              <para>
-              An <see cref="T:System.Object"/> instance to compare to the current instance.
-              </para>
-              <para>
-              An reference to a <see cref="T:WebSocketSharp.Net.HttpListenerPrefix"/> instance.
-              </para>
-            </param>
-            <returns>
-            <c>true</c> if the current instance and <paramref name="obj"/> have
-            the same URI prefix; otherwise, <c>false</c>.
-            </returns>
-        </member>
-        <member name="M:WebSocketSharp.Net.HttpListenerPrefix.GetHashCode">
-            <summary>
-            Gets the hash code for the current instance.
-            </summary>
-            <remarks>
-            This method will be required to detect duplicates in any collection.
-            </remarks>
-            <returns>
-            An <see cref="T:System.Int32"/> that represents the hash code.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.Net.ClientSslConfiguration">
-            <summary>
-            Stores the parameters for the <see cref="T:System.Net.Security.SslStream"/> used by clients.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.ClientSslConfiguration.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.ClientSslConfiguration"/>
-            class with the specified target host server name.
-            </summary>
-            <param name="targetHost">
-            A <see cref="T:System.String"/> that specifies the target host server name.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="targetHost"/> is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="targetHost"/> is an empty string.
-            </exception>
-        </member>
-        <member name="M:WebSocketSharp.Net.ClientSslConfiguration.#ctor(WebSocketSharp.Net.ClientSslConfiguration)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.ClientSslConfiguration"/>
-            class that stores the parameters copied from the specified configuration.
-            </summary>
-            <param name="configuration">
-            A <see cref="T:WebSocketSharp.Net.ClientSslConfiguration"/> from which to copy.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="configuration"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.ClientSslConfiguration.CheckCertificateRevocation">
-            <summary>
-            Gets or sets a value indicating whether the certificate revocation
-            list is checked during authentication.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the certificate revocation list is checked during
-              authentication; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ClientSslConfiguration.ClientCertificates">
-            <summary>
-            Gets or sets the collection of client certificates from which to select
-            one to supply to the server.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Security.Cryptography.X509Certificates.X509CertificateCollection"/> or <see langword="null"/>.
-              </para>
-              <para>
-              The collection contains client certificates from which to select.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ClientSslConfiguration.ClientCertificateSelectionCallback">
-            <summary>
-            Gets or sets the callback used to select the certificate to supply to
-            the server.
-            </summary>
-            <remarks>
-            No certificate is supplied if the callback returns <see langword="null"/>.
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.Net.Security.LocalCertificateSelectionCallback"/> delegate that
-              invokes the method called for selecting the certificate.
-              </para>
-              <para>
-              The default value is a delegate that invokes a method that only
-              returns <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ClientSslConfiguration.EnabledSslProtocols">
-            <summary>
-            Gets or sets the protocols used for authentication.
-            </summary>
-            <value>
-              <para>
-              Any of the <see cref="T:System.Security.Authentication.SslProtocols"/> enum values.
-              </para>
-              <para>
-              It represents the protocols used for authentication.
-              </para>
-              <para>
-              The default value is <see cref="F:System.Security.Authentication.SslProtocols.None"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ClientSslConfiguration.ServerCertificateValidationCallback">
-            <summary>
-            Gets or sets the callback used to validate the certificate supplied by
-            the server.
-            </summary>
-            <remarks>
-            The certificate is valid if the callback returns <c>true</c>.
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.Net.Security.RemoteCertificateValidationCallback"/> delegate that
-              invokes the method called for validating the certificate.
-              </para>
-              <para>
-              The default value is a delegate that invokes a method that only
-              returns <c>true</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ClientSslConfiguration.TargetHost">
-            <summary>
-            Gets or sets the target host server name.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the name of the server that
-            will share a secure connection with a client.
-            </value>
-            <exception cref="T:System.ArgumentNullException">
-            The value specified for a set operation is <see langword="null"/>.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The value specified for a set operation is an empty string.
-            </exception>
-        </member>
-        <member name="T:WebSocketSharp.Net.ServerSslConfiguration">
-            <summary>
-            Stores the parameters for the <see cref="T:System.Net.Security.SslStream"/> used by servers.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.ServerSslConfiguration.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.ServerSslConfiguration"/>
-            class.
-            </summary>
-        </member>
-        <member name="M:WebSocketSharp.Net.ServerSslConfiguration.#ctor(WebSocketSharp.Net.ServerSslConfiguration)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Net.ServerSslConfiguration"/>
-            class that stores the parameters copied from the specified configuration.
-            </summary>
-            <param name="configuration">
-            A <see cref="T:WebSocketSharp.Net.ServerSslConfiguration"/> from which to copy.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="configuration"/> is <see langword="null"/>.
-            </exception>
-        </member>
-        <member name="P:WebSocketSharp.Net.ServerSslConfiguration.CheckCertificateRevocation">
-            <summary>
-            Gets or sets a value indicating whether the certificate revocation
-            list is checked during authentication.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the certificate revocation list is checked during
-              authentication; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ServerSslConfiguration.ClientCertificateRequired">
-            <summary>
-            Gets or sets a value indicating whether the client is asked for
-            a certificate for authentication.
-            </summary>
-            <value>
-              <para>
-              <c>true</c> if the client is asked for a certificate for
-              authentication; otherwise, <c>false</c>.
-              </para>
-              <para>
-              The default value is <c>false</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ServerSslConfiguration.ClientCertificateValidationCallback">
-            <summary>
-            Gets or sets the callback used to validate the certificate supplied by
-            the client.
-            </summary>
-            <remarks>
-            The certificate is valid if the callback returns <c>true</c>.
-            </remarks>
-            <value>
-              <para>
-              A <see cref="T:System.Net.Security.RemoteCertificateValidationCallback"/> delegate that
-              invokes the method called for validating the certificate.
-              </para>
-              <para>
-              The default value is a delegate that invokes a method that only
-              returns <c>true</c>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ServerSslConfiguration.EnabledSslProtocols">
-            <summary>
-            Gets or sets the protocols used for authentication.
-            </summary>
-            <value>
-              <para>
-              Any of the <see cref="T:System.Security.Authentication.SslProtocols"/> enum values.
-              </para>
-              <para>
-              It represents the protocols used for authentication.
-              </para>
-              <para>
-              The default value is <see cref="F:System.Security.Authentication.SslProtocols.None"/>.
-              </para>
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Net.ServerSslConfiguration.ServerCertificate">
-            <summary>
-            Gets or sets the certificate used to authenticate the server.
-            </summary>
-            <value>
-              <para>
-              A <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"/> or <see langword="null"/>.
-              </para>
-              <para>
-              The certificate represents an X.509 certificate.
-              </para>
-              <para>
-              The default value is <see langword="null"/>.
-              </para>
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpRequestHeader">
-            <summary>
-            Indicates the HTTP header that may be specified in a client request.
-            </summary>
-            <remarks>
-            The headers of this enumeration are defined in
-            <see href="http://tools.ietf.org/html/rfc2616#section-14">RFC 2616</see> or
-            <see href="http://tools.ietf.org/html/rfc6455#section-11.3">RFC 6455</see>.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.CacheControl">
-            <summary>
-            Indicates the Cache-Control header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Connection">
-            <summary>
-            Indicates the Connection header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Date">
-            <summary>
-            Indicates the Date header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.KeepAlive">
-            <summary>
-            Indicates the Keep-Alive header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Pragma">
-            <summary>
-            Indicates the Pragma header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Trailer">
-            <summary>
-            Indicates the Trailer header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.TransferEncoding">
-            <summary>
-            Indicates the Transfer-Encoding header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Upgrade">
-            <summary>
-            Indicates the Upgrade header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Via">
-            <summary>
-            Indicates the Via header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Warning">
-            <summary>
-            Indicates the Warning header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Allow">
-            <summary>
-            Indicates the Allow header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ContentLength">
-            <summary>
-            Indicates the Content-Length header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ContentType">
-            <summary>
-            Indicates the Content-Type header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ContentEncoding">
-            <summary>
-            Indicates the Content-Encoding header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ContentLanguage">
-            <summary>
-            Indicates the Content-Language header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ContentLocation">
-            <summary>
-            Indicates the Content-Location header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ContentMd5">
-            <summary>
-            Indicates the Content-MD5 header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ContentRange">
-            <summary>
-            Indicates the Content-Range header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Expires">
-            <summary>
-            Indicates the Expires header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.LastModified">
-            <summary>
-            Indicates the Last-Modified header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Accept">
-            <summary>
-            Indicates the Accept header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.AcceptCharset">
-            <summary>
-            Indicates the Accept-Charset header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.AcceptEncoding">
-            <summary>
-            Indicates the Accept-Encoding header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.AcceptLanguage">
-            <summary>
-            Indicates the Accept-Language header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Authorization">
-            <summary>
-            Indicates the Authorization header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Cookie">
-            <summary>
-            Indicates the Cookie header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Expect">
-            <summary>
-            Indicates the Expect header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.From">
-            <summary>
-            Indicates the From header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Host">
-            <summary>
-            Indicates the Host header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.IfMatch">
-            <summary>
-            Indicates the If-Match header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.IfModifiedSince">
-            <summary>
-            Indicates the If-Modified-Since header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.IfNoneMatch">
-            <summary>
-            Indicates the If-None-Match header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.IfRange">
-            <summary>
-            Indicates the If-Range header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.IfUnmodifiedSince">
-            <summary>
-            Indicates the If-Unmodified-Since header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.MaxForwards">
-            <summary>
-            Indicates the Max-Forwards header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.ProxyAuthorization">
-            <summary>
-            Indicates the Proxy-Authorization header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Referer">
-            <summary>
-            Indicates the Referer header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Range">
-            <summary>
-            Indicates the Range header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Te">
-            <summary>
-            Indicates the TE header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.Translate">
-            <summary>
-            Indicates the Translate header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.UserAgent">
-            <summary>
-            Indicates the User-Agent header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.SecWebSocketKey">
-            <summary>
-            Indicates the Sec-WebSocket-Key header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.SecWebSocketExtensions">
-            <summary>
-            Indicates the Sec-WebSocket-Extensions header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.SecWebSocketProtocol">
-            <summary>
-            Indicates the Sec-WebSocket-Protocol header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpRequestHeader.SecWebSocketVersion">
-            <summary>
-            Indicates the Sec-WebSocket-Version header.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Net.HttpResponseHeader">
-            <summary>
-            Indicates the HTTP header that can be specified in a server response.
-            </summary>
-            <remarks>
-            The headers of this enumeration are defined in
-            <see href="http://tools.ietf.org/html/rfc2616#section-14">RFC 2616</see> or
-            <see href="http://tools.ietf.org/html/rfc6455#section-11.3">RFC 6455</see>.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.CacheControl">
-            <summary>
-            Indicates the Cache-Control header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Connection">
-            <summary>
-            Indicates the Connection header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Date">
-            <summary>
-            Indicates the Date header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.KeepAlive">
-            <summary>
-            Indicates the Keep-Alive header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Pragma">
-            <summary>
-            Indicates the Pragma header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Trailer">
-            <summary>
-            Indicates the Trailer header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.TransferEncoding">
-            <summary>
-            Indicates the Transfer-Encoding header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Upgrade">
-            <summary>
-            Indicates the Upgrade header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Via">
-            <summary>
-            Indicates the Via header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Warning">
-            <summary>
-            Indicates the Warning header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Allow">
-            <summary>
-            Indicates the Allow header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ContentLength">
-            <summary>
-            Indicates the Content-Length header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ContentType">
-            <summary>
-            Indicates the Content-Type header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ContentEncoding">
-            <summary>
-            Indicates the Content-Encoding header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ContentLanguage">
-            <summary>
-            Indicates the Content-Language header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ContentLocation">
-            <summary>
-            Indicates the Content-Location header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ContentMd5">
-            <summary>
-            Indicates the Content-MD5 header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ContentRange">
-            <summary>
-            Indicates the Content-Range header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Expires">
-            <summary>
-            Indicates the Expires header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.LastModified">
-            <summary>
-            Indicates the Last-Modified header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.AcceptRanges">
-            <summary>
-            Indicates the Accept-Ranges header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Age">
-            <summary>
-            Indicates the Age header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ETag">
-            <summary>
-            Indicates the ETag header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Location">
-            <summary>
-            Indicates the Location header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.ProxyAuthenticate">
-            <summary>
-            Indicates the Proxy-Authenticate header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.RetryAfter">
-            <summary>
-            Indicates the Retry-After header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Server">
-            <summary>
-            Indicates the Server header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.SetCookie">
-            <summary>
-            Indicates the Set-Cookie header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.Vary">
-            <summary>
-            Indicates the Vary header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.WwwAuthenticate">
-            <summary>
-            Indicates the WWW-Authenticate header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.SecWebSocketExtensions">
-            <summary>
-            Indicates the Sec-WebSocket-Extensions header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.SecWebSocketAccept">
-            <summary>
-            Indicates the Sec-WebSocket-Accept header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.SecWebSocketProtocol">
-            <summary>
-            Indicates the Sec-WebSocket-Protocol header.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Net.HttpResponseHeader.SecWebSocketVersion">
-            <summary>
-            Indicates the Sec-WebSocket-Version header.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.CloseStatusCode">
-            <summary>
-            Indicates the status code for the WebSocket connection close.
-            </summary>
-            <remarks>
-              <para>
-              The values of this enumeration are defined in
-              <see href="http://tools.ietf.org/html/rfc6455#section-7.4">
-              Section 7.4</see> of RFC 6455.
-              </para>
-              <para>
-              "Reserved value" cannot be sent as a status code in
-              closing handshake by an endpoint.
-              </para>
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.Normal">
-            <summary>
-            Equivalent to close status 1000. Indicates normal close.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.Away">
-            <summary>
-            Equivalent to close status 1001. Indicates that an endpoint is
-            going away.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.ProtocolError">
-            <summary>
-            Equivalent to close status 1002. Indicates that an endpoint is
-            terminating the connection due to a protocol error.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.UnsupportedData">
-            <summary>
-            Equivalent to close status 1003. Indicates that an endpoint is
-            terminating the connection because it has received a type of
-            data that it cannot accept.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.Undefined">
-            <summary>
-            Equivalent to close status 1004. Still undefined. A Reserved value.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.NoStatus">
-            <summary>
-            Equivalent to close status 1005. Indicates that no status code was
-            actually present. A Reserved value.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.Abnormal">
-            <summary>
-            Equivalent to close status 1006. Indicates that the connection was
-            closed abnormally. A Reserved value.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.InvalidData">
-            <summary>
-            Equivalent to close status 1007. Indicates that an endpoint is
-            terminating the connection because it has received a message that
-            contains data that is not consistent with the type of the message.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.PolicyViolation">
-            <summary>
-            Equivalent to close status 1008. Indicates that an endpoint is
-            terminating the connection because it has received a message that
-            violates its policy.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.TooBig">
-            <summary>
-            Equivalent to close status 1009. Indicates that an endpoint is
-            terminating the connection because it has received a message that
-            is too big to process.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.MandatoryExtension">
-            <summary>
-            Equivalent to close status 1010. Indicates that a client is
-            terminating the connection because it has expected the server to
-            negotiate one or more extension, but the server did not return
-            them in the handshake response.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.ServerError">
-            <summary>
-            Equivalent to close status 1011. Indicates that a server is
-            terminating the connection because it has encountered an unexpected
-            condition that prevented it from fulfilling the request.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CloseStatusCode.TlsHandshakeFailure">
-            <summary>
-            Equivalent to close status 1015. Indicates that the connection was
-            closed due to a failure to perform a TLS handshake. A Reserved value.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Fin">
-            <summary>
-            Indicates whether a WebSocket frame is the final frame of a message.
-            </summary>
-            <remarks>
-            The values of this enumeration are defined in
-            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">Section 5.2</see> of RFC 6455.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.Fin.More">
-            <summary>
-            Equivalent to numeric value 0. Indicates more frames of a message follow.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Fin.Final">
-            <summary>
-            Equivalent to numeric value 1. Indicates the final frame of a message.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Mask">
-            <summary>
-            Indicates whether the payload data of a WebSocket frame is masked.
-            </summary>
-            <remarks>
-            The values of this enumeration are defined in
-            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">Section 5.2</see> of RFC 6455.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.Mask.Off">
-            <summary>
-            Equivalent to numeric value 0. Indicates not masked.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Mask.On">
-            <summary>
-            Equivalent to numeric value 1. Indicates masked.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Opcode">
-            <summary>
-            Indicates the WebSocket frame type.
-            </summary>
-            <remarks>
-            The values of this enumeration are defined in
-            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">
-            Section 5.2</see> of RFC 6455.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.Opcode.Cont">
-            <summary>
-            Equivalent to numeric value 0. Indicates continuation frame.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Opcode.Text">
-            <summary>
-            Equivalent to numeric value 1. Indicates text frame.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Opcode.Binary">
-            <summary>
-            Equivalent to numeric value 2. Indicates binary frame.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Opcode.Close">
-            <summary>
-            Equivalent to numeric value 8. Indicates connection close frame.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Opcode.Ping">
-            <summary>
-            Equivalent to numeric value 9. Indicates ping frame.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Opcode.Pong">
-            <summary>
-            Equivalent to numeric value 10. Indicates pong frame.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.PayloadData.Empty">
-            <summary>
-            Represents the empty payload data.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.PayloadData.MaxLength">
-            <summary>
-            Represents the allowable max length of payload data.
-            </summary>
-            <remarks>
-              <para>
-              A <see cref="T:WebSocketSharp.WebSocketException"/> will occur when the length of
-              incoming payload data is greater than the value of this field.
-              </para>
-              <para>
-              If you would like to change the value of this field, it must be
-              a number between <see cref="F:WebSocketSharp.WebSocket.FragmentLength"/> and
-              <see cref="F:System.Int64.MaxValue"/> inclusive.
-              </para>
-            </remarks>
-        </member>
-        <member name="T:WebSocketSharp.Rsv">
-            <summary>
-            Indicates whether each RSV (RSV1, RSV2, and RSV3) of a WebSocket frame is non-zero.
-            </summary>
-            <remarks>
-            The values of this enumeration are defined in
-            <see href="http://tools.ietf.org/html/rfc6455#section-5.2">Section 5.2</see> of RFC 6455.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.Rsv.Off">
-            <summary>
-            Equivalent to numeric value 0. Indicates zero.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.Rsv.On">
-            <summary>
-            Equivalent to numeric value 1. Indicates non-zero.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.CompressionMethod">
-            <summary>
-            Specifies the method for compression.
-            </summary>
-            <remarks>
-            The methods are defined in
-            <see href="https://tools.ietf.org/html/rfc7692">
-            Compression Extensions for WebSocket</see>.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.CompressionMethod.None">
-            <summary>
-            Specifies no compression.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.CompressionMethod.Deflate">
-            <summary>
-            Specifies DEFLATE.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.WebSocketException">
-            <summary>
-            The exception that is thrown when a fatal error occurs in
-            the WebSocket communication.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.WebSocketException.Code">
-            <summary>
-            Gets the status code indicating the cause of the exception.
-            </summary>
-            <value>
-            One of the <see cref="T:WebSocketSharp.CloseStatusCode"/> enum values that represents
-            the status code indicating the cause of the exception.
-            </value>
-        </member>
-        <member name="T:WebSocketSharp.LogData">
-            <summary>
-            Represents a log data used by the <see cref="T:WebSocketSharp.Logger"/> class.
-            </summary>
-        </member>
-        <member name="P:WebSocketSharp.LogData.Caller">
-            <summary>
-            Gets the information of the logging method caller.
-            </summary>
-            <value>
-            A <see cref="T:System.Diagnostics.StackFrame"/> that provides the information of the logging method caller.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.LogData.Date">
-            <summary>
-            Gets the date and time when the log data was created.
-            </summary>
-            <value>
-            A <see cref="T:System.DateTime"/> that represents the date and time when the log data was created.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.LogData.Level">
-            <summary>
-            Gets the logging level of the log data.
-            </summary>
-            <value>
-            One of the <see cref="T:WebSocketSharp.LogLevel"/> enum values, indicates the logging level of the log data.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.LogData.Message">
-            <summary>
-            Gets the message of the log data.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the message of the log data.
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.LogData.ToString">
-            <summary>
-            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:WebSocketSharp.LogData"/>.
-            </summary>
-            <returns>
-            A <see cref="T:System.String"/> that represents the current <see cref="T:WebSocketSharp.LogData"/>.
-            </returns>
-        </member>
-        <member name="T:WebSocketSharp.LogLevel">
-            <summary>
-            Specifies the logging level.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.LogLevel.Trace">
-            <summary>
-            Specifies the bottom logging level.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.LogLevel.Debug">
-            <summary>
-            Specifies the 2nd logging level from the bottom.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.LogLevel.Info">
-            <summary>
-            Specifies the 3rd logging level from the bottom.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.LogLevel.Warn">
-            <summary>
-            Specifies the 3rd logging level from the top.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.LogLevel.Error">
-            <summary>
-            Specifies the 2nd logging level from the top.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.LogLevel.Fatal">
-            <summary>
-            Specifies the top logging level.
-            </summary>
-        </member>
-        <member name="T:WebSocketSharp.Logger">
-            <summary>
-            Provides a set of methods and properties for logging.
-            </summary>
-            <remarks>
-              <para>
-              If you output a log with lower than the value of the <see cref="P:WebSocketSharp.Logger.Level"/> property,
-              it cannot be outputted.
-              </para>
-              <para>
-              The default output action writes a log to the standard output stream and the log file
-              if the <see cref="P:WebSocketSharp.Logger.File"/> property has a valid path to it.
-              </para>
-              <para>
-              If you would like to use the custom output action, you should set
-              the <see cref="P:WebSocketSharp.Logger.Output"/> property to any <c>Action&lt;LogData, string&gt;</c>
-              delegate.
-              </para>
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Logger.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Logger"/> class.
-            </summary>
-            <remarks>
-            This constructor initializes the current logging level with <see cref="F:WebSocketSharp.LogLevel.Error"/>.
-            </remarks>
-        </member>
-        <member name="M:WebSocketSharp.Logger.#ctor(WebSocketSharp.LogLevel)">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Logger"/> class with
-            the specified logging <paramref name="level"/>.
-            </summary>
-            <param name="level">
-            One of the <see cref="T:WebSocketSharp.LogLevel"/> enum values.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Logger.#ctor(WebSocketSharp.LogLevel,System.String,System.Action{WebSocketSharp.LogData,System.String})">
-            <summary>
-            Initializes a new instance of the <see cref="T:WebSocketSharp.Logger"/> class with
-            the specified logging <paramref name="level"/>, path to the log <paramref name="file"/>,
-            and <paramref name="output"/> action.
-            </summary>
-            <param name="level">
-            One of the <see cref="T:WebSocketSharp.LogLevel"/> enum values.
-            </param>
-            <param name="file">
-            A <see cref="T:System.String"/> that represents the path to the log file.
-            </param>
-            <param name="output">
-            An <c>Action&lt;LogData, string&gt;</c> delegate that references the method(s) used to
-            output a log. A <see cref="T:System.String"/> parameter passed to this delegate is
-            <paramref name="file"/>.
-            </param>
-        </member>
-        <member name="P:WebSocketSharp.Logger.File">
-            <summary>
-            Gets or sets the current path to the log file.
-            </summary>
-            <value>
-            A <see cref="T:System.String"/> that represents the current path to the log file if any.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Logger.Level">
-            <summary>
-            Gets or sets the current logging level.
-            </summary>
-            <remarks>
-            A log with lower than the value of this property cannot be outputted.
-            </remarks>
-            <value>
-            One of the <see cref="T:WebSocketSharp.LogLevel"/> enum values, specifies the current logging level.
-            </value>
-        </member>
-        <member name="P:WebSocketSharp.Logger.Output">
-            <summary>
-            Gets or sets the current output action used to output a log.
-            </summary>
-            <value>
-              <para>
-              An <c>Action&lt;LogData, string&gt;</c> delegate that references the method(s) used to
-              output a log. A <see cref="T:System.String"/> parameter passed to this delegate is the value of
-              the <see cref="P:WebSocketSharp.Logger.File"/> property.
-              </para>
-              <para>
-              If the value to set is <see langword="null"/>, the current output action is changed to
-              the default output action.
-              </para>
-            </value>
-        </member>
-        <member name="M:WebSocketSharp.Logger.Debug(System.String)">
-            <summary>
-            Outputs <paramref name="message"/> as a log with <see cref="F:WebSocketSharp.LogLevel.Debug"/>.
-            </summary>
-            <remarks>
-            If the current logging level is higher than <see cref="F:WebSocketSharp.LogLevel.Debug"/>,
-            this method doesn't output <paramref name="message"/> as a log.
-            </remarks>
-            <param name="message">
-            A <see cref="T:System.String"/> that represents the message to output as a log.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Logger.Error(System.String)">
-            <summary>
-            Outputs <paramref name="message"/> as a log with <see cref="F:WebSocketSharp.LogLevel.Error"/>.
-            </summary>
-            <remarks>
-            If the current logging level is higher than <see cref="F:WebSocketSharp.LogLevel.Error"/>,
-            this method doesn't output <paramref name="message"/> as a log.
-            </remarks>
-            <param name="message">
-            A <see cref="T:System.String"/> that represents the message to output as a log.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Logger.Fatal(System.String)">
-            <summary>
-            Outputs <paramref name="message"/> as a log with <see cref="F:WebSocketSharp.LogLevel.Fatal"/>.
-            </summary>
-            <param name="message">
-            A <see cref="T:System.String"/> that represents the message to output as a log.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Logger.Info(System.String)">
-            <summary>
-            Outputs <paramref name="message"/> as a log with <see cref="F:WebSocketSharp.LogLevel.Info"/>.
-            </summary>
-            <remarks>
-            If the current logging level is higher than <see cref="F:WebSocketSharp.LogLevel.Info"/>,
-            this method doesn't output <paramref name="message"/> as a log.
-            </remarks>
-            <param name="message">
-            A <see cref="T:System.String"/> that represents the message to output as a log.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Logger.Trace(System.String)">
-            <summary>
-            Outputs <paramref name="message"/> as a log with <see cref="F:WebSocketSharp.LogLevel.Trace"/>.
-            </summary>
-            <remarks>
-            If the current logging level is higher than <see cref="F:WebSocketSharp.LogLevel.Trace"/>,
-            this method doesn't output <paramref name="message"/> as a log.
-            </remarks>
-            <param name="message">
-            A <see cref="T:System.String"/> that represents the message to output as a log.
-            </param>
-        </member>
-        <member name="M:WebSocketSharp.Logger.Warn(System.String)">
-            <summary>
-            Outputs <paramref name="message"/> as a log with <see cref="F:WebSocketSharp.LogLevel.Warn"/>.
-            </summary>
-            <remarks>
-            If the current logging level is higher than <see cref="F:WebSocketSharp.LogLevel.Warn"/>,
-            this method doesn't output <paramref name="message"/> as a log.
-            </remarks>
-            <param name="message">
-            A <see cref="T:System.String"/> that represents the message to output as a log.
-            </param>
-        </member>
-        <member name="T:WebSocketSharp.WebSocketState">
-            <summary>
-            Indicates the state of a WebSocket connection.
-            </summary>
-            <remarks>
-            The values of this enumeration are defined in
-            <see href="http://www.w3.org/TR/websockets/#dom-websocket-readystate">
-            The WebSocket API</see>.
-            </remarks>
-        </member>
-        <member name="F:WebSocketSharp.WebSocketState.Connecting">
-            <summary>
-            Equivalent to numeric value 0. Indicates that the connection has not
-            yet been established.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.WebSocketState.Open">
-            <summary>
-            Equivalent to numeric value 1. Indicates that the connection has
-            been established, and the communication is possible.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.WebSocketState.Closing">
-            <summary>
-            Equivalent to numeric value 2. Indicates that the connection is
-            going through the closing handshake, or the close method has
-            been invoked.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.WebSocketState.Closed">
-            <summary>
-            Equivalent to numeric value 3. Indicates that the connection has
-            been closed or could not be established.
-            </summary>
-        </member>
-        <member name="F:WebSocketSharp.WebSocketFrame.EmptyPingBytes">
-            <summary>
-            Represents the ping frame without the payload data as an array of
-            <see cref="T:System.Byte"/>.
-            </summary>
-            <remarks>
-            The value of this field is created from a non masked ping frame,
-            so it can only be used to send a ping from the server.
-            </remarks>
-        </member>
-    </members>
-</doc>

+ 3 - 4
src/NTMinerDataSchemas/NTKeyword.cs

@@ -11,13 +11,14 @@ namespace NTMiner {
         public const long LongG = 1024 * 1024 * 1024;
 
         public const string Version = "2.8.6";
-        private const string _build = "2";
+        private const string _build = "4";
         public const string VersionBuild = Version + "." + _build;
         public const string ManJiTag = "蛮吉";
         public const string ManXiaoManTag = "蛮小满";
         public const string WoLiuDao = "涡流岛";
         public const string Copyright = "Copyright ©  NTMiner";
         public const string Company = "开源矿工 https://github.com/ntminer/NtMiner";
+        public const string OfficialServerAddress = "server.ntminer.top:3339";
 
         public const string CloudFileDomain = "oss-cn-beijing.aliyuncs.com";
 
@@ -113,9 +114,7 @@ namespace NTMiner {
         public const string IsOuterUserEnabledRegistryKey = "IsOuterUserEnabled";
         public const string OuterUserIdRegistryKey = "OuterUserId";
         public const string DaemonVersionRegistryKey = "DaemonVersion";
-        public const string ControlCenterAddressesRegistryKey = "ControlCenterAddresses";
-        public const string ControlCenterAddressRegistryKey = "ControlCenterAddress";
-        public const string ControlCenterLoginName = "ControlCenterLoginName";
+        public const string LoginNameRegistryKey = "LoginName";
         public const string CurrentVersionTagRegistryKey = "CurrentVersionTag";
         public const string CurrentVersionRegistryKey = "CurrentVersion";
         public const string ArgumentsRegistryKey = "Arguments";

+ 7 - 0
src/NTMinerGpus/Gpus/Nvapi/NvapiNativeMethods.cs

@@ -39,6 +39,9 @@ namespace NTMiner.Gpus.Nvapi {
         internal delegate NvStatus NvFanCoolersSetControlDelegate(NvPhysicalGpuHandle physicalGpu, ref PrivateFanCoolersControlV1 control);
         internal delegate NvStatus NvGetThermalSettingsDelegate(NvPhysicalGpuHandle physicalGpu, int sensorIndex, ref NvGPUThermalSettings gpuThermalSettings);
 
+        internal delegate NvStatus NvGetClockBoostLockDelegate(NvPhysicalGpuHandle physicalGpu, ref NvGpuClockLock clockLock);
+        internal delegate NvStatus NvSetClockBoostLockDelegate(NvPhysicalGpuHandle physicalGpu, ref NvGpuClockLock clockLock);
+
         private static nvapi_QueryInterfaceDelegate nvapi_QueryInterface { get; set; }
         private static NvInitializeDelegate NvInitialize { get; set; }
 
@@ -78,6 +81,10 @@ namespace NTMiner.Gpus.Nvapi {
         internal static NvFanCoolersSetControlDelegate NvFanCoolersSetControl { get; private set; }
         [Id(0xE3640A56)]
         internal static NvGetThermalSettingsDelegate NvGetThermalSettings { get; private set; }
+        [Id(0xE440B867)]
+        internal static NvGetClockBoostLockDelegate NvGetClockBoostLock { get; private set; }
+        [Id(0x39442CFB)]
+        internal static NvSetClockBoostLockDelegate NvSetClockBoostLock { get; private set; }
 
         #endregion
 

+ 122 - 97
src/NTMinerGpus/Gpus/Nvapi/NvapiTypes.cs

@@ -39,145 +39,145 @@ namespace NTMiner.Gpus.Nvapi {
 
     #region Enumms
     internal enum NvStatus {
-        NVAPI_OK = 0, 
-        NVAPI_ERROR = -1, 
-        NVAPI_LIBRARY_NOT_FOUND = -2, 
+        NVAPI_OK = 0,
+        NVAPI_ERROR = -1,
+        NVAPI_LIBRARY_NOT_FOUND = -2,
         NVAPI_NO_IMPLEMENTATION = -3,
-        NVAPI_API_NOT_INITIALIZED = -4, 
-        NVAPI_INVALID_ARGUMENT = -5, 
-        NVAPI_NVIDIA_DEVICE_NOT_FOUND = -6, 
+        NVAPI_API_NOT_INITIALIZED = -4,
+        NVAPI_INVALID_ARGUMENT = -5,
+        NVAPI_NVIDIA_DEVICE_NOT_FOUND = -6,
         NVAPI_END_ENUMERATION = -7,
-        NVAPI_INVALID_HANDLE = -8, 
-        NVAPI_INCOMPATIBLE_STRUCT_VERSION = -9, 
-        NVAPI_HANDLE_INVALIDATED = -10, 
+        NVAPI_INVALID_HANDLE = -8,
+        NVAPI_INCOMPATIBLE_STRUCT_VERSION = -9,
+        NVAPI_HANDLE_INVALIDATED = -10,
         NVAPI_OPENGL_CONTEXT_NOT_CURRENT = -11,
-        NVAPI_INVALID_POINTER = -14, 
-        NVAPI_NO_GL_EXPERT = -12, 
-        NVAPI_INSTRUMENTATION_DISABLED = -13, 
+        NVAPI_INVALID_POINTER = -14,
+        NVAPI_NO_GL_EXPERT = -12,
+        NVAPI_INSTRUMENTATION_DISABLED = -13,
         NVAPI_NO_GL_NSIGHT = -15,
-        NVAPI_EXPECTED_LOGICAL_GPU_HANDLE = -100, 
-        NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE = -101, 
-        NVAPI_EXPECTED_DISPLAY_HANDLE = -102, 
+        NVAPI_EXPECTED_LOGICAL_GPU_HANDLE = -100,
+        NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE = -101,
+        NVAPI_EXPECTED_DISPLAY_HANDLE = -102,
         NVAPI_INVALID_COMBINATION = -103,
-        NVAPI_NOT_SUPPORTED = -104, 
-        NVAPI_PORTID_NOT_FOUND = -105, 
-        NVAPI_EXPECTED_UNATTACHED_DISPLAY_HANDLE = -106, 
+        NVAPI_NOT_SUPPORTED = -104,
+        NVAPI_PORTID_NOT_FOUND = -105,
+        NVAPI_EXPECTED_UNATTACHED_DISPLAY_HANDLE = -106,
         NVAPI_INVALID_PERF_LEVEL = -107,
         NVAPI_DEVICE_BUSY = -108,
-        NVAPI_NV_PERSIST_FILE_NOT_FOUND = -109, 
-        NVAPI_PERSIST_DATA_NOT_FOUND = -110, 
+        NVAPI_NV_PERSIST_FILE_NOT_FOUND = -109,
+        NVAPI_PERSIST_DATA_NOT_FOUND = -110,
         NVAPI_EXPECTED_TV_DISPLAY = -111,
-        NVAPI_EXPECTED_TV_DISPLAY_ON_DCONNECTOR = -112, 
-        NVAPI_NO_ACTIVE_SLI_TOPOLOGY = -113, 
-        NVAPI_SLI_RENDERING_MODE_NOTALLOWED = -114, 
+        NVAPI_EXPECTED_TV_DISPLAY_ON_DCONNECTOR = -112,
+        NVAPI_NO_ACTIVE_SLI_TOPOLOGY = -113,
+        NVAPI_SLI_RENDERING_MODE_NOTALLOWED = -114,
         NVAPI_EXPECTED_DIGITAL_FLAT_PANEL = -115,
-        NVAPI_ARGUMENT_EXCEED_MAX_SIZE = -116, 
+        NVAPI_ARGUMENT_EXCEED_MAX_SIZE = -116,
         NVAPI_DEVICE_SWITCHING_NOT_ALLOWED = -117,
-        NVAPI_TESTING_CLOCKS_NOT_SUPPORTED = -118, 
+        NVAPI_TESTING_CLOCKS_NOT_SUPPORTED = -118,
         NVAPI_UNKNOWN_UNDERSCAN_CONFIG = -119,
-        NVAPI_TIMEOUT_RECONFIGURING_GPU_TOPO = -120, 
-        NVAPI_DATA_NOT_FOUND = -121, 
-        NVAPI_EXPECTED_ANALOG_DISPLAY = -122, 
+        NVAPI_TIMEOUT_RECONFIGURING_GPU_TOPO = -120,
+        NVAPI_DATA_NOT_FOUND = -121,
+        NVAPI_EXPECTED_ANALOG_DISPLAY = -122,
         NVAPI_NO_VIDLINK = -123,
-        NVAPI_REQUIRES_REBOOT = -124, 
-        NVAPI_INVALID_HYBRID_MODE = -125, 
-        NVAPI_MIXED_TARGET_TYPES = -126, 
+        NVAPI_REQUIRES_REBOOT = -124,
+        NVAPI_INVALID_HYBRID_MODE = -125,
+        NVAPI_MIXED_TARGET_TYPES = -126,
         NVAPI_SYSWOW64_NOT_SUPPORTED = -127,
-        NVAPI_IMPLICIT_SET_GPU_TOPOLOGY_CHANGE_NOT_ALLOWED = -128, 
-        NVAPI_REQUEST_USER_TO_CLOSE_NON_MIGRATABLE_APPS = -129, 
-        NVAPI_OUT_OF_MEMORY = -130, 
+        NVAPI_IMPLICIT_SET_GPU_TOPOLOGY_CHANGE_NOT_ALLOWED = -128,
+        NVAPI_REQUEST_USER_TO_CLOSE_NON_MIGRATABLE_APPS = -129,
+        NVAPI_OUT_OF_MEMORY = -130,
         NVAPI_WAS_STILL_DRAWING = -131,
-        NVAPI_FILE_NOT_FOUND = -132, 
-        NVAPI_TOO_MANY_UNIQUE_STATE_OBJECTS = -133, 
-        NVAPI_INVALID_CALL = -134, 
+        NVAPI_FILE_NOT_FOUND = -132,
+        NVAPI_TOO_MANY_UNIQUE_STATE_OBJECTS = -133,
+        NVAPI_INVALID_CALL = -134,
         NVAPI_D3D10_1_LIBRARY_NOT_FOUND = -135,
-        NVAPI_FUNCTION_NOT_FOUND = -136, 
-        NVAPI_INVALID_USER_PRIVILEGE = -137, 
-        NVAPI_EXPECTED_NON_PRIMARY_DISPLAY_HANDLE = -138, 
+        NVAPI_FUNCTION_NOT_FOUND = -136,
+        NVAPI_INVALID_USER_PRIVILEGE = -137,
+        NVAPI_EXPECTED_NON_PRIMARY_DISPLAY_HANDLE = -138,
         NVAPI_EXPECTED_COMPUTE_GPU_HANDLE = -139,
-        NVAPI_STEREO_NOT_INITIALIZED = -140, 
-        NVAPI_STEREO_REGISTRY_ACCESS_FAILED = -141, 
-        NVAPI_STEREO_REGISTRY_PROFILE_TYPE_NOT_SUPPORTED = -142, 
+        NVAPI_STEREO_NOT_INITIALIZED = -140,
+        NVAPI_STEREO_REGISTRY_ACCESS_FAILED = -141,
+        NVAPI_STEREO_REGISTRY_PROFILE_TYPE_NOT_SUPPORTED = -142,
         NVAPI_STEREO_REGISTRY_VALUE_NOT_SUPPORTED = -143,
-        NVAPI_STEREO_NOT_ENABLED = -144, 
-        NVAPI_STEREO_NOT_TURNED_ON = -145, 
-        NVAPI_STEREO_INVALID_DEVICE_INTERFACE = -146, 
+        NVAPI_STEREO_NOT_ENABLED = -144,
+        NVAPI_STEREO_NOT_TURNED_ON = -145,
+        NVAPI_STEREO_INVALID_DEVICE_INTERFACE = -146,
         NVAPI_STEREO_PARAMETER_OUT_OF_RANGE = -147,
-        NVAPI_STEREO_FRUSTUM_ADJUST_MODE_NOT_SUPPORTED = -148, 
-        NVAPI_TOPO_NOT_POSSIBLE = -149, 
-        NVAPI_MODE_CHANGE_FAILED = -150, 
+        NVAPI_STEREO_FRUSTUM_ADJUST_MODE_NOT_SUPPORTED = -148,
+        NVAPI_TOPO_NOT_POSSIBLE = -149,
+        NVAPI_MODE_CHANGE_FAILED = -150,
         NVAPI_D3D11_LIBRARY_NOT_FOUND = -151,
-        NVAPI_INVALID_ADDRESS = -152, 
-        NVAPI_STRING_TOO_SMALL = -153, 
-        NVAPI_MATCHING_DEVICE_NOT_FOUND = -154, 
+        NVAPI_INVALID_ADDRESS = -152,
+        NVAPI_STRING_TOO_SMALL = -153,
+        NVAPI_MATCHING_DEVICE_NOT_FOUND = -154,
         NVAPI_DRIVER_RUNNING = -155,
-        NVAPI_DRIVER_NOTRUNNING = -156, 
-        NVAPI_ERROR_DRIVER_RELOAD_REQUIRED = -157, 
-        NVAPI_SET_NOT_ALLOWED = -158, 
+        NVAPI_DRIVER_NOTRUNNING = -156,
+        NVAPI_ERROR_DRIVER_RELOAD_REQUIRED = -157,
+        NVAPI_SET_NOT_ALLOWED = -158,
         NVAPI_ADVANCED_DISPLAY_TOPOLOGY_REQUIRED = -159,
-        NVAPI_SETTING_NOT_FOUND = -160, 
-        NVAPI_SETTING_SIZE_TOO_LARGE = -161, 
-        NVAPI_TOO_MANY_SETTINGS_IN_PROFILE = -162, 
+        NVAPI_SETTING_NOT_FOUND = -160,
+        NVAPI_SETTING_SIZE_TOO_LARGE = -161,
+        NVAPI_TOO_MANY_SETTINGS_IN_PROFILE = -162,
         NVAPI_PROFILE_NOT_FOUND = -163,
-        NVAPI_PROFILE_NAME_IN_USE = -164, 
-        NVAPI_PROFILE_NAME_EMPTY = -165, 
-        NVAPI_EXECUTABLE_NOT_FOUND = -166, 
+        NVAPI_PROFILE_NAME_IN_USE = -164,
+        NVAPI_PROFILE_NAME_EMPTY = -165,
+        NVAPI_EXECUTABLE_NOT_FOUND = -166,
         NVAPI_EXECUTABLE_ALREADY_IN_USE = -167,
-        NVAPI_DATATYPE_MISMATCH = -168, 
-        NVAPI_PROFILE_REMOVED = -169, 
-        NVAPI_UNREGISTERED_RESOURCE = -170, 
+        NVAPI_DATATYPE_MISMATCH = -168,
+        NVAPI_PROFILE_REMOVED = -169,
+        NVAPI_UNREGISTERED_RESOURCE = -170,
         NVAPI_ID_OUT_OF_RANGE = -171,
-        NVAPI_DISPLAYCONFIG_VALIDATION_FAILED = -172, 
-        NVAPI_DPMST_CHANGED = -173, 
-        NVAPI_INSUFFICIENT_BUFFER = -174, 
+        NVAPI_DISPLAYCONFIG_VALIDATION_FAILED = -172,
+        NVAPI_DPMST_CHANGED = -173,
+        NVAPI_INSUFFICIENT_BUFFER = -174,
         NVAPI_ACCESS_DENIED = -175,
-        NVAPI_MOSAIC_NOT_ACTIVE = -176, 
-        NVAPI_SHARE_RESOURCE_RELOCATED = -177, 
-        NVAPI_REQUEST_USER_TO_DISABLE_DWM = -178, 
+        NVAPI_MOSAIC_NOT_ACTIVE = -176,
+        NVAPI_SHARE_RESOURCE_RELOCATED = -177,
+        NVAPI_REQUEST_USER_TO_DISABLE_DWM = -178,
         NVAPI_D3D_DEVICE_LOST = -179,
-        NVAPI_INVALID_CONFIGURATION = -180, 
-        NVAPI_STEREO_HANDSHAKE_NOT_DONE = -181, 
-        NVAPI_EXECUTABLE_PATH_IS_AMBIGUOUS = -182, 
+        NVAPI_INVALID_CONFIGURATION = -180,
+        NVAPI_STEREO_HANDSHAKE_NOT_DONE = -181,
+        NVAPI_EXECUTABLE_PATH_IS_AMBIGUOUS = -182,
         NVAPI_DEFAULT_STEREO_PROFILE_IS_NOT_DEFINED = -183,
         NVAPI_DEFAULT_STEREO_PROFILE_DOES_NOT_EXIST = -184,
-        NVAPI_CLUSTER_ALREADY_EXISTS = -185, 
+        NVAPI_CLUSTER_ALREADY_EXISTS = -185,
         NVAPI_DPMST_DISPLAY_ID_EXPECTED = -186,
         NVAPI_INVALID_DISPLAY_ID = -187,
-        NVAPI_STREAM_IS_OUT_OF_SYNC = -188, 
-        NVAPI_INCOMPATIBLE_AUDIO_DRIVER = -189, 
-        NVAPI_VALUE_ALREADY_SET = -190, 
+        NVAPI_STREAM_IS_OUT_OF_SYNC = -188,
+        NVAPI_INCOMPATIBLE_AUDIO_DRIVER = -189,
+        NVAPI_VALUE_ALREADY_SET = -190,
         NVAPI_TIMEOUT = -191,
         NVAPI_GPU_WORKSTATION_FEATURE_INCOMPLETE = -192,
-        NVAPI_STEREO_INIT_ACTIVATION_NOT_DONE = -193, 
-        NVAPI_SYNC_NOT_ACTIVE = -194, 
+        NVAPI_STEREO_INIT_ACTIVATION_NOT_DONE = -193,
+        NVAPI_SYNC_NOT_ACTIVE = -194,
         NVAPI_SYNC_MASTER_NOT_FOUND = -195,
-        NVAPI_INVALID_SYNC_TOPOLOGY = -196, 
-        NVAPI_ECID_SIGN_ALGO_UNSUPPORTED = -197, 
-        NVAPI_ECID_KEY_VERIFICATION_FAILED = -198, 
+        NVAPI_INVALID_SYNC_TOPOLOGY = -196,
+        NVAPI_ECID_SIGN_ALGO_UNSUPPORTED = -197,
+        NVAPI_ECID_KEY_VERIFICATION_FAILED = -198,
         NVAPI_FIRMWARE_OUT_OF_DATE = -199,
-        NVAPI_FIRMWARE_REVISION_NOT_SUPPORTED = -200, 
+        NVAPI_FIRMWARE_REVISION_NOT_SUPPORTED = -200,
         NVAPI_LICENSE_CALLER_AUTHENTICATION_FAILED = -201,
-        NVAPI_D3D_DEVICE_NOT_REGISTERED = -202, 
+        NVAPI_D3D_DEVICE_NOT_REGISTERED = -202,
         NVAPI_RESOURCE_NOT_ACQUIRED = -203,
-        NVAPI_TIMING_NOT_SUPPORTED = -204, 
-        NVAPI_HDCP_ENCRYPTION_FAILED = -205, 
-        NVAPI_PCLK_LIMITATION_FAILED = -206, 
+        NVAPI_TIMING_NOT_SUPPORTED = -204,
+        NVAPI_HDCP_ENCRYPTION_FAILED = -205,
+        NVAPI_PCLK_LIMITATION_FAILED = -206,
         NVAPI_NO_CONNECTOR_FOUND = -207,
-        NVAPI_HDCP_DISABLED = -208, 
-        NVAPI_API_IN_USE = -209, 
-        NVAPI_NVIDIA_DISPLAY_NOT_FOUND = -210, 
+        NVAPI_HDCP_DISABLED = -208,
+        NVAPI_API_IN_USE = -209,
+        NVAPI_NVIDIA_DISPLAY_NOT_FOUND = -210,
         NVAPI_PRIV_SEC_VIOLATION = -211,
-        NVAPI_INCORRECT_VENDOR = -212, 
-        NVAPI_DISPLAY_IN_USE = -213, 
+        NVAPI_INCORRECT_VENDOR = -212,
+        NVAPI_DISPLAY_IN_USE = -213,
         NVAPI_UNSUPPORTED_CONFIG_NON_HDCP_HMD = -214,
         NVAPI_MAX_DISPLAY_LIMIT_REACHED = -215,
-        NVAPI_INVALID_DIRECT_MODE_DISPLAY = -216, 
-        NVAPI_GPU_IN_DEBUG_MODE = -217, 
-        NVAPI_D3D_CONTEXT_NOT_FOUND = -218, 
+        NVAPI_INVALID_DIRECT_MODE_DISPLAY = -216,
+        NVAPI_GPU_IN_DEBUG_MODE = -217,
+        NVAPI_D3D_CONTEXT_NOT_FOUND = -218,
         NVAPI_STEREO_VERSION_MISMATCH = -219,
-        NVAPI_GPU_NOT_POWERED = -220, 
+        NVAPI_GPU_NOT_POWERED = -220,
         NVAPI_ERROR_DRIVER_RELOAD_IN_PROGRESS = -221,
-        NVAPI_WAIT_FOR_HW_RESOURCE = -222, 
+        NVAPI_WAIT_FOR_HW_RESOURCE = -222,
         NVAPI_REQUIRE_FURTHER_HDCP_ACTION = -223,
         NVAPI_DISPLAY_MUX_TRANSITION_FAILED = -224
     }
@@ -735,4 +735,29 @@ namespace NTMiner.Gpus.Nvapi {
         }
     }
     #endregion
+
+    internal struct NvGpuClockLockEntry {
+        public uint index;
+        public uint unknown1;
+        public uint mode;
+        public uint unknown2;
+        public uint voltageUV;
+        public uint unknown3;
+    }
+
+    internal struct NvGpuClockLock {
+        public uint version;
+        public uint flags;
+        public uint count;
+
+        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
+        public NvGpuClockLockEntry[] Enties;
+
+        public static NvGpuClockLock Create() {
+            return new NvGpuClockLock {
+                version = (uint)(NvapiConst.VERSION1 | (Marshal.SizeOf(typeof(NvGpuClockLock)))),
+                Enties = new NvGpuClockLockEntry[32]
+            };
+        }
+    }
 }

+ 92 - 8
src/NTMinerGpus/Gpus/NvapiHelper.cs

@@ -56,8 +56,18 @@ namespace NTMiner.Gpus {
         public void OverClock(IGpu gpu, OverClockValue value) {
             value.Correct(gpu);
             int busId = gpu.GetOverClockId();
-            SetCoreClock(busId, value.CoreClockMHz, value.CoreClockVoltage);
-            SetMemoryClock(busId, value.MemoryClockMHz, value.MemoryClockVoltage);
+            SetCoreClock(busId, value.CoreClockMHz);
+            int voltage = 0;
+            if (value.CoreClockVoltage != 0 && value.MemoryClockVoltage != 0) {
+                voltage = Math.Min(value.CoreClockVoltage, value.MemoryClockVoltage);
+            }
+            else {
+                voltage = Math.Max(value.CoreClockVoltage, value.MemoryClockVoltage);
+            }
+            if (voltage >= 0) {
+                SetVoltage(busId, voltage);
+            }
+            SetMemoryClock(busId, value.MemoryClockMHz);
             SetPowerLimit(busId, value.PowerLimit);
             SetTempLimit(busId, value.TempLimit);
             if (!value.IgnoreFanSpeed) {
@@ -72,14 +82,21 @@ namespace NTMiner.Gpus {
             OverClockRange result = new OverClockRange(busId);
             try {
                 if (GetClockDelta(busId,
-                    out int outCoreCurrFreqDelta, out int outCoreMinFreqDelta, out int outCoreMaxFreqDelta,
-                    out int outMemoryCurrFreqDelta, out int outMemoryMinFreqDelta, out int outMemoryMaxFreqDelta)) {
+                    out int outCoreCurrFreqDelta, out int outCoreMinFreqDelta, 
+                    out int outCoreMaxFreqDelta,
+                    out int outMemoryCurrFreqDelta, out int outMemoryMinFreqDelta, 
+                    out int outMemoryMaxFreqDelta)) {
                     result.CoreClockMin = outCoreMinFreqDelta;
                     result.CoreClockMax = outCoreMaxFreqDelta;
                     result.CoreClockDelta = outCoreCurrFreqDelta;
                     result.MemoryClockMin = outMemoryMinFreqDelta;
                     result.MemoryClockMax = outMemoryMaxFreqDelta;
                     result.MemoryClockDelta = outMemoryCurrFreqDelta;
+                    int voltage = GetVoltage(busId);
+                    result.CoreVoltage = voltage;
+                    result.MemoryVoltage = voltage;
+                    result.VoltMin = 0;
+                    result.VoltMax = 0;
                 }
 
                 if (GetPowerLimit(busId, out uint outCurrPower, out uint outMinPower, out uint outDefPower, out uint outMaxPower)) {
@@ -199,7 +216,7 @@ namespace NTMiner.Gpus {
         }
         #endregion
 
-        private static void SetCoreClock(int busId, int mHz, int voltage) {
+        private static void SetCoreClock(int busId, int mHz) {
             int kHz = mHz * 1000;
             try {
                 if (NvGetPStateV2(busId, out NvGpuPerfPStates20InfoV2 info)) {
@@ -218,7 +235,7 @@ namespace NTMiner.Gpus {
             }
         }
 
-        private static void SetMemoryClock(int busId, int mHz, int voltage) {
+        private static void SetMemoryClock(int busId, int mHz) {
             int kHz = mHz * 1000;
             try {
                 if (NvGetPStateV2(busId, out NvGpuPerfPStates20InfoV2 info)) {
@@ -229,7 +246,6 @@ namespace NTMiner.Gpus {
                     info.pstates[0].clocks[0].domainId = NvGpuPublicClockId.NVAPI_GPU_PUBLIC_CLOCK_MEMORY;
                     info.pstates[0].clocks[0].typeId = NvGpuPerfPState20ClockTypeId.NVAPI_GPU_PERF_PSTATE20_CLOCK_TYPE_SINGLE;
                     info.pstates[0].clocks[0].freqDelta_kHz.value = kHz;
-
                     var r = NvSetPStateV2(busId, ref info);
                     if (!r) {
                         NTMinerConsole.DevError(() => $"{nameof(SetMemoryClock)} {r.ToString()}");
@@ -363,6 +379,74 @@ namespace NTMiner.Gpus {
             return false;
         }
 
+        private static int GetVoltage(int busId) {
+            if (NvapiNativeMethods.NvGetClockBoostLock == null) {
+                return 0;
+            }
+            try {
+                if (!HandlesByBusId.TryGetValue(busId, out NvPhysicalGpuHandle handle)) {
+                    return 0;
+                }
+                NvGpuClockLock clockLock = NvGpuClockLock.Create();
+                var r = NvapiNativeMethods.NvGetClockBoostLock(HandlesByBusId[busId], ref clockLock);
+                if (r != NvStatus.NVAPI_OK) {
+                    NTMinerConsole.DevError(() => $"{nameof(NvapiNativeMethods.NvGetClockBoostLock)} {r.ToString()}");
+                }
+                if (r == NvStatus.NVAPI_OK) {
+                    int v = (int)clockLock.Enties[0].voltageUV;
+                    uint index = clockLock.Enties[0].index;
+                    foreach (var item in clockLock.Enties) {
+                        if (item.index > index) {
+                            index = item.index;
+                            v = (int)item.voltageUV;
+                        }
+                    }
+                    return v / 1000;
+                }
+            }
+            catch {
+            }
+            return 0;
+        }
+
+        private static void SetVoltage(int busId, int voltage) {
+            voltage *= 1000;
+            if (NvapiNativeMethods.NvSetClockBoostLock == null) {
+                return;
+            }
+            try {
+                if (!HandlesByBusId.TryGetValue(busId, out NvPhysicalGpuHandle handle)) {
+                    return;
+                }
+                NvGpuClockLock clockLock = NvGpuClockLock.Create();
+                var r = NvapiNativeMethods.NvGetClockBoostLock(HandlesByBusId[busId], ref clockLock);
+                if (r != NvStatus.NVAPI_OK) {
+                    NTMinerConsole.DevError(() => $"{nameof(NvapiNativeMethods.NvGetClockBoostLock)} {r.ToString()}");
+                }
+                if (r == NvStatus.NVAPI_OK) {
+                    uint index = clockLock.Enties[0].index;
+                    foreach (var item in clockLock.Enties) {
+                        if (item.index > index) {
+                            index = item.index;
+                        }
+                    }
+                    if (voltage != 0) {
+                        clockLock.Enties[index].mode = 3;
+                    }
+                    else {
+                        clockLock.Enties[index].mode = 0;
+                    }
+                    clockLock.Enties[index].voltageUV = (uint)voltage;
+                    r = NvapiNativeMethods.NvSetClockBoostLock(handle, ref clockLock);
+                    if (r != NvStatus.NVAPI_OK) {
+                        NTMinerConsole.DevError(() => $"{nameof(NvapiNativeMethods.NvSetClockBoostLock)} {r.ToString()}");
+                    }
+                }
+            }
+            catch {
+            }
+        }
+
         private static bool GetClockDelta(int busId,
             out int outCoreCurrFreqDelta, 
             out int outCoreMinFreqDelta, 
@@ -379,7 +463,7 @@ namespace NTMiner.Gpus {
             try {
                 bool isCoreClockPicked = false;
                 bool isMemoryClockPicked = false;
-                if (NvGetPStateV2(busId, out NvGpuPerfPStates20InfoV2 info)) {
+                if (NvGetPStateV2(busId, out NvGpuPerfPStates20InfoV2 info)) {                    
                     for (int i = 0; i < info.numPStates; i++) {
                         for (int j = 0; j < info.numClocks; j++) {
                             uint min = info.pstates[i].clocks[j].data.minFreq_kHz;

+ 25 - 4
src/NTMinerRpcClient/RpcRoot.cs

@@ -2,6 +2,8 @@
 using NTMiner.Rpc.Impl;
 using System;
 using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Net.Http;
 
@@ -10,12 +12,13 @@ namespace NTMiner {
         public static readonly IJsonRpcHelper JsonRpc = new JsonRpcHelper();
 
         static RpcRoot() {
+            SetOfficialServerAddress(NTKeyword.OfficialServerAddress);
         }
 
         public static string OfficialServerHost { get; private set; }
-        public static int OfficialServerPort;
-        public static string OfficialServerAddress = SetOfficialServerAddress("server.ntminer.com:3339");
-        public static string SetOfficialServerAddress(string address) {
+        public static int OfficialServerPort { get; private set; }
+        public static string OfficialServerAddress { get; private set; }
+        public static void SetOfficialServerAddress(string address) {
             if (!address.Contains(":")) {
                 address = address + ":" + 3339;
             }
@@ -26,7 +29,6 @@ namespace NTMiner {
             }
             OfficialServerHost = parts[0];
             OfficialServerPort = port;
-            return address;
         }
 
         public static string GetUrl(string host, int port, string controller, string action, Dictionary<string, string> query) {
@@ -54,5 +56,24 @@ namespace NTMiner {
                 client.Timeout = TimeSpan.FromMilliseconds(timeountMilliseconds.Value);
             }
         }
+
+        public static byte[] ZipDecompress(byte[] zippedData) {
+            using (Stream ms = new MemoryStream(zippedData),
+                          compressedzipStream = new GZipStream(ms, CompressionMode.Decompress),
+                          outBuffer = new MemoryStream()) {
+                byte[] block = new byte[NTKeyword.IntK];
+                while (true) {
+                    int bytesRead = compressedzipStream.Read(block, 0, block.Length);
+                    if (bytesRead <= 0) {
+                        break;
+                    }
+                    else {
+                        outBuffer.Write(block, 0, bytesRead);
+                    }
+                }
+                compressedzipStream.Close();
+                return ((MemoryStream)outBuffer).ToArray();
+            }
+        }
     }
 }

+ 1 - 21
src/NTMinerRpcClient/Services/OSS/AliyunOSSService.cs

@@ -1,6 +1,5 @@
 using System;
 using System.IO;
-using System.IO.Compression;
 using System.Net;
 using System.Text;
 using System.Threading.Tasks;
@@ -59,7 +58,7 @@ namespace NTMiner.Services.OSS {
                         byte[] data = new byte[ms.Length];
                         ms.Position = 0;
                         ms.Read(data, 0, data.Length);
-                        data = ZipDecompress(data);
+                        data = RpcRoot.ZipDecompress(data);
                         callback?.Invoke(Encoding.UTF8.GetString(data));
                     }
                 }
@@ -69,24 +68,5 @@ namespace NTMiner.Services.OSS {
                 }
             });
         }
-
-        private static byte[] ZipDecompress(byte[] zippedData) {
-            using (Stream ms = new MemoryStream(zippedData),
-                          compressedzipStream = new GZipStream(ms, CompressionMode.Decompress),
-                          outBuffer = new MemoryStream()) {
-                byte[] block = new byte[NTKeyword.IntK];
-                while (true) {
-                    int bytesRead = compressedzipStream.Read(block, 0, block.Length);
-                    if (bytesRead <= 0) {
-                        break;
-                    }
-                    else {
-                        outBuffer.Write(block, 0, bytesRead);
-                    }
-                }
-                compressedzipStream.Close();
-                return ((MemoryStream)outBuffer).ToArray();
-            }
-        }
     }
 }

+ 0 - 8
src/NTMinerWpf/NTMinerWpf.csproj

@@ -143,12 +143,8 @@
     <Compile Include="Views\InputWindow.xaml.cs">
       <DependentUpon>InputWindow.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Views\Ucs\ServerHostSelect.xaml.cs">
-      <DependentUpon>ServerHostSelect.xaml</DependentUpon>
-    </Compile>
     <Compile Include="Vms\LocalIpConfigViewModel.cs" />
     <Compile Include="Vms\LocalIpViewModel.cs" />
-    <Compile Include="Vms\ServerHostSelectViewModel.cs" />
     <Compile Include="Vms\ServerHostItem.cs" />
     <Compile Include="Vms\SignUpPageViewModel.cs" />
     <Compile Include="WindowExtension.cs" />
@@ -271,10 +267,6 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </Page>
-    <Page Include="Views\Ucs\ServerHostSelect.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
     <Page Include="Views\Ucs\SignUpPage.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>

+ 6 - 40
src/NTMinerWpf/Views/LoginWindow.xaml

@@ -56,42 +56,11 @@
 					<RowDefinition Height="Auto"></RowDefinition>
 					<RowDefinition Height="Auto"></RowDefinition>
 				</Grid.RowDefinitions>
-				<TextBlock Grid.Row="0" Grid.Column="0" Style="{StaticResource LblTbBase}" Text="服务器"></TextBlock>
-
-                <TextBox 
-                    x:Name="TextBoxServerHost" 
-                    Grid.Row="0" 
-                    Grid.Column="1" 
-                    Margin="0 4" 
-                    ToolTip="IP或域名" 
-                    Padding="0 0 20 0" 
-                    VerticalContentAlignment="Center" 
-                    Text="{Binding ServerHost}">
-                </TextBox>
-                <Button 
-                    x:Name="ButtonServerHost"
-                    Grid.Row="0" 
-                    Grid.Column="1"
-					Margin="0 4" 
-                    Width="20"
-                    BorderThickness="0"
-                    HorizontalAlignment="Right"
-					Click="ButtonServerHost_Click"
-					IsEnabled="{Binding ElementName=PopupServerHosts,Path=IsOpen,Converter={StaticResource BoolInvertConverter}}">
-                    <Path
-						Width="12"
-						Height="8"
-						Data="{StaticResource Icon_ComboBoxToogle}"
-						Fill="Black"
-						Stretch="Fill" />
-                </Button>
-                <Popup 
-					x:Name="PopupServerHosts" 
-					PopupAnimation="Slide" 
-					PlacementTarget="{Binding ElementName=TextBoxServerHost}" 
-					Placement="Bottom" 
-					StaysOpen="False"></Popup>
-
+				<TextBlock Grid.Row="0" Grid.Column="0" Style="{StaticResource LblTbBase}" Text="类型"></TextBlock>
+                <WrapPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
+                    <RadioButton Margin="20 2 0 0" IsChecked="{Binding IsInnerIp,Converter={StaticResource BoolInvertConverter}}" Content="外网群控"></RadioButton>
+                    <RadioButton Margin="20 2 0 0" IsChecked="{Binding IsInnerIp}" Content="内网群控"></RadioButton>
+                </WrapPanel>
 				<TextBlock 
 					Grid.Row="1" Grid.Column="0" 
                     Style="{StaticResource LblTbBase}"
@@ -104,10 +73,6 @@
 					Visibility="{Binding IsInnerIp,Converter={StaticResource BoolToHiddenInvertConverter}}"
 					Text="{Binding LoginName}" Background="White" 
 					VerticalContentAlignment="Center"></TextBox>
-				<TextBlock 
-					Grid.Row="1" Grid.Column="1" Margin="0 2" 
-                    Foreground="Red" FontSize="16"
-					Visibility="{Binding IsInnerIp,Converter={StaticResource BoolToHiddenConverter}}">内网群控</TextBlock>
 
 				<TextBlock 
 					Grid.Row="2" Grid.Column="0"
@@ -148,6 +113,7 @@
                         VerticalAlignment="Bottom"
                         BorderThickness="1"
                         Background="Transparent"
+						Visibility="{Binding IsInnerIp,Converter={StaticResource BoolToHiddenInvertConverter}}"
 						Command="{Binding ShowSignUpPage}"
 						Content="注册"
                         ToolTip="注册群控用户">

+ 2 - 37
src/NTMinerWpf/Views/LoginWindow.xaml.cs

@@ -1,5 +1,4 @@
-using NTMiner.Views.Ucs;
-using NTMiner.Vms;
+using NTMiner.Vms;
 using System;
 using System.Windows;
 
@@ -15,10 +14,6 @@ namespace NTMiner.Views {
             this.Vm = new LoginWindowViewModel(serverHost);
             this.DataContext = Vm;
             InitializeComponent();
-            if (!string.IsNullOrEmpty(serverHost)) {
-                this.TextBoxServerHost.IsEnabled = false;
-                this.ButtonServerHost.IsEnabled = false;
-            }
             this.TbUcName.Text = nameof(LoginWindow);
             // 1个是通知窗口,1个是本窗口
             NotiCenterWindow.Bind(this);
@@ -49,14 +44,8 @@ namespace NTMiner.Views {
                 return;
             }
             string passwordSha1 = HashUtil.Sha1(Vm.Password);
-            NTMinerRegistry.SetControlCenterAddress(Vm.ServerHost);
-            var list = NTMinerRegistry.GetControlCenterAddresses();
-            if (!list.Contains(Vm.ServerHost)) {
-                list.Insert(0, Vm.ServerHost);
-            }
-            NTMinerRegistry.SetControlCenterAddresses(list);
             // 内网免登录
-            if (Net.IpUtil.IsInnerIp(Vm.ServerHost)) {
+            if (Vm.IsInnerIp) {
                 RpcRoot.Login(RpcUser.Empty);
                 RpcRoot.SetIsOuterNet(false);
                 _isLogined = true;
@@ -96,30 +85,6 @@ namespace NTMiner.Views {
             });
         }
 
-        private void OpenServerHostsPopup() {
-            var popup = PopupServerHosts;
-            popup.IsOpen = true;
-            var selected = Vm.ServerHost;
-            var vm = new ServerHostSelectViewModel(selected, onOk: selectedResult => {
-                if (selectedResult != null) {
-                    if (Vm.ServerHost != selectedResult.IpOrHost) {
-                        Vm.ServerHost = selectedResult.IpOrHost;
-                    }
-                    popup.IsOpen = false;
-                }
-            }) {
-                HideView = new DelegateCommand(() => {
-                    popup.IsOpen = false;
-                })
-            };
-            popup.Child = new ServerHostSelect(vm);
-        }
-
-        private void ButtonServerHost_Click(object sender, RoutedEventArgs e) {
-            OpenServerHostsPopup();
-            e.Handled = true;
-        }
-
         private void BtnClose_Click(object sender, RoutedEventArgs e) {
             _btnCloseClick?.Invoke();
         }

+ 0 - 63
src/NTMinerWpf/Views/Ucs/ServerHostSelect.xaml

@@ -1,63 +0,0 @@
-<UserControl 
-    x:Class="NTMiner.Views.Ucs.ServerHostSelect"
-	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-	xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-	xmlns:sys="clr-namespace:System;assembly=mscorlib"
-	xmlns:blankWindow="http://NTMiner.com"
-	xmlns:controls="clr-namespace:NTMiner.Controls"
-	xmlns:local="clr-namespace:NTMiner.Views.Ucs"
-	xmlns:vm="clr-namespace:NTMiner.Vms"
-	BorderBrush="{StaticResource WindowBorderBrush}"
-	BorderThickness="1"
-	Background="White"
-	mc:Ignorable="d" 
-	Width="200"
-	MinHeight="80">
-	<Grid Background="{StaticResource ToolbarBackground}">
-		<DataGrid 
-			ItemsSource="{Binding ServerHosts}" 
-			SelectedItem="{Binding SelectedResult}"
-			MouseUp="DataGrid_MouseUp"
-			PreviewKeyDown="DataGrid_PreviewKeyDown"
-			BorderThickness="0">
-			<DataGrid.Resources>
-				<controls:BindingProxy x:Key="proxy" Data="{Binding}" />
-			</DataGrid.Resources>
-			<DataGrid.Columns>
-				<DataGridTemplateColumn Width="*" Header="IP或域名" IsReadOnly="True">
-					<DataGridTemplateColumn.CellTemplate>
-						<DataTemplate>
-							<TextBlock 
-								Text="{Binding IpOrHost}" 
-								VerticalAlignment="Center"></TextBlock>
-						</DataTemplate>
-					</DataGridTemplateColumn.CellTemplate>
-				</DataGridTemplateColumn>
-				<DataGridTemplateColumn Width="30" IsReadOnly="True">
-					<DataGridTemplateColumn.CellTemplate>
-						<DataTemplate>
-							<Button 
-								Background="Transparent" 
-								BorderThickness="0" 
-								Padding="2"
-								Visibility="{Binding IsLocalHost,Converter={StaticResource BoolToVisibilityInvertConverter}}"
-								Command="{Binding Data.Remove,Source={StaticResource proxy}}"
-								CommandParameter="{Binding}"
-								HorizontalAlignment="Right">
-								<Path
-									Width="14"
-									Height="14"
-									Data="{StaticResource Icon_Close}"
-									Fill="Black"
-									Stretch="Fill" />
-							</Button>
-						</DataTemplate>
-					</DataGridTemplateColumn.CellTemplate>
-				</DataGridTemplateColumn>
-			</DataGrid.Columns>
-		</DataGrid>
-		<TextBlock Visibility="{Binding ServerHosts, Converter={StaticResource NoRecordVisibilityConverter}}" Foreground="Red" VerticalAlignment="Center" HorizontalAlignment="Center">没有记录</TextBlock>
-	</Grid>
-</UserControl>

+ 0 - 25
src/NTMinerWpf/Views/Ucs/ServerHostSelect.xaml.cs

@@ -1,25 +0,0 @@
-using NTMiner.Vms;
-using System.Windows.Controls;
-
-namespace NTMiner.Views.Ucs {
-    public partial class ServerHostSelect : UserControl {
-        public ServerHostSelectViewModel Vm { get; private set; }
-
-        public ServerHostSelect(ServerHostSelectViewModel vm) {
-            this.Vm = vm;
-            this.DataContext = vm;
-            InitializeComponent();
-        }
-
-        private void DataGrid_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) {
-            Vm.OnOk?.Invoke(Vm.SelectedResult);
-        }
-
-        private void DataGrid_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) {
-            if (e.Key == System.Windows.Input.Key.Enter) {
-                Vm.OnOk?.Invoke(Vm.SelectedResult);
-                e.Handled = true;
-            }
-        }
-    }
-}

+ 13 - 4
src/NTMinerWpf/Vms/LoginWindowViewModel.cs

@@ -24,13 +24,13 @@ namespace NTMiner.Vms {
                 return;
             }
             this._loginName = NTMinerRegistry.GetLoginName();
+            this._isInnerIp = NTMinerRegistry.GetMinerStudioIsInnerIp();
             if (!string.IsNullOrEmpty(serverHost)) {
                 this._serverHost = serverHost;
             }
             else {
-                this._serverHost = NTMinerRegistry.GetControlCenterAddress();
+                this._serverHost = RpcRoot.OfficialServerAddress;
             }
-            this._isInnerIp = Net.IpUtil.IsInnerIp(_serverHost);
         }
 
         public void ShowMessage(string message, int autoHideSeconds = 4, bool isSuccess = false) {
@@ -69,8 +69,17 @@ namespace NTMiner.Vms {
         public bool IsInnerIp {
             get => _isInnerIp;
             set {
-                _isInnerIp = value;
-                OnPropertyChanged(nameof(IsInnerIp));
+                if (_isInnerIp != value) {
+                    _isInnerIp = value;
+                    if (value) {
+                        this._serverHost = NTKeyword.Localhost;
+                    }
+                    else {
+                        this._serverHost = RpcRoot.OfficialServerAddress;
+                    }
+                    NTMinerRegistry.SetMinerStudioIsInnerIp(value);
+                    OnPropertyChanged(nameof(IsInnerIp));
+                }
             }
         }
 

+ 0 - 54
src/NTMinerWpf/Vms/ServerHostSelectViewModel.cs

@@ -1,54 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Windows.Input;
-
-namespace NTMiner.Vms {
-    public class ServerHostSelectViewModel : ViewModelBase {
-        private ServerHostItem _selectedResult;
-        public readonly Action<ServerHostItem> OnOk;
-        private List<ServerHostItem> _serverHosts;
-        public ICommand HideView { get; set; }
-        public ICommand Remove { get; private set; }
-
-        public ServerHostSelectViewModel(string selected, Action<ServerHostItem> onOk) {
-            var data = NTMinerRegistry.GetControlCenterAddresses().ToList();
-            if (!data.Contains("127.0.0.1") && !data.Contains(NTKeyword.Localhost)) {
-                data.Add("127.0.0.1");
-            }
-            if (!data.Contains("server.ntminer.com:3339")) {
-                data.Add("server.ntminer.com:3339");
-            }
-            _serverHosts = data.Select(a => new ServerHostItem(a)).ToList();
-            _selectedResult = _serverHosts.FirstOrDefault(a => a.IpOrHost == selected);
-            OnOk = onOk;
-            this.Remove = new DelegateCommand<ServerHostItem>((serverHost) => {
-                if (this.ServerHosts.Remove(serverHost)) {
-                    if (NTMinerRegistry.GetControlCenterAddress() == serverHost.IpOrHost) {
-                        NTMinerRegistry.SetControlCenterAddress(string.Empty);
-                    }
-                    this.ServerHosts = this.ServerHosts.ToList();
-                }
-            });
-        }
-
-        public List<ServerHostItem> ServerHosts {
-            get {
-                return _serverHosts;
-            }
-            set {
-                _serverHosts = value;
-                NTMinerRegistry.SetControlCenterAddresses(value.Select(a => a.IpOrHost).ToList());
-                OnPropertyChanged(nameof(ServerHosts));
-            }
-        }
-
-        public ServerHostItem SelectedResult {
-            get => _selectedResult;
-            set {
-                _selectedResult = value;
-                OnPropertyChanged(nameof(SelectedResult));
-            }
-        }
-    }
-}

+ 14 - 49
src/NTMinerlib/NTMinerRegistry.cs

@@ -1,7 +1,5 @@
 using Microsoft.Win32;
 using System;
-using System.Collections.Generic;
-using System.Linq;
 
 namespace NTMiner {
     public static partial class NTMinerRegistry {
@@ -117,9 +115,16 @@ namespace NTMiner {
         }
         #endregion
 
-        public static bool GetIsValueNameExist(string valueName) {
-            return Windows.WinRegistry.GetIsValueNameExist(Registry.Users, NTMinerRegistrySubKey, valueName);
+        #region MinerStudioIsInnerIp
+        public static bool GetMinerStudioIsInnerIp() {
+            object value = Windows.WinRegistry.GetValue(Registry.Users, NTMinerRegistrySubKey, "MinerStudioIsInnerIp");
+            return value != null && value.ToString() == "true";
+        }
+
+        public static void SetMinerStudioIsInnerIp(bool isInnerIp) {
+            Windows.WinRegistry.SetValue(Registry.Users, NTMinerRegistrySubKey, "MinerStudioIsInnerIp", isInnerIp ? "true" : "false");
         }
+        #endregion
 
         #region IsNoUi
         public static bool GetIsNoUi() {
@@ -145,7 +150,10 @@ namespace NTMiner {
 
         #region LoginName
         public static string GetLoginName() {
-            object value = Windows.WinRegistry.GetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.ControlCenterLoginName);
+            object value = Windows.WinRegistry.GetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.LoginNameRegistryKey);
+            if (value == null) {
+                value = Windows.WinRegistry.GetValue(Registry.Users, NTMinerRegistrySubKey, "ControlCenterLoginName");
+            }
             if (value == null) {
                 return string.Empty;
             }
@@ -156,50 +164,7 @@ namespace NTMiner {
             if (daemonVersion == null) {
                 daemonVersion = string.Empty;
             }
-            Windows.WinRegistry.SetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.ControlCenterLoginName, daemonVersion);
-        }
-        #endregion
-
-        #region ControlCenterAddress
-        private const string DefaultControlCenterAddress = NTKeyword.Localhost;
-        private static string _controlCenterAddress;
-        public static string GetControlCenterAddress() {
-            if (_controlCenterAddress != null) {
-                return _controlCenterAddress;
-            }
-            object value = Windows.WinRegistry.GetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.ControlCenterAddressRegistryKey);
-            if (value == null) {
-                _controlCenterAddress = DefaultControlCenterAddress;
-                return _controlCenterAddress;
-            }
-            _controlCenterAddress = (string)value;
-            return _controlCenterAddress;
-        }
-
-        public static void SetControlCenterAddress(string address) {
-            if (string.IsNullOrEmpty(address)) {
-                address = DefaultControlCenterAddress;
-            }
-            _controlCenterAddress = address;
-            Windows.WinRegistry.SetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.ControlCenterAddressRegistryKey, address);
-        }
-        #endregion
-
-        #region ControlCenterAddresses
-        public static List<string> GetControlCenterAddresses() {
-            object value = Windows.WinRegistry.GetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.ControlCenterAddressesRegistryKey);
-            if (value == null) {
-                return new List<string>();
-            }
-            return value.ToString().Split(',').ToList();
-        }
-
-        public static void SetControlCenterAddresses(List<string> addresses) {
-            string value = string.Empty;
-            if (addresses != null) {
-                value = string.Join(",", addresses);
-            }
-            Windows.WinRegistry.SetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.ControlCenterAddressesRegistryKey, value);
+            Windows.WinRegistry.SetValue(Registry.Users, NTMinerRegistrySubKey, NTKeyword.LoginNameRegistryKey, daemonVersion);
         }
         #endregion
 

+ 0 - 17
src/NTMinerlib/Windows/WinRegistry.cs

@@ -2,23 +2,6 @@
 
 namespace NTMiner.Windows {
     public static class WinRegistry {
-        public static bool GetIsValueNameExist(RegistryKey root, string subkey, string valueName) {
-            try {
-                using (RegistryKey registryKey = root.OpenSubKey(subkey, true)) {
-                    if (registryKey != null) {
-                        var registData = registryKey.GetValue(valueName);
-                        registryKey.Close();
-                        return registData != null;
-                    }
-                    return false;
-                }
-            }
-            catch (System.Exception e) {
-                Logger.ErrorDebugLine(e);
-                return true;
-            }
-        }
-
         public static object GetValue(RegistryKey root, string subkey, string valueName) {
             object registData = "";
             try {

+ 20 - 0
src/UnitTests/F2poolTests.cs

@@ -0,0 +1,20 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Threading.Tasks;
+
+namespace NTMiner {
+    [TestClass]
+    public class F2poolTests {
+        [TestMethod]
+        public async Task GetHtmlTestAsync() {
+            string html = await HtmlUtil.GetF2poolHtmlAsync();
+            Console.WriteLine(DateTime.Now.ToString());
+            if (string.IsNullOrEmpty(html)) {
+                Console.WriteLine("未读取到html页面");
+            }
+            else {
+                Console.WriteLine(html);
+            }
+        }
+    }
+}

+ 5 - 0
src/UnitTests/UnitTests.csproj

@@ -140,6 +140,7 @@
     <Compile Include="ResourceDictionaryTests.cs" />
     <Compile Include="RedisTests.cs" />
     <Compile Include="PartialTests.cs" />
+    <Compile Include="F2poolTests.cs" />
     <Compile Include="UriTests.cs" />
     <Compile Include="VersionTests.cs" />
     <Compile Include="WebSocketTests.cs" />
@@ -160,6 +161,10 @@
       <Project>{3426f677-5026-4bb1-a0b2-dd5d9bd70d07}</Project>
       <Name>AppModels</Name>
     </ProjectReference>
+    <ProjectReference Include="..\CalcConfigUpdater\CalcConfigUpdater.csproj">
+      <Project>{5646cada-feaf-4991-abda-dbebcd54d792}</Project>
+      <Name>CalcConfigUpdater</Name>
+    </ProjectReference>
     <ProjectReference Include="..\MinerClient\MinerClient.csproj">
       <Project>{128b59a2-fa1a-479c-9136-7eb866b96fb4}</Project>
       <Name>MinerClient</Name>