[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost-users
Subject:    Re: [Boost-users] [Log] [ASIO with ssl] windows service crash on windows server 2008
From:       Václav Zeman <vhaisman () gmail ! com>
Date:       2014-09-27 22:55:34
Message-ID: 54274066.3000408 () gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/alternative)]


On 26.9.2014 09:26, Pritesh Acharya wrote:

> Details:
> OS: Windows Server 2008 SP2
> Boost 1.56.0 (shared library)
> OpenSSL: Win32OpenSSL-1_0_1i
> 
> I have a windows service application written in C++. As a minimal test
> case, I have created a small demo code to show the problem. The
> service just log some information to a file and does nothing.
> The same code has no problem in my Development machine(windows7) and
> window Server 2003.
> Also on Windows Server 2008, when the service is run as LocalSystem
> privilege, it crashes, but when run as Administrator it works.
> 
> Additionally, when I remove the asio ssl header from the code, it works. 
> or when I remove the log header, it works. The problem seems to be
> related to when ASIO ssl and LOG are used together.
> 
> Below I've included 
> 1. Code
> 2. User Mode Crash dump 
> 3. Call Stack obtained from running Crash Dump
> 
> *1. Code:*
> 
> 
> /#include <boost/log/trivial.hpp>/
> /#include <boost/log/sources/severity_logger.hpp>/
> /#include <boost/asio/ssl.hpp>/
> /#include <windows.h>/
> /#include <stdio.h>/
> /
> /
> /#define SLEEP_TIME 5000/
> /#define LOGFILE "C:\\AASSLInstaller_D_56\\memstatus.txt"/
> /
> /
> /SERVICE_STATUS ServiceStatus; /
> /SERVICE_STATUS_HANDLE hStatus; /
> / /
> /void  ServiceMain(int argc, char** argv); /
> /void  ControlHandler(DWORD request); /
> /int InitService();/
> /
> /
> /int WriteToLog(char* str)/
> /{/
> /    FILE* log;/
> / log = fopen(LOGFILE, "a+");/
> / if (log == NULL)/
> /  return -1;/
> / fprintf(log, "%s\n", str);/
> / fclose(log);/
> / return 0;/
> /}/
> /
> /
> ///void ThreadFunction()/
> ///{/
> /// WriteToLog("at ThreadFunction");/
> /// //std::cout << "hello World " << std::endl;/
> /// //getchar();/
> ///}/
> /
> /
> /int main() /
> /{ /
> / using namespace boost::log::trivial; //for logging/
> / boost::log::sources::severity_logger_mt<
> boost::log::trivial::severity_level > lg;/
> / //WriteToLog("at main");/
> / //return 1;/
> /    SERVICE_TABLE_ENTRY ServiceTable[2];/
> /    ServiceTable[0].lpServiceName = "MemoryStatus";/
> /    ServiceTable[0].lpServiceProc =
> (LPSERVICE_MAIN_FUNCTION)ServiceMain;/
> /
> /
> /    ServiceTable[1].lpServiceName = NULL;/
> /    ServiceTable[1].lpServiceProc = NULL;/
> /    // Start the control dispatcher thread for our service/
> /    StartServiceCtrlDispatcher(ServiceTable);  /
> / return 0;/
> /}/
> /
> /
> /
> /
> /void ServiceMain(int argc, char** argv) /
> /{ /
> /    int error; /
> / /
> /    ServiceStatus.dwServiceType        = SERVICE_WIN32; /
> /    ServiceStatus.dwCurrentState       = SERVICE_START_PENDING; /
> /    ServiceStatus.dwControlsAccepted   = SERVICE_ACCEPT_STOP |
> SERVICE_ACCEPT_SHUTDOWN;/
> /    ServiceStatus.dwWin32ExitCode      = 0; /
> /    ServiceStatus.dwServiceSpecificExitCode = 0; /
> /    ServiceStatus.dwCheckPoint         = 0; /
> /    ServiceStatus.dwWaitHint           = 0; /
> / /
> /    hStatus = RegisterServiceCtrlHandler(/
> /  "MemoryStatus", /
> /  (LPHANDLER_FUNCTION)ControlHandler); /
> /    if (hStatus == (SERVICE_STATUS_HANDLE)0) /
> /    { /
> /        // Registering Control Handler failed/
> /        return; /
> /    }  /
> /    // Initialize Service /
> /    //error = InitService(); /
> / error = 0;/
> /    if (error) /
> /    {/
> /  // Initialization failed/
> /        ServiceStatus.dwCurrentState       = SERVICE_STOPPED; /
> /        ServiceStatus.dwWin32ExitCode      = -1; /
> /        SetServiceStatus(hStatus, &ServiceStatus); /
> /        return; /
> /    } /
> /    // We report the running status to SCM. /
> /    ServiceStatus.dwCurrentState = SERVICE_RUNNING; /
> /    SetServiceStatus (hStatus, &ServiceStatus);/
> / /
> /    MEMORYSTATUS memory;/
> /    // The worker loop of a service/
> / //boost::thread t(&ThreadFunction);/
> /    while (ServiceStatus.dwCurrentState == SERVICE_RUNNING)/
> / {/
> /  char buffer[16];/
> /  GlobalMemoryStatus(&memory);/
> /  sprintf(buffer, "%d", memory.dwAvailPhys);/
> /  int result = WriteToLog(buffer);/
> /  if (result)/
> /  {/
> /   ServiceStatus.dwCurrentState       = SERVICE_STOPPED; /
> /   ServiceStatus.dwWin32ExitCode      = -1; /
> /   SetServiceStatus(hStatus, &ServiceStatus);/
> /   return;/
> /  }/
> /
> /
> /  Sleep(SLEEP_TIME);/
> / }/
> /  return; /
> /}/
> / /
> /// Service initialization/
> /int InitService() /
> /{ /
> /    int result;/
> /    result = WriteToLog("Monitoring started.");/
> /    return(result); /
> /} /
> /
> /
> /// Control handler function/
> /void ControlHandler(DWORD request) /
> /{ /
> /    switch(request) /
> /    { /
> /        case SERVICE_CONTROL_STOP: /
> /             WriteToLog("Monitoring stopped.");/
> /
> /
> /            ServiceStatus.dwWin32ExitCode = 0; /
> /            ServiceStatus.dwCurrentState  = SERVICE_STOPPED; /
> /            SetServiceStatus (hStatus, &ServiceStatus);/
> /            return; /
> / /
> /        case SERVICE_CONTROL_SHUTDOWN: /
> /            WriteToLog("Monitoring stopped.");/
> /
> /
> /            ServiceStatus.dwWin32ExitCode = 0; /
> /            ServiceStatus.dwCurrentState  = SERVICE_STOPPED; /
> /            SetServiceStatus (hStatus, &ServiceStatus);/
> /            return; /
> /        /
> /        default:/
> /            break;/
> /    } /
> / /
> /    // Report current status/
> /    SetServiceStatus (hStatus,  &ServiceStatus);/
> / /
> /    return; /
> /} /
> /
> /
> *2. Dump*
> 
> 
> /Dump Summary/
> /------------/
> /Dump File:with_ssl_56.exe.4208.dmp : C:\Dumps\with_ssl_56.exe.4208.dmp/
> /Last Write Time:9/26/2014 11:59:38 AM/
> /Process Name:with_ssl_56.exe :
> C:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe/
> /Process Architecture:x86/
> /Exception Code:0xC0000005/
> /Exception Information:The thread tried to read from or write to a
> virtual address for which it does not have the appropriate access./
> /Heap Information:Not Present/
> /
> /
> /System Information/
> /------------------/
> /OS Version:6.0.6002/
> /CLR Version(s):/
> /
> /
> /Modules/
> /-------/
> /Module NameModule PathModule Version/
> /------------------------------------/
> /with_ssl_56.exeC:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe0.0.0.0/
>  /ntdll.dllC:\Windows\System32\ntdll.dll6.0.6002.18881/
> /kernel32.dllC:\Windows\System32\kernel32.dll6.0.6002.19034/
> /advapi32.dllC:\Windows\System32\advapi32.dll6.0.6002.18005/
> /rpcrt4.dllC:\Windows\System32\rpcrt4.dll6.0.6002.18882/
> /boost_log-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_log-vc100-mt-gd-1_56.dll0.0.0.0/
>  /boost_date_time-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_date_time-vc100-mt-gd-1_56.dll0.0.0.0/
>  /MSVCP100D.dllC:\Windows\System32\MSVCP100D.dll10.0.30319.1/
> /MSVCR100D.dllC:\Windows\System32\MSVCR100D.dll10.0.30319.1/
> /boost_system-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_system-vc100-mt-gd-1_56.dll0.0.0.0/
>  /boost_filesystem-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_filesystem-vc100-mt-gd-1_56.dll0.0.0.0/
>  /boost_chrono-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_chrono-vc100-mt-gd-1_56.dll0.0.0.0/
>  /boost_thread-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_thread-vc100-mt-gd-1_56.dll0.0.0.0/
>  /psapi.dllC:\Windows\System32\psapi.dll6.0.6000.16386/
> /ws2_32.dllC:\Windows\System32\ws2_32.dll6.0.6001.18000/
> /msvcrt.dllC:\Windows\System32\msvcrt.dll7.0.6002.18551/
> /nsi.dllC:\Windows\System32\nsi.dll6.0.6001.18000/
> /user32.dllC:\Windows\System32\user32.dll6.0.6002.18005/
> /gdi32.dllC:\Windows\System32\gdi32.dll6.0.6002.19171/
> 
> *3. Call Stack*
> /  00000000() /
> /  user32.dll!76659ce4()  /
> /  [Frames below may be incorrect and/or missing, no symbols loaded
> for user32.dll] /
> /  advapi32.dll!77b84158()  /
> /  advapi32.dll!77b840f6()  /
> /  advapi32.dll!77b8430d()  /
> /  ws2_32.dll!7670ab6d()  /
> /  ws2_32.dll!7670aa95()  /
> /  ws2_32.dll!7670a3b2()  /
> /  ws2_32.dll!7670ae3f()  /
> /  ws2_32.dll!7670ad7a()  /
> /  ws2_32.dll!7670acc3()  /
> /  ws2_32.dll!7670ac2b()  /
> / 
> boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init_base::startup(boost::asio::detail::winsock_init_base::data
>  & d, unsigned char major, unsigned char minor)  Line 39 + 0x2d bytes C++/
> / 
> boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init<2,0>::winsock_init<2,0>(bool
>  allow_throw)  Line 57 + 0xe bytes C++/
> /> boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::`dynamic
> initializer for 'winsock_init_instance''()  Line 116 + 0x1c bytes C++/
> /  MSVCR100D.dll!_initterm(void (void)* * pfbegin, void (void)* *
> pfend)  Line 873 C/
> /  boost_log-vc100-mt-gd-1_56.dll!_CRT_INIT(void * hDllHandle,
> unsigned long dwReason, void * lpreserved)  Line 284 + 0xf bytes C/
> /  boost_log-vc100-mt-gd-1_56.dll!__DllMainCRTStartup(void *
> hDllHandle, unsigned long dwReason, void * lpreserved)  Line 506 +
> 0x11 bytes C/
> /  boost_log-vc100-mt-gd-1_56.dll!_DllMainCRTStartup(void *
> hDllHandle, unsigned long dwReason, void * lpreserved)  Line 476 +
> 0x11 bytes C/
> /  ntdll.dll!77a112f4()  /
> /  ntdll.dll!779f906b()  /
> /  ntdll.dll!77a016d2()  /
> /  ntdll.dll!779fbf5a()  /
> 
It seems wrong to initialize WinSock from |DllMain()| context. This is
WAG, but try using the manual initialization of ASIO/WinSock in
> ServiceMain()|. See the comment above |class manual|
<http://www.boost.org/doc/libs/1_56_0/boost/asio/detail/winsock_init.hpp>.

-- 
VZ

​


[Attachment #7 (text/html)]

<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div markdown-here-wrapper-content-modified="true" style=""
      class="markdown-here-wrapper" data-md-url="Thunderbird">
      <p style="margin: 1.2em 0px ! important;">On 26.9.2014 09:26,
        Pritesh Acharya wrote:</p>
      <p style="margin: 1.2em 0px ! important;"></p>
      <div class="markdown-here-exclude">
        <p></p>
        <blockquote
cite="mid:CACHJcDyU1y++SoLJtzvrHBURJaH33OKPaBtYPH54noRb5q_VJg@mail.gmail.com"
          type="cite">
          <div dir="ltr">
            <div>Details:<br>
              OS: Windows Server 2008 SP2<br>
              Boost 1.56.0 (shared library)<br>
              OpenSSL:  Win32OpenSSL-1_0_1i<br>
              <br>
            </div>
            I have a windows service application written in C++. As a
            minimal test case, I have created a small demo code to show
            the problem. The service just log some information to a file
            and does nothing.
            <div>
              <div>The same code has no problem in my Development
                machine(windows7) and window Server 2003. <br>
                Also on Windows Server 2008, when the service is run as
                LocalSystem privilege, it crashes, but when run as
                Administrator it works.<br>
                <br>
                Additionally, when I remove the asio ssl header from the
                code, it works.  <br>
                or when I remove the log header, it works. The problem
                seems to be related to when ASIO ssl and LOG are used
                together.</div>
            </div>
            <div><br>
              Below I've included  <br>
              1. Code<br>
              2. User Mode Crash dump  <br>
              3. Call Stack obtained from running Crash Dump<br>
              <br>
            </div>
            <div><b>1. Code:</b><br>
              <div><br>
              </div>
              <div>
                <div><br>
                </div>
                <div><i>#include &lt;boost/log/trivial.hpp&gt;</i></div>
                <div><i>#include
                    &lt;boost/log/sources/severity_logger.hpp&gt;</i></div>
                <div><i>#include &lt;boost/asio/ssl.hpp&gt;</i></div>
                <div><i>#include &lt;windows.h&gt;</i></div>
                <div><i>#include &lt;stdio.h&gt;</i></div>
                <div><i><br>
                  </i></div>
                <div><i>#define SLEEP_TIME 5000</i></div>
                <div><i>#define LOGFILE
                    "C:\\AASSLInstaller_D_56\\memstatus.txt"</i></div>
                <div><i><br>
                  </i></div>
                <div><i>SERVICE_STATUS ServiceStatus;  </i></div>
                <div><i>SERVICE_STATUS_HANDLE hStatus;  </i></div>
                <div><i>  </i></div>
                <div><i>void   ServiceMain(int argc, char** argv);  </i></div>
                <div><i>void   ControlHandler(DWORD request);  </i></div>
                <div><i>int InitService();</i></div>
                <div><i><br>
                  </i></div>
                <div><i>int WriteToLog(char* str)</i></div>
                <div><i>{</i></div>
                <div><i>      FILE* log;</i></div>
                <div><i>  log = fopen(LOGFILE, "a+");</i></div>
                <div><i>  if (log == NULL)</i></div>
                <div><i>   return -1;</i></div>
                <div><i>  fprintf(log, "%s\n", str);</i></div>
                <div><i>  fclose(log);</i></div>
                <div><i>  return 0;</i></div>
                <div><i>}</i></div>
                <div><i><br>
                  </i></div>
                <div><i>//void ThreadFunction()</i></div>
                <div><i>//{</i></div>
                <div><i>// WriteToLog("at ThreadFunction");</i></div>
                <div><i>// //std::cout &lt;&lt; "hello World " &lt;&lt;
                    std::endl;</i></div>
                <div><i>// //getchar();</i></div>
                <div><i>//}</i></div>
                <div><i><br>
                  </i></div>
                <div><i>int main()  </i></div>
                <div><i>{  </i></div>
                <div><i>  using namespace boost::log::trivial; //for
                    logging</i></div>
                <div><i>  boost::log::sources::severity_logger_mt&lt;
                    boost::log::trivial::severity_level &gt; lg;</i></div>
                <div><i>  //WriteToLog("at main");</i></div>
                <div><i>  //return 1;</i></div>
                <div><i>      SERVICE_TABLE_ENTRY ServiceTable[2];</i></div>
                <div><i>      ServiceTable[0].lpServiceName =
                    "MemoryStatus";</i></div>
                <div><i>      ServiceTable[0].lpServiceProc =
                    (LPSERVICE_MAIN_FUNCTION)ServiceMain;</i></div>
                <div><i><br>
                  </i></div>
                <div><i>      ServiceTable[1].lpServiceName = NULL;</i></div>
                <div><i>      ServiceTable[1].lpServiceProc = NULL;</i></div>
                <div><i>      // Start the control dispatcher thread for
                    our service</i></div>
                <div><i>      StartServiceCtrlDispatcher(ServiceTable);   </i></div>
                <div><i>  return 0;</i></div>
                <div><i>}</i></div>
                <div><i><br>
                  </i></div>
                <div><i><br>
                  </i></div>
                <div><i>void ServiceMain(int argc, char** argv)  </i></div>
                <div><i>{  </i></div>
                <div><i>      int error;  </i></div>
                <div><i>  </i></div>
                <div><i>      ServiceStatus.dwServiceType            =
                    SERVICE_WIN32;  </i></div>
                <div><i>      ServiceStatus.dwCurrentState          =
                    SERVICE_START_PENDING;  </i></div>
                <div><i>      ServiceStatus.dwControlsAccepted    =
                    SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;</i></div>
                <div><i>      ServiceStatus.dwWin32ExitCode         = 0;  </i></div>
                <div><i>      ServiceStatus.dwServiceSpecificExitCode =
                    0;  </i></div>
                <div><i>      ServiceStatus.dwCheckPoint             = 0;  </i></div>
                <div><i>      ServiceStatus.dwWaitHint                = 0;  \
</i></div>  <div><i>  </i></div>
                <div><i>      hStatus = RegisterServiceCtrlHandler(</i></div>
                <div><i>   "MemoryStatus",  </i></div>
                <div><i>   (LPHANDLER_FUNCTION)ControlHandler);  </i></div>
                <div><i>      if (hStatus == (SERVICE_STATUS_HANDLE)0)  </i></div>
                <div><i>      {  </i></div>
                <div><i>            // Registering Control Handler failed</i></div>
                <div><i>            return;  </i></div>
                <div><i>      }   </i></div>
                <div><i>      // Initialize Service  </i></div>
                <div><i>      //error = InitService();  </i></div>
                <div><i>  error = 0;</i></div>
                <div><i>      if (error)  </i></div>
                <div><i>      {</i></div>
                <div><i>   // Initialization failed</i></div>
                <div><i>            ServiceStatus.dwCurrentState          =
                    SERVICE_STOPPED;  </i></div>
                <div><i>            ServiceStatus.dwWin32ExitCode         =
                    -1;  </i></div>
                <div><i>            SetServiceStatus(hStatus,
                    &amp;ServiceStatus);  </i></div>
                <div><i>            return;  </i></div>
                <div><i>      }  </i></div>
                <div><i>      // We report the running status to SCM.  </i></div>
                <div><i>      ServiceStatus.dwCurrentState =
                    SERVICE_RUNNING;  </i></div>
                <div><i>      SetServiceStatus (hStatus,
                    &amp;ServiceStatus);</i></div>
                <div><i>  </i></div>
                <div><i>      MEMORYSTATUS memory;</i></div>
                <div><i>      // The worker loop of a service</i></div>
                <div><i>  //boost::thread t(&amp;ThreadFunction);</i></div>
                <div><i>      while (ServiceStatus.dwCurrentState ==
                    SERVICE_RUNNING)</i></div>
                <div><i>  {</i></div>
                <div><i>   char buffer[16];</i></div>
                <div><i>   GlobalMemoryStatus(&amp;memory);</i></div>
                <div><i>   sprintf(buffer, "%d", memory.dwAvailPhys);</i></div>
                <div><i>   int result = WriteToLog(buffer);</i></div>
                <div><i>   if (result)</i></div>
                <div><i>   {</i></div>
                <div><i>     ServiceStatus.dwCurrentState          =
                    SERVICE_STOPPED;  </i></div>
                <div><i>     ServiceStatus.dwWin32ExitCode         = -1;  </i></div>
                <div><i>     SetServiceStatus(hStatus,
                    &amp;ServiceStatus);</i></div>
                <div><i>     return;</i></div>
                <div><i>   }</i></div>
                <div><i><br>
                  </i></div>
                <div><i>   Sleep(SLEEP_TIME);</i></div>
                <div><i>  }</i></div>
                <div><i>   return;  </i></div>
                <div><i>}</i></div>
                <div><i>  </i></div>
                <div><i>// Service initialization</i></div>
                <div><i>int InitService()  </i></div>
                <div><i>{  </i></div>
                <div><i>      int result;</i></div>
                <div><i>      result = WriteToLog("Monitoring started.");</i></div>
                <div><i>      return(result);  </i></div>
                <div><i>}  </i></div>
                <div><i><br>
                  </i></div>
                <div><i>// Control handler function</i></div>
                <div><i>void ControlHandler(DWORD request)  </i></div>
                <div><i>{  </i></div>
                <div><i>      switch(request)  </i></div>
                <div><i>      {  </i></div>
                <div><i>            case SERVICE_CONTROL_STOP:  </i></div>
                <div><i>                    WriteToLog("Monitoring \
stopped.");</i></div>  <div><i><br>
                  </i></div>
                <div><i>                  ServiceStatus.dwWin32ExitCode = 0;  \
</i></div>  <div><i>                  ServiceStatus.dwCurrentState   =
                    SERVICE_STOPPED;  </i></div>
                <div><i>                  SetServiceStatus (hStatus,
                    &amp;ServiceStatus);</i></div>
                <div><i>                  return;  </i></div>
                <div><i>  </i></div>
                <div><i>            case SERVICE_CONTROL_SHUTDOWN:  </i></div>
                <div><i>                  WriteToLog("Monitoring \
stopped.");</i></div>  <div><i><br>
                  </i></div>
                <div><i>                  ServiceStatus.dwWin32ExitCode = 0;  \
</i></div>  <div><i>                  ServiceStatus.dwCurrentState   =
                    SERVICE_STOPPED;  </i></div>
                <div><i>                  SetServiceStatus (hStatus,
                    &amp;ServiceStatus);</i></div>
                <div><i>                  return;  </i></div>
                <div><i>             </i></div>
                <div><i>            default:</i></div>
                <div><i>                  break;</i></div>
                <div><i>      }  </i></div>
                <div><i>  </i></div>
                <div><i>      // Report current status</i></div>
                <div><i>      SetServiceStatus (hStatus,
                      &amp;ServiceStatus);</i></div>
                <div><i>  </i></div>
                <div><i>      return;  </i></div>
                <div><i>}  </i></div>
                <div><i><br>
                  </i></div>
                <div><b>2. Dump</b></div>
                <div><br>
                </div>
              </div>
              <div>
                <div><br>
                </div>
                <div><i>Dump Summary</i></div>
                <div><i>------------</i></div>
                <div><i>Dump File:<span class="" style="white-space:pre">
                    </span>with_ssl_56.exe.4208.dmp :
                    C:\Dumps\with_ssl_56.exe.4208.dmp</i></div>
                <div><i>Last Write Time:<span class=""
                      style="white-space:pre"> </span>9/26/2014
                    11:59:38 AM</i></div>
                <div><i>Process Name:<span class=""
                      style="white-space:pre"> </span>with_ssl_56.exe :
C:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe</i></div>
                <div><i>Process Architecture:<span class=""
                      style="white-space:pre"> </span>x86</i></div>
                <div><i>Exception Code:<span class=""
                      style="white-space:pre"> </span>0xC0000005</i></div>
                <div><i>Exception Information:<span class=""
                      style="white-space:pre"> </span>The thread tried
                    to read from or write to a virtual address for which
                    it does not have the appropriate access.</i></div>
                <div><i>Heap Information:<span class=""
                      style="white-space:pre"> </span>Not Present</i></div>
                <div><i><br>
                  </i></div>
                <div><i>System Information</i></div>
                <div><i>------------------</i></div>
                <div><i>OS Version:<span class=""
                      style="white-space:pre"> </span>6.0.6002</i></div>
                <div><i>CLR Version(s):<span class=""
                      style="white-space:pre"> </span></i></div>
                <div><i><br>
                  </i></div>
                <div><i>Modules</i></div>
                <div><i>-------</i></div>
                <div><i>Module Name<span class=""
                      style="white-space:pre"> </span>Module Path<span
                      class="" style="white-space:pre"> </span>Module
                    Version</i></div>
                <div><i>-----------<span class=""
                      style="white-space:pre"> </span>-----------<span
                      class="" style="white-space:pre"> \
</span>--------------</i></div>  <div><i>with_ssl_56.exe<span class=""
                      style="white-space:pre"> \
                </span>C:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe<span
                
                      class="" style="white-space:pre"> </span>0.0.0.0</i></div>
                <div><i>ntdll.dll<span class="" style="white-space:pre">
                    </span>C:\Windows\System32\ntdll.dll<span class=""
                      style="white-space:pre"> </span>6.0.6002.18881</i></div>
                <div><i>kernel32.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\Windows\System32\kernel32.dll<span
                      class="" style="white-space:pre"> \
</span>6.0.6002.19034</i></div>  <div><i>advapi32.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\Windows\System32\advapi32.dll<span
                      class="" style="white-space:pre"> \
</span>6.0.6002.18005</i></div>  <div><i>rpcrt4.dll<span class="" \
style="white-space:pre">  </span>C:\Windows\System32\rpcrt4.dll<span class=""
                      style="white-space:pre"> </span>6.0.6002.18882</i></div>
                <div><i>boost_log-vc100-mt-gd-1_56.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\boost_1_56_0_dyn\stage\lib\boost_log-vc100-mt-gd-1_56.dll<span
                
                      class="" style="white-space:pre"> </span>0.0.0.0</i></div>
                <div><i>boost_date_time-vc100-mt-gd-1_56.dll<span
                      class="" style="white-space:pre"> \
                </span>C:\boost_1_56_0_dyn\stage\lib\boost_date_time-vc100-mt-gd-1_56.dll<span
                
                      class="" style="white-space:pre"> </span>0.0.0.0</i></div>
                <div><i>MSVCP100D.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\Windows\System32\MSVCP100D.dll<span
                      class="" style="white-space:pre"> </span>10.0.30319.1</i></div>
                <div><i>MSVCR100D.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\Windows\System32\MSVCR100D.dll<span
                      class="" style="white-space:pre"> </span>10.0.30319.1</i></div>
                <div><i>boost_system-vc100-mt-gd-1_56.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\boost_1_56_0_dyn\stage\lib\boost_system-vc100-mt-gd-1_56.dll<span
                
                      class="" style="white-space:pre"> </span>0.0.0.0</i></div>
                <div><i>boost_filesystem-vc100-mt-gd-1_56.dll<span
                      class="" style="white-space:pre"> \
                </span>C:\boost_1_56_0_dyn\stage\lib\boost_filesystem-vc100-mt-gd-1_56.dll<span
                
                      class="" style="white-space:pre"> </span>0.0.0.0</i></div>
                <div><i>boost_chrono-vc100-mt-gd-1_56.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\boost_1_56_0_dyn\stage\lib\boost_chrono-vc100-mt-gd-1_56.dll<span
                
                      class="" style="white-space:pre"> </span>0.0.0.0</i></div>
                <div><i>boost_thread-vc100-mt-gd-1_56.dll<span class=""
                      style="white-space:pre"> \
                </span>C:\boost_1_56_0_dyn\stage\lib\boost_thread-vc100-mt-gd-1_56.dll<span
                
                      class="" style="white-space:pre"> </span>0.0.0.0</i></div>
                <div><i>psapi.dll<span class="" style="white-space:pre">
                    </span>C:\Windows\System32\psapi.dll<span class=""
                      style="white-space:pre"> </span>6.0.6000.16386</i></div>
                <div><i>ws2_32.dll<span class="" style="white-space:pre">
                    </span>C:\Windows\System32\ws2_32.dll<span class=""
                      style="white-space:pre"> </span>6.0.6001.18000</i></div>
                <div><i>msvcrt.dll<span class="" style="white-space:pre">
                    </span>C:\Windows\System32\msvcrt.dll<span class=""
                      style="white-space:pre"> </span>7.0.6002.18551</i></div>
                <div><i>nsi.dll<span class="" style="white-space:pre"> \
                </span>C:\Windows\System32\nsi.dll<span
                      class="" style="white-space:pre"> \
</span>6.0.6001.18000</i></div>  <div><i>user32.dll<span class="" \
style="white-space:pre">  </span>C:\Windows\System32\user32.dll<span class=""
                      style="white-space:pre"> </span>6.0.6002.18005</i></div>
                <div><i>gdi32.dll<span class="" style="white-space:pre">
                    </span>C:\Windows\System32\gdi32.dll<span class=""
                      style="white-space:pre"> </span>6.0.6002.19171</i></div>
              </div>
            </div>
            <div><br>
              <b>3. Call Stack</b><br>
              <div style=""><i>   00000000()  </i></div>
              <div style=""><i>   user32.dll!76659ce4()   </i></div>
              <div style=""><i>   [Frames below may be incorrect and/or
                  missing, no symbols loaded for user32.dll]  </i></div>
              <div style=""><i>   advapi32.dll!77b84158()   </i></div>
              <div style=""><i>   advapi32.dll!77b840f6()   </i></div>
              <div style=""><i>   advapi32.dll!77b8430d()   </i></div>
              <div style=""><i>   ws2_32.dll!7670ab6d()   </i></div>
              <div style=""><i>   ws2_32.dll!7670aa95()   </i></div>
              <div style=""><i>   ws2_32.dll!7670a3b2()   </i></div>
              <div style=""><i>   ws2_32.dll!7670ae3f()   </i></div>
              <div style=""><i>   ws2_32.dll!7670ad7a()   </i></div>
              <div style=""><i>   ws2_32.dll!7670acc3()   </i></div>
              <div style=""><i>   ws2_32.dll!7670ac2b()   </i></div>
              <div style=""><i>  
                  boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init_base::startup(boost::asio::detail::winsock_init_base::data
  &amp; d, unsigned char major, unsigned char minor)
                    Line 39 + 0x2d bytes C++</i></div>
              <div style=""><i>  
                  boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init&lt;2,0&gt;::winsock_init&lt;2,0&gt;(bool
  allow_throw)   Line 57 + 0xe bytes C++</i></div>
              <div style=""><i>&gt;
                  boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::`dynamic
                  initializer for 'winsock_init_instance''()   Line 116 +
                  0x1c bytes C++</i></div>
              <div style=""><i>   MSVCR100D.dll!_initterm(void (void)* *
                  pfbegin, void (void)* * pfend)   Line 873 C</i></div>
              <div style=""><i>  
                  boost_log-vc100-mt-gd-1_56.dll!_CRT_INIT(void *
                  hDllHandle, unsigned long dwReason, void * lpreserved)
                    Line 284 + 0xf bytes C</i></div>
              <div style=""><i>  
                  boost_log-vc100-mt-gd-1_56.dll!__DllMainCRTStartup(void
                  * hDllHandle, unsigned long dwReason, void *
                  lpreserved)   Line 506 + 0x11 bytes C</i></div>
              <div style=""><i>  
                  boost_log-vc100-mt-gd-1_56.dll!_DllMainCRTStartup(void
                  * hDllHandle, unsigned long dwReason, void *
                  lpreserved)   Line 476 + 0x11 bytes C</i></div>
              <div style=""><i>   ntdll.dll!77a112f4()   </i></div>
              <div style=""><i>   ntdll.dll!779f906b()   </i></div>
              <div style=""><i>   ntdll.dll!77a016d2()   </i></div>
              <div style=""><i>   ntdll.dll!779fbf5a()   </i></div>
            </div>
          </div>
          <br>
        </blockquote>
        <p></p>
      </div>
      <p style="margin: 1.2em 0px ! important;"></p>
      <p style="margin: 1.2em 0px ! important;">It seems wrong to
        initialize WinSock from <code style="font-size: 0.85em;
          font-family: Consolas,Inconsolata,Courier,monospace;margin:
          0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border:
          1px solid rgb(234, 234, 234); background-color: rgb(248, 248,
          248); border-radius: 3px; display: inline;">DllMain()</code>
        context. This is WAG, but try using the manual initialization of
        ASIO/WinSock in <code style="font-size: 0.85em; font-family:
          Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em;
          padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid
          rgb(234, 234, 234); background-color: rgb(248, 248, 248);
          border-radius: 3px; display: inline;">ServiceMain()</code>.
        See the <a
href="http://www.boost.org/doc/libs/1_56_0/boost/asio/detail/winsock_init.hpp">comment
  above <code style="font-size: 0.85em; font-family:
            Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em;
            padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid
            rgb(234, 234, 234); background-color: rgb(248, 248, 248);
            border-radius: 3px; display: inline;">class manual</code></a>.<br>
      </p>
      <p style="margin: 1.2em 0px ! important;">-- <br>
        VZ<br>
        <br>
      </p>
      <div
title="MDH:PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAyNi45LjIwMTQgMDk6MjYsIFByaXRlc2ggQWNoYXJ5YSB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2l0ZT0ibWlkOkNBQ0hKY0R5VTF5
 KytTb0xKdHp2ckhCVVJKYUgzM09LUGFCdFlQSDU0bm9SYjVxX1ZKZ0BtYWlsLmdtYWlsLmNvbSIg
dHlwZT0iY2l0ZSI+PGRpdiBkaXI9Imx0ciI+PGRpdj5EZXRhaWxzOjxicj5PUzogV2luZG93cyBT
ZXJ2ZXIgMjAwOCBTUDI8YnI+Qm9vc3QgMS41Ni4wIChzaGFyZWQgbGlicmFyeSk8YnI+T3BlblNT
TDombmJzcDtXaW4zMk9wZW5TU0wtMV8wXzFpPGJyPjxicj48L2Rpdj5JIGhhdmUgYSB3aW5kb3dz
IHNlcnZpY2UgYXBwbGljYXRpb24gd3JpdHRlbiBpbiBDKysuIEFzIGEgbWluaW1hbCB0ZXN0IGNh
c2UsIEkgaGF2ZSBjcmVhdGVkIGEgc21hbGwgZGVtbyBjb2RlIHRvIHNob3cgdGhlIHByb2JsZW0u
IFRoZSBzZXJ2aWNlIGp1c3QgbG9nIHNvbWUgaW5mb3JtYXRpb24gdG8gYSBmaWxlIGFuZCBkb2Vz
IG5vdGhpbmcuPGRpdj48ZGl2PlRoZSBzYW1lIGNvZGUgaGFzIG5vIHByb2JsZW0gaW4gbXkgRGV2
ZWxvcG1lbnQgbWFjaGluZSh3aW5kb3dzNykgYW5kIHdpbmRvdyBTZXJ2ZXIgMjAwMy4gPGJyPkFs
c28gb24gV2luZG93cyBTZXJ2ZXIgMjAwOCwgd2hlbiB0aGUgc2VydmljZSBpcyBydW4gYXMgTG9j
YWxTeXN0ZW0gcHJpdmlsZWdlLCBpdCBjcmFzaGVzLCBidXQgd2hlbiBydW4gYXMgQWRtaW5pc3Ry
YXRvciBpdCB3b3Jrcy48YnI+PGJyPkFkZGl0aW9uYWxseSwgd2hlbiBJIHJlbW92ZSB0aGUgYXNp
byBzc2wgaGVhZGVyIGZyb20gdGhlIGNvZGUsIGl0IHdvcmtzLiZuYnNwOzxicj5vciB3aGVuIEkg
cmVtb3ZlIHRoZSBsb2cgaGVhZGVyLCBpdCB3b3Jrcy4gVGhlIHByb2JsZW0gc2VlbXMgdG8gYmUg
cmVsYXRlZCB0byB3aGVuIEFTSU8gc3NsIGFuZCBMT0cgYXJlIHVzZWQgdG9nZXRoZXIuPC9kaXY+
PC9kaXY+PGRpdj48YnI+QmVsb3cgSSd2ZSBpbmNsdWRlZCZuYnNwOzxicj4xLiBDb2RlPGJyPjIu
IFVzZXIgTW9kZSBDcmFzaCBkdW1wJm5ic3A7PGJyPjMuIENhbGwgU3RhY2sgb2J0YWluZWQgZnJv
bSBydW5uaW5nIENyYXNoIER1bXA8YnI+PGJyPjwvZGl2PjxkaXY+PGI+MS4gQ29kZTo8L2I+PGJy
PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48aT4jaW5jbHVkZSAmbHQ7
Ym9vc3QvbG9nL3RyaXZpYWwuaHBwJmd0OzwvaT48L2Rpdj48ZGl2PjxpPiNpbmNsdWRlICZsdDti
b29zdC9sb2cvc291cmNlcy9zZXZlcml0eV9sb2dnZXIuaHBwJmd0OzwvaT48L2Rpdj48ZGl2Pjxp
PiNpbmNsdWRlICZsdDtib29zdC9hc2lvL3NzbC5ocHAmZ3Q7PC9pPjwvZGl2PjxkaXY+PGk+I2lu
Y2x1ZGUgJmx0O3dpbmRvd3MuaCZndDs8L2k+PC9kaXY+PGRpdj48aT4jaW5jbHVkZSAmbHQ7c3Rk
aW8uaCZndDs8L2k+PC9kaXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGk+I2RlZmluZSBT
TEVFUF9USU1FIDUwMDA8L2k+PC9kaXY+PGRpdj48aT4jZGVmaW5lIExPR0ZJTEUgIkM6XFxBQVNT
TEluc3RhbGxlcl9EXzU2XFxtZW1zdGF0dXMudHh0IjwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+
PC9kaXY+PGRpdj48aT5TRVJWSUNFX1NUQVRVUyBTZXJ2aWNlU3RhdHVzOyZuYnNwOzwvaT48L2Rp
dj48ZGl2PjxpPlNFUlZJQ0VfU1RBVFVTX0hBTkRMRSBoU3RhdHVzOyZuYnNwOzwvaT48L2Rpdj48
ZGl2PjxpPiZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPnZvaWQgJm5ic3A7U2VydmljZU1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KTsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT52b2lkICZuYnNwO0Nv
bnRyb2xIYW5kbGVyKERXT1JEIHJlcXVlc3QpOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPmludCBJ
bml0U2VydmljZSgpOzwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT5pbnQg
V3JpdGVUb0xvZyhjaGFyKiBzdHIpPC9pPjwvZGl2PjxkaXY+PGk+ezwvaT48L2Rpdj48ZGl2Pjxp
PiZuYnNwOyAmbmJzcDsgRklMRSogbG9nOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwO2xvZyA9IGZv
cGVuKExPR0ZJTEUsICJhKyIpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwO2lmIChsb2cgPT0gTlVM
TCk8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgcmV0dXJuIC0xOzwvaT48L2Rpdj48ZGl2PjxpPiZu
YnNwO2ZwcmludGYobG9nLCAiJXNcbiIsIHN0cik7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ZmNs
b3NlKGxvZyk7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7cmV0dXJuIDA7PC9pPjwvZGl2PjxkaXY+
PGk+fTwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT4vL3ZvaWQgVGhyZWFk
RnVuY3Rpb24oKTwvaT48L2Rpdj48ZGl2PjxpPi8vezwvaT48L2Rpdj48ZGl2PjxpPi8vIFdyaXRl
VG9Mb2coImF0IFRocmVhZEZ1bmN0aW9uIik7PC9pPjwvZGl2PjxkaXY+PGk+Ly8gLy9zdGQ6OmNv
dXQgJmx0OyZsdDsgImhlbGxvIFdvcmxkICIgJmx0OyZsdDsgc3RkOjplbmRsOzwvaT48L2Rpdj48
ZGl2PjxpPi8vIC8vZ2V0Y2hhcigpOzwvaT48L2Rpdj48ZGl2PjxpPi8vfTwvaT48L2Rpdj48ZGl2
PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT5pbnQgbWFpbigpJm5ic3A7PC9pPjwvZGl2PjxkaXY+
PGk+eyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwO3VzaW5nIG5hbWVzcGFjZSBib29zdDo6
bG9nOjp0cml2aWFsOyAvL2ZvciBsb2dnaW5nPC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7Ym9vc3Q6
OmxvZzo6c291cmNlczo6c2V2ZXJpdHlfbG9nZ2VyX210Jmx0OyBib29zdDo6bG9nOjp0cml2aWFs
OjpzZXZlcml0eV9sZXZlbCAmZ3Q7IGxnOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOy8vV3JpdGVU
b0xvZygiYXQgbWFpbiIpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOy8vcmV0dXJuIDE7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJs
ZVsyXTs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IFNlcnZpY2VUYWJsZVswXS5scFNl
cnZpY2VOYW1lID0gIk1lbW9yeVN0YXR1cyI7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNw
OyBTZXJ2aWNlVGFibGVbMF0ubHBTZXJ2aWNlUHJvYyA9IChMUFNFUlZJQ0VfTUFJTl9GVU5DVElP
TilTZXJ2aWNlTWFpbjs8L2k+PC9kaXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGk+Jm5i
c3A7ICZuYnNwOyBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlTmFtZSA9IE5VTEw7PC9pPjwvZGl2
PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlUHJvYyA9IE5V
TEw7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAvLyBTdGFydCB0aGUgY29udHJvbCBk
aXNwYXRjaGVyIHRocmVhZCBmb3Igb3VyIHNlcnZpY2U8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsg
Jm5ic3A7IFN0YXJ0U2VydmljZUN0cmxEaXNwYXRjaGVyKFNlcnZpY2VUYWJsZSk7ICZuYnNwOzwv
aT48L2Rpdj48ZGl2PjxpPiZuYnNwO3JldHVybiAwOzwvaT48L2Rpdj48ZGl2PjxpPn08L2k+PC9k
aXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGk+PGJyPjwvaT48L2Rpdj48ZGl2PjxpPnZv
aWQgU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSZuYnNwOzwvaT48L2Rpdj48ZGl2
PjxpPnsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IGludCBlcnJvcjsmbmJz
cDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7
IFNlcnZpY2VTdGF0dXMuZHdTZXJ2aWNlVHlwZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs9
IFNFUlZJQ0VfV0lOMzI7Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXJ2
aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlICZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gU0VSVklDRV9T
VEFSVF9QRU5ESU5HOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgU2Vydmlj
ZVN0YXR1cy5kd0NvbnRyb2xzQWNjZXB0ZWQgJm5ic3A7ID0gU0VSVklDRV9BQ0NFUFRfU1RPUCB8
IFNFUlZJQ0VfQUNDRVBUX1NIVVRET1dOOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsg
U2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgJm5ic3A7ICZuYnNwOyAmbmJzcDs9IDA7Jm5i
c3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXJ2aWNlU3RhdHVzLmR3U2Vydmlj
ZVNwZWNpZmljRXhpdENvZGUgPSAwOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJz
cDsgU2VydmljZVN0YXR1cy5kd0NoZWNrUG9pbnQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ID0gMDsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMu
ZHdXYWl0SGludCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gMDsmbmJzcDs8
L2k+PC9kaXY+PGRpdj48aT4mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IGhT
dGF0dXMgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxlcig8L2k+PC9kaXY+PGRpdj48aT4mbmJz
cDsgIk1lbW9yeVN0YXR1cyIsJm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7IChMUEhBTkRM
RVJfRlVOQ1RJT04pQ29udHJvbEhhbmRsZXIpOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNw
OyAmbmJzcDsgaWYgKGhTdGF0dXMgPT0gKFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSkwKSZuYnNwOzwv
aT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgeyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAvLyBSZWdpc3RlcmluZyBDb250cm9sIEhhbmRsZXIg
ZmFpbGVkPC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHJldHVy
bjsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IH0gJm5ic3A7PC9pPjwvZGl2
PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAvLyBJbml0aWFsaXplIFNlcnZpY2UmbmJzcDs8L2k+PC9k
aXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IC8vZXJyb3IgPSBJbml0U2VydmljZSgpOyZuYnNwOzwv
aT48L2Rpdj48ZGl2PjxpPiZuYnNwO2Vycm9yID0gMDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsg
Jm5ic3A7IGlmIChlcnJvcikmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IHs8
L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgLy8gSW5pdGlhbGl6YXRpb24gZmFpbGVkPC9pPjwvZGl2
PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMuZHdDdXJy
ZW50U3RhdGUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPSBTRVJWSUNFX1NUT1BQRUQ7Jm5ic3A7PC9p
PjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMu
ZHdXaW4zMkV4aXRDb2RlICZuYnNwOyAmbmJzcDsgJm5ic3A7PSAtMTsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgU2V0U2VydmljZVN0YXR1cyhoU3Rh
dHVzLCAmYW1wO1NlcnZpY2VTdGF0dXMpOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyByZXR1cm47Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7
ICZuYnNwOyB9Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAvLyBXZSByZXBv
cnQgdGhlIHJ1bm5pbmcgc3RhdHVzIHRvIFNDTS4mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJz
cDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgPSBTRVJWSUNFX1JVTk5JTkc7
Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXRTZXJ2aWNlU3RhdHVzICho
U3RhdHVzLCAmYW1wO1NlcnZpY2VTdGF0dXMpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgTUVNT1JZU1RBVFVTIG1lbW9yeTs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7IC8vIFRoZSB3b3JrZXIgbG9vcCBvZiBhIHNlcnZpY2U8L2k+
PC9kaXY+PGRpdj48aT4mbmJzcDsvL2Jvb3N0Ojp0aHJlYWQgdCgmYW1wO1RocmVhZEZ1bmN0aW9u
KTs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IHdoaWxlIChTZXJ2aWNlU3RhdHVzLmR3
Q3VycmVudFN0YXRlID09IFNFUlZJQ0VfUlVOTklORyk8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDt7
PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7IGNoYXIgYnVmZmVyWzE2XTs8L2k+PC9kaXY+PGRpdj48
aT4mbmJzcDsgR2xvYmFsTWVtb3J5U3RhdHVzKCZhbXA7bWVtb3J5KTs8L2k+PC9kaXY+PGRpdj48
aT4mbmJzcDsgc3ByaW50ZihidWZmZXIsICIlZCIsIG1lbW9yeS5kd0F2YWlsUGh5cyk7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7IGludCByZXN1bHQgPSBXcml0ZVRvTG9nKGJ1ZmZlcik7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7IGlmIChyZXN1bHQpPC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7IHs8
L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7U2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyA9IFNFUlZJQ0VfU1RPUFBFRDsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7U2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgJm5ic3A7
ICZuYnNwOyAmbmJzcDs9IC0xOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDtT
ZXRTZXJ2aWNlU3RhdHVzKGhTdGF0dXMsICZhbXA7U2VydmljZVN0YXR1cyk7PC9pPjwvZGl2Pjxk
aXY+PGk+Jm5ic3A7ICZuYnNwO3JldHVybjs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgfTwvaT48
L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgU2xlZXAoU0xFRVBfVElN
RSk7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7fTwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyByZXR1
cm47Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+fTwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPi8vIFNlcnZpY2UgaW5pdGlhbGl6YXRpb248L2k+PC9kaXY+PGRpdj48aT5p
bnQgSW5pdFNlcnZpY2UoKSZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPnsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7IGludCByZXN1bHQ7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7
ICZuYnNwOyByZXN1bHQgPSBXcml0ZVRvTG9nKCJNb25pdG9yaW5nIHN0YXJ0ZWQuIik7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyByZXR1cm4ocmVzdWx0KTsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT59Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+PGJyPjwvaT48L2Rpdj48ZGl2PjxpPi8v
IENvbnRyb2wgaGFuZGxlciBmdW5jdGlvbjwvaT48L2Rpdj48ZGl2PjxpPnZvaWQgQ29udHJvbEhh
bmRsZXIoRFdPUkQgcmVxdWVzdCkmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT57Jm5ic3A7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBzd2l0Y2gocmVxdWVzdCkmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7IHsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgY2FzZSBTRVJWSUNFX0NPTlRST0xfU1RPUDombmJzcDs8L2k+PC9k
aXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDtXcml0ZVRvTG9nKCJNb25pdG9yaW5nIHN0b3BwZWQuIik7PC9pPjwvZGl2PjxkaXY+PGk+PGJy
PjwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IFNlcnZpY2VTdGF0dXMuZHdXaW4zMkV4aXRDb2RlID0gMDsmbmJzcDs8L2k+PC9kaXY+PGRp
dj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBTZXJ2aWNlU3Rh
dHVzLmR3Q3VycmVudFN0YXRlICZuYnNwOz0gU0VSVklDRV9TVE9QUEVEOyZuYnNwOzwvaT48L2Rp
dj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNldFNl
cnZpY2VTdGF0dXMgKGhTdGF0dXMsICZhbXA7U2VydmljZVN0YXR1cyk7PC9pPjwvZGl2PjxkaXY+
PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcmV0dXJuOyZuYnNw
OzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TSFVURE9XTjombmJzcDs8L2k+PC9k
aXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBXcml0
ZVRvTG9nKCJNb25pdG9yaW5nIHN0b3BwZWQuIik7PC9pPjwvZGl2PjxkaXY+PGk+PGJyPjwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNl
cnZpY2VTdGF0dXMuZHdXaW4zMkV4aXRDb2RlID0gMDsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4m
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBTZXJ2aWNlU3RhdHVzLmR3
Q3VycmVudFN0YXRlICZuYnNwOz0gU0VSVklDRV9TVE9QUEVEOyZuYnNwOzwvaT48L2Rpdj48ZGl2
PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNldFNlcnZpY2VT
dGF0dXMgKGhTdGF0dXMsICZhbXA7U2VydmljZVN0YXR1cyk7PC9pPjwvZGl2PjxkaXY+PGk+Jm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcmV0dXJuOyZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOzwvaT48L2Rpdj48
ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkZWZhdWx0OjwvaT48L2Rpdj48ZGl2
PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJyZWFrOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgfSZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNw
OzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgLy8gUmVwb3J0IGN1cnJlbnQgc3RhdHVz
PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXRTZXJ2aWNlU3RhdHVzIChoU3RhdHVz
LCAmbmJzcDsmYW1wO1NlcnZpY2VTdGF0dXMpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgcmV0dXJuOyZuYnNwOzwvaT48L2Rpdj48ZGl2Pjxp
Pn0mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGI+Mi4gRHVtcDwv
Yj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48L2Rpdj48ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGk+
RHVtcCBTdW1tYXJ5PC9pPjwvZGl2PjxkaXY+PGk+LS0tLS0tLS0tLS0tPC9pPjwvZGl2PjxkaXY+
PGk+RHVtcCBGaWxlOjxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw
YW4+d2l0aF9zc2xfNTYuZXhlLjQyMDguZG1wIDogQzpcRHVtcHNcd2l0aF9zc2xfNTYuZXhlLjQy
MDguZG1wPC9pPjwvZGl2PjxkaXY+PGk+TGFzdCBXcml0ZSBUaW1lOjxzcGFuIGNsYXNzPSIiIHN0
eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+OS8yNi8yMDE0IDExOjU5OjM4IEFNPC9pPjwv
ZGl2PjxkaXY+PGk+UHJvY2VzcyBOYW1lOjxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+d2l0aF9zc2xfNTYuZXhlIDogQzpcbHBhX2Ncd2l4X2Zvcl9zZXJ2aWNl
XGJ1aWxkX3dpblxzcmNcd2l0aF9zc2xfNTZcRGVidWdcd2l0aF9zc2xfNTYuZXhlPC9pPjwvZGl2
PjxkaXY+PGk+UHJvY2VzcyBBcmNoaXRlY3R1cmU6PHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRl
LXNwYWNlOnByZSI+CTwvc3Bhbj54ODY8L2k+PC9kaXY+PGRpdj48aT5FeGNlcHRpb24gQ29kZTo8
c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjB4QzAwMDAwMDU8
L2k+PC9kaXY+PGRpdj48aT5FeGNlcHRpb24gSW5mb3JtYXRpb246PHNwYW4gY2xhc3M9IiIgc3R5
bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5UaGUgdGhyZWFkIHRyaWVkIHRvIHJlYWQgZnJv
bSBvciB3cml0ZSB0byBhIHZpcnR1YWwgYWRkcmVzcyBmb3Igd2hpY2ggaXQgZG9lcyBub3QgaGF2
ZSB0aGUgYXBwcm9wcmlhdGUgYWNjZXNzLjwvaT48L2Rpdj48ZGl2PjxpPkhlYXAgSW5mb3JtYXRp
b246PHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5Ob3QgUHJl
c2VudDwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT5TeXN0ZW0gSW5mb3Jt
YXRpb248L2k+PC9kaXY+PGRpdj48aT4tLS0tLS0tLS0tLS0tLS0tLS08L2k+PC9kaXY+PGRpdj48
aT5PUyBWZXJzaW9uOjxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw
YW4+Ni4wLjYwMDI8L2k+PC9kaXY+PGRpdj48aT5DTFIgVmVyc2lvbihzKTo8c3BhbiBjbGFzcz0i
IiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjwvaT48L2Rpdj48ZGl2PjxpPjxicj48
L2k+PC9kaXY+PGRpdj48aT5Nb2R1bGVzPC9pPjwvZGl2PjxkaXY+PGk+LS0tLS0tLTwvaT48L2Rp
dj48ZGl2PjxpPk1vZHVsZSBOYW1lPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnBy
ZSI+CTwvc3Bhbj5Nb2R1bGUgUGF0aDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw
cmUiPgk8L3NwYW4+TW9kdWxlIFZlcnNpb248L2k+PC9kaXY+PGRpdj48aT4tLS0tLS0tLS0tLTxz
cGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LS0tLS0tLS0tLS08
c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi0tLS0tLS0tLS0t
LS0tPC9pPjwvZGl2PjxkaXY+PGk+d2l0aF9zc2xfNTYuZXhlPHNwYW4gY2xhc3M9IiIgc3R5bGU9
IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxscGFfY1x3aXhfZm9yX3NlcnZpY2VcYnVpbGRf
d2luXHNyY1x3aXRoX3NzbF81NlxEZWJ1Z1x3aXRoX3NzbF81Ni5leGU8c3BhbiBjbGFzcz0iIiBz
dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjAuMC4wLjA8L2k+PC9kaXY+PGRpdj48aT5u
dGRsbC5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6
XFdpbmRvd3NcU3lzdGVtMzJcbnRkbGwuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNw
YWNlOnByZSI+CTwvc3Bhbj42LjAuNjAwMi4xODg4MTwvaT48L2Rpdj48ZGl2PjxpPmtlcm5lbDMy
LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+QzpcV2lu
ZG93c1xTeXN0ZW0zMlxrZXJuZWwzMi5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3Bh
Y2U6cHJlIj4JPC9zcGFuPjYuMC42MDAyLjE5MDM0PC9pPjwvZGl2PjxkaXY+PGk+YWR2YXBpMzIu
ZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5k
b3dzXFN5c3RlbTMyXGFkdmFwaTMyLmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+Ni4wLjYwMDIuMTgwMDU8L2k+PC9kaXY+PGRpdj48aT5ycGNydDQuZGxs
PHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5kb3dz
XFN5c3RlbTMyXHJwY3J0NC5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl
Ij4JPC9zcGFuPjYuMC42MDAyLjE4ODgyPC9pPjwvZGl2PjxkaXY+PGk+Ym9vc3RfbG9nLXZjMTAw
LW10LWdkLTFfNTYuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv
c3Bhbj5DOlxib29zdF8xXzU2XzBfZHluXHN0YWdlXGxpYlxib29zdF9sb2ctdmMxMDAtbXQtZ2Qt
MV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjAu
MC4wLjA8L2k+PC9kaXY+PGRpdj48aT5ib29zdF9kYXRlX3RpbWUtdmMxMDAtbXQtZ2QtMV81Ni5k
bGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0
XzFfNTZfMF9keW5cc3RhZ2VcbGliXGJvb3N0X2RhdGVfdGltZS12YzEwMC1tdC1nZC0xXzU2LmRs
bDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+MC4wLjAuMDwv
aT48L2Rpdj48ZGl2PjxpPk1TVkNQMTAwRC5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUt
c3BhY2U6cHJlIj4JPC9zcGFuPkM6XFdpbmRvd3NcU3lzdGVtMzJcTVNWQ1AxMDBELmRsbDxzcGFu
IGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+MTAuMC4zMDMxOS4xPC9p
PjwvZGl2PjxkaXY+PGk+TVNWQ1IxMDBELmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1z
cGFjZTpwcmUiPgk8L3NwYW4+QzpcV2luZG93c1xTeXN0ZW0zMlxNU1ZDUjEwMEQuZGxsPHNwYW4g
Y2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4xMC4wLjMwMzE5LjE8L2k+
PC9kaXY+PGRpdj48aT5ib29zdF9zeXN0ZW0tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFz
cz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0XzFfNTZfMF9keW5c
c3RhZ2VcbGliXGJvb3N0X3N5c3RlbS12YzEwMC1tdC1nZC0xXzU2LmRsbDxzcGFuIGNsYXNzPSIi
IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+MC4wLjAuMDwvaT48L2Rpdj48ZGl2Pjxp
PmJvb3N0X2ZpbGVzeXN0ZW0tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHls
ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0XzFfNTZfMF9keW5cc3RhZ2VcbGli
XGJvb3N0X2ZpbGVzeXN0ZW0tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHls
ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjAuMC4wLjA8L2k+PC9kaXY+PGRpdj48aT5ib29z
dF9jaHJvbm8tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUt
c3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0XzFfNTZfMF9keW5cc3RhZ2VcbGliXGJvb3N0X2No
cm9uby12YzEwMC1tdC1nZC0xXzU2LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+MC4wLjAuMDwvaT48L2Rpdj48ZGl2PjxpPmJvb3N0X3RocmVhZC12YzEw
MC1tdC1nZC0xXzU2LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8
L3NwYW4+QzpcYm9vc3RfMV81Nl8wX2R5blxzdGFnZVxsaWJcYm9vc3RfdGhyZWFkLXZjMTAwLW10
LWdkLTFfNTYuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh
bj4wLjAuMC4wPC9pPjwvZGl2PjxkaXY+PGk+cHNhcGkuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9
IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5kb3dzXFN5c3RlbTMyXHBzYXBpLmRsbDxz
cGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Ni4wLjYwMDAuMTYz
ODY8L2k+PC9kaXY+PGRpdj48aT53czJfMzIuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRl
LXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5kb3dzXFN5c3RlbTMyXHdzMl8zMi5kbGw8c3BhbiBj
bGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjYuMC42MDAxLjE4MDAwPC9p
PjwvZGl2PjxkaXY+PGk+bXN2Y3J0LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+QzpcV2luZG93c1xTeXN0ZW0zMlxtc3ZjcnQuZGxsPHNwYW4gY2xhc3M9
IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj43LjAuNjAwMi4xODU1MTwvaT48L2Rp
dj48ZGl2PjxpPm5zaS5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J
PC9zcGFuPkM6XFdpbmRvd3NcU3lzdGVtMzJcbnNpLmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3
aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Ni4wLjYwMDEuMTgwMDA8L2k+PC9kaXY+PGRpdj48aT51
c2VyMzIuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5D
OlxXaW5kb3dzXFN5c3RlbTMyXHVzZXIzMi5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUt
c3BhY2U6cHJlIj4JPC9zcGFuPjYuMC42MDAyLjE4MDA1PC9pPjwvZGl2PjxkaXY+PGk+Z2RpMzIu
ZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5k
b3dzXFN5c3RlbTMyXGdkaTMyLmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw
cmUiPgk8L3NwYW4+Ni4wLjYwMDIuMTkxNzE8L2k+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj48YnI+
PGI+My4gQ2FsbCBTdGFjazwvYj48YnI+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgMDAwMDAwMDAo
KSZuYnNwOzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyB1c2VyMzIuZGxsITc2NjU5
Y2U0KCkgJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IFtGcmFtZXMgYmVs
b3cgbWF5IGJlIGluY29ycmVjdCBhbmQvb3IgbWlzc2luZywgbm8gc3ltYm9scyBsb2FkZWQgZm9y
IHVzZXIzMi5kbGxdJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IGFkdmFw
aTMyLmRsbCE3N2I4NDE1OCgpICZuYnNwOzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNw
OyBhZHZhcGkzMi5kbGwhNzdiODQwZjYoKSAmbmJzcDs8L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48
aT4mbmJzcDsgYWR2YXBpMzIuZGxsITc3Yjg0MzBkKCkgJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5
bGU9IiI+PGk+Jm5ic3A7IHdzMl8zMi5kbGwhNzY3MGFiNmQoKSAmbmJzcDs8L2k+PC9kaXY+PGRp
diBzdHlsZT0iIj48aT4mbmJzcDsgd3MyXzMyLmRsbCE3NjcwYWE5NSgpICZuYnNwOzwvaT48L2Rp
dj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyB3czJfMzIuZGxsITc2NzBhM2IyKCkgJm5ic3A7PC9p
PjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IHdzMl8zMi5kbGwhNzY3MGFlM2YoKSAmbmJz
cDs8L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgd3MyXzMyLmRsbCE3NjcwYWQ3YSgp
ICZuYnNwOzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyB3czJfMzIuZGxsITc2NzBh
Y2MzKCkgJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IHdzMl8zMi5kbGwh
NzY3MGFjMmIoKSAmbmJzcDs8L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgYm9vc3Rf
bG9nLXZjMTAwLW10LWdkLTFfNTYuZGxsIWJvb3N0Ojphc2lvOjpkZXRhaWw6OndpbnNvY2tfaW5p
dF9iYXNlOjpzdGFydHVwKGJvb3N0Ojphc2lvOjpkZXRhaWw6OndpbnNvY2tfaW5pdF9iYXNlOjpk
YXRhICZhbXA7IGQsIHVuc2lnbmVkIGNoYXIgbWFqb3IsIHVuc2lnbmVkIGNoYXIgbWlub3IpICZu
YnNwO0xpbmUgMzkgKyAweDJkIGJ5dGVzIEMrKzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZu
YnNwOyBib29zdF9sb2ctdmMxMDAtbXQtZ2QtMV81Ni5kbGwhYm9vc3Q6OmFzaW86OmRldGFpbDo6
d2luc29ja19pbml0Jmx0OzIsMCZndDs6OndpbnNvY2tfaW5pdCZsdDsyLDAmZ3Q7KGJvb2wgYWxs
b3dfdGhyb3cpICZuYnNwO0xpbmUgNTcgKyAweGUgYnl0ZXMgQysrPC9pPjwvZGl2PjxkaXYgc3R5
bGU9IiI+PGk+Jmd0OyBib29zdF9sb2ctdmMxMDAtbXQtZ2QtMV81Ni5kbGwhYm9vc3Q6OmFzaW86
OmRldGFpbDo6YGR5bmFtaWMgaW5pdGlhbGl6ZXIgZm9yICd3aW5zb2NrX2luaXRfaW5zdGFuY2Un
JygpICZuYnNwO0xpbmUgMTE2ICsgMHgxYyBieXRlcyBDKys8L2k+PC9kaXY+PGRpdiBzdHlsZT0i
Ij48aT4mbmJzcDsgTVNWQ1IxMDBELmRsbCFfaW5pdHRlcm0odm9pZCAodm9pZCkqICogcGZiZWdp
biwgdm9pZCAodm9pZCkqICogcGZlbmQpICZuYnNwO0xpbmUgODczIEM8L2k+PC9kaXY+PGRpdiBz
dHlsZT0iIj48aT4mbmJzcDsgYm9vc3RfbG9nLXZjMTAwLW10LWdkLTFfNTYuZGxsIV9DUlRfSU5J
VCh2b2lkICogaERsbEhhbmRsZSwgdW5zaWduZWQgbG9uZyBkd1JlYXNvbiwgdm9pZCAqIGxwcmVz
ZXJ2ZWQpICZuYnNwO0xpbmUgMjg0ICsgMHhmIGJ5dGVzIEM8L2k+PC9kaXY+PGRpdiBzdHlsZT0i
Ij48aT4mbmJzcDsgYm9vc3RfbG9nLXZjMTAwLW10LWdkLTFfNTYuZGxsIV9fRGxsTWFpbkNSVFN0
YXJ0dXAodm9pZCAqIGhEbGxIYW5kbGUsIHVuc2lnbmVkIGxvbmcgZHdSZWFzb24sIHZvaWQgKiBs
cHJlc2VydmVkKSAmbmJzcDtMaW5lIDUwNiArIDB4MTEgYnl0ZXMgQzwvaT48L2Rpdj48ZGl2IHN0
eWxlPSIiPjxpPiZuYnNwOyBib29zdF9sb2ctdmMxMDAtbXQtZ2QtMV81Ni5kbGwhX0RsbE1haW5D
UlRTdGFydHVwKHZvaWQgKiBoRGxsSGFuZGxlLCB1bnNpZ25lZCBsb25nIGR3UmVhc29uLCB2b2lk
ICogbHByZXNlcnZlZCkgJm5ic3A7TGluZSA0NzYgKyAweDExIGJ5dGVzIEM8L2k+PC9kaXY+PGRp
diBzdHlsZT0iIj48aT4mbmJzcDsgbnRkbGwuZGxsITc3YTExMmY0KCkgJm5ic3A7PC9pPjwvZGl2
PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IG50ZGxsLmRsbCE3NzlmOTA2YigpICZuYnNwOzwvaT48
L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyBudGRsbC5kbGwhNzdhMDE2ZDIoKSAmbmJzcDs8
L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgbnRkbGwuZGxsITc3OWZiZjVhKCkgJm5i
c3A7PC9pPjwvZGl2PjwvZGl2PjwvZGl2Pjxicj48L2Jsb2NrcXVvdGU+SXQgc2VlbXMgd3Jvbmcg
dG8gaW5pdGlhbGl6ZSBXaW5Tb2NrIGZyb20gYERsbE1haW4oKWAgY29udGV4dC4gVGhpcyBpcyBX
QUcsIGJ1dCB0cnkgdXNpbmcgdGhlIG1hbnVhbCBpbml0aWFsaXphdGlvbiBvZiBBU0lPL1dpblNv
Y2sgaW4gYDxpPlNlcnZpY2VNYWluKClgLiBTZWUgdGhlIFtjb21tZW50IGFib3ZlIGBjbGFzcyBt
YW51YWxgPC9pPl0oaHR0cDovL3d3dy5ib29zdC5vcmcvZG9jL2xpYnMvMV81Nl8wL2Jvb3N0L2Fz
        aW8vZGV0YWlsL3dpbnNvY2tfaW5pdC5ocHApLjxicj48YnI+"
        style="height:0;font-size:0em;padding:0;margin:0;">​</div>
    </div>
  </body>
</html>


["signature.asc" (application/pgp-signature)]

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic