Merge CCM cipher mode and ciphersuites

Conflicts:
	library/ssl_tls.c
diff --git a/.travis.yml b/.travis.yml
index c41e0bf..0e79aa9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,26 @@
 language: c
 compiler:
- - clang
- - gcc
+- clang
+- gcc
 before_install: sudo apt-get update
 install: sudo apt-get install bc gnutls-bin valgrind perl
 script:
- - cmake -D CMAKE_BUILD_TYPE:String="Check" .
- - make
- - make test
- - ( cd tests && ./compat.sh )
- - ( cd tests && ./ssl-opt.sh )
- - tests/scripts/test-ref-configs.pl
+- cmake -D CMAKE_BUILD_TYPE:String="Check" .
+- make
+- make test
+- ( cd tests && ./compat.sh )
+- ( cd tests && ./ssl-opt.sh )
+- tests/scripts/test-ref-configs.pl
+env:
+  global:
+    secure: LidFb8vsR72MKTVpaZ8IYHR1xeVnff47/+ckEge5F9gcwf7QmfSI3+gBLZZciNdyrWzOFhlQ5Q2z/pqVeRtEkKrlcporoMMcHRIbyIA+lfRE1HnYHw7jITScfN9ZmK4msU1ElRlAk6U7ND6MPTH8QfWwchNafDk9d3AoHL4/RrQ=
+
+addons:
+  coverity_scan:
+    project:
+      name: "polarssl/polarssl"
+      description: "PolarSSL Open Source SSL Library"
+    notification_email: p.j.bakker@polarssl.org
+    build_command_prepend:
+    build_command: make
+    branch_pattern: development
diff --git a/ChangeLog b/ChangeLog
index 441dcf9..46cfd7f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 PolarSSL ChangeLog (Sorted per branch, date)
 
+= PolarSSL 1.3 branch
+Bugfix
+   * Fix in debug_print_msg()
+   * Enforce alignment in the buffer allocator even if buffer is not alligned
+   * Remove less-than-zero checks on unsigned numbers
+   * Stricter check on SSL ClientHello internal sizes compared to actual packet
+     size (found by TrustInSoft)
+
 = PolarSSL 1.3.7 released on 2014-05-02
 Features
    * debug_set_log_mode() added to determine raw or full logging
diff --git a/include/polarssl/bignum.h b/include/polarssl/bignum.h
index da18599..ecc4a13 100644
--- a/include/polarssl/bignum.h
+++ b/include/polarssl/bignum.h
@@ -69,7 +69,7 @@
  */
 #define POLARSSL_MPI_MAX_LIMBS                             10000
 
-#if !defined(POLARSSL_CONFIG_OPTIONS)
+#if !defined(POLARSSL_MPI_WINDOW_SIZE)
 /*
  * Maximum window size used for modular exponentiation. Default: 6
  * Minimum value: 1. Maximum value: 6.
@@ -80,7 +80,9 @@
  * Reduction in size, reduces speed.
  */
 #define POLARSSL_MPI_WINDOW_SIZE                           6        /**< Maximum windows size used. */
+#endif /* !POLARSSL_MPI_WINDOW_SIZE */
 
+#if !defined(POLARSSL_MPI_MAX_SIZE)
 /*
  * Maximum size of MPIs allowed in bits and bytes for user-MPIs.
  * ( Default: 512 bytes => 4096 bits, Maximum tested: 2048 bytes => 16384 bits )
@@ -89,8 +91,7 @@
  * of limbs required (POLARSSL_MPI_MAX_LIMBS) is higher.
  */
 #define POLARSSL_MPI_MAX_SIZE                              512      /**< Maximum number of bytes for usable MPIs. */
-
-#endif /* !POLARSSL_CONFIG_OPTIONS */
+#endif /* !POLARSSL_MPI_MAX_SIZE */
 
 #define POLARSSL_MPI_MAX_BITS                              ( 8 * POLARSSL_MPI_MAX_SIZE )    /**< Maximum number of bits for usable MPIs. */
 
@@ -133,7 +134,7 @@
 #else
   /*
    * 32-bit integers can be forced on 64-bit arches (eg. for testing purposes)
-   * by defining POLARSSL_HAVE_INT32 and undefining POARSSL_HAVE_ASM
+   * by defining POLARSSL_HAVE_INT32 and undefining POLARSSL_HAVE_ASM
    */
   #if ( ! defined(POLARSSL_HAVE_INT32) && \
           defined(_MSC_VER) && defined(_M_AMD64) )
diff --git a/include/polarssl/check_config.h b/include/polarssl/check_config.h
index 8113e18..c4c570c 100644
--- a/include/polarssl/check_config.h
+++ b/include/polarssl/check_config.h
@@ -84,12 +84,12 @@
 #error "POLARSSL_ENTROPY_C defined, but not all prerequisites"
 #endif
 #if defined(POLARSSL_ENTROPY_C) && defined(POLARSSL_SHA512_C) &&         \
-    defined(POLARSSL_CONFIG_OPTIONS) && (CTR_DRBG_ENTROPY_LEN > 64)
+    defined(CTR_DRBG_ENTROPY_LEN) && (CTR_DRBG_ENTROPY_LEN > 64)
 #error "CTR_DRBG_ENTROPY_LEN value too high"
 #endif
 #if defined(POLARSSL_ENTROPY_C) &&                                            \
     ( !defined(POLARSSL_SHA512_C) || defined(POLARSSL_ENTROPY_FORCE_SHA256) ) \
-    && defined(POLARSSL_CONFIG_OPTIONS) && (CTR_DRBG_ENTROPY_LEN > 32)
+    && defined(CTR_DRBG_ENTROPY_LEN) && (CTR_DRBG_ENTROPY_LEN > 32)
 #error "CTR_DRBG_ENTROPY_LEN value too high"
 #endif
 #if defined(POLARSSL_ENTROPY_C) && \
diff --git a/include/polarssl/config.h b/include/polarssl/config.h
index ecf0b17..ad088a9 100644
--- a/include/polarssl/config.h
+++ b/include/polarssl/config.h
@@ -2107,7 +2107,7 @@
 //#define ENTROPY_MAX_GATHER                128 /**< Maximum amount requested from entropy sources */
 
 /* Memory buffer allocator options */
-//#define MEMORY_ALIGN_MULTIPLE               4 /**< Align on multiples of this value */
+//#define POLARSSL_MEMORY_ALIGN_MULTIPLE      4 /**< Align on multiples of this value */
 
 /* Platform options */
 //#define POLARSSL_PLATFORM_STD_MEM_HDR <stdlib.h> /**< Header to include if POLARSSL_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
diff --git a/library/debug.c b/library/debug.c
index 92559c2..f2dd776 100644
--- a/library/debug.c
+++ b/library/debug.c
@@ -88,7 +88,7 @@
 
     if( debug_log_mode == POLARSSL_DEBUG_LOG_RAW )
     {
-        ssl->f_dbg( ssl->p_dbg, level, str );
+        ssl->f_dbg( ssl->p_dbg, level, text );
         return;
     }
 
diff --git a/library/error.c b/library/error.c
index 8afc092..2ef00e2 100644
--- a/library/error.c
+++ b/library/error.c
@@ -202,6 +202,7 @@
 
         // High level error codes
         //
+        // BEGIN generated code
 #if defined(POLARSSL_CIPHER_C)
         if( use_ret == -(POLARSSL_ERR_CIPHER_FEATURE_UNAVAILABLE) )
             snprintf( buf, buflen, "CIPHER - The selected feature is not available" );
@@ -487,6 +488,7 @@
         if( use_ret == -(POLARSSL_ERR_X509_FILE_IO_ERROR) )
             snprintf( buf, buflen, "X509 - Read/write of file failed" );
 #endif /* POLARSSL_X509_USE,X509_CREATE_C */
+        // END generated code
 
         if( strlen( buf ) == 0 )
             snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret );
@@ -515,6 +517,7 @@
 
     // Low level error codes
     //
+    // BEGIN generated code
 #if defined(POLARSSL_AES_C)
     if( use_ret == -(POLARSSL_ERR_AES_INVALID_KEY_LENGTH) )
         snprintf( buf, buflen, "AES - Invalid key length" );
@@ -721,6 +724,7 @@
     if( use_ret == -(POLARSSL_ERR_XTEA_INVALID_INPUT_LENGTH) )
         snprintf( buf, buflen, "XTEA - The data input has an invalid length" );
 #endif /* POLARSSL_XTEA_C */
+    // END generated code
 
     if( strlen( buf ) != 0 )
         return;
diff --git a/library/md4.c b/library/md4.c
index 37056d9..97cb5f0 100644
--- a/library/md4.c
+++ b/library/md4.c
@@ -199,7 +199,7 @@
     size_t fill;
     uint32_t left;
 
-    if( ilen <= 0 )
+    if( ilen == 0 )
         return;
 
     left = ctx->total[0] & 0x3F;
diff --git a/library/md5.c b/library/md5.c
index 88d50c6..87e2b1d 100644
--- a/library/md5.c
+++ b/library/md5.c
@@ -218,7 +218,7 @@
     size_t fill;
     uint32_t left;
 
-    if( ilen <= 0 )
+    if( ilen == 0 )
         return;
 
     left = ctx->total[0] & 0x3F;
diff --git a/library/memory_buffer_alloc.c b/library/memory_buffer_alloc.c
index caeaa46..7dfeda9 100644
--- a/library/memory_buffer_alloc.c
+++ b/library/memory_buffer_alloc.c
@@ -555,6 +555,13 @@
     platform_set_malloc_free( buffer_alloc_malloc, buffer_alloc_free );
 #endif
 
+    if( (size_t) buf % POLARSSL_MEMORY_ALIGN_MULTIPLE )
+    {
+        buf += POLARSSL_MEMORY_ALIGN_MULTIPLE
+             - (size_t) buf % POLARSSL_MEMORY_ALIGN_MULTIPLE;
+        len -= (size_t) buf % POLARSSL_MEMORY_ALIGN_MULTIPLE;
+    }
+
     heap.buf = buf;
     heap.len = len;
 
diff --git a/library/ripemd160.c b/library/ripemd160.c
index 73da510..4781a7d 100644
--- a/library/ripemd160.c
+++ b/library/ripemd160.c
@@ -280,7 +280,7 @@
     size_t fill;
     uint32_t left;
 
-    if( ilen <= 0 )
+    if( ilen == 0 )
         return;
 
     left = ctx->total[0] & 0x3F;
diff --git a/library/sha1.c b/library/sha1.c
index 4b2d063..da69a8f 100644
--- a/library/sha1.c
+++ b/library/sha1.c
@@ -252,7 +252,7 @@
     size_t fill;
     uint32_t left;
 
-    if( ilen <= 0 )
+    if( ilen == 0 )
         return;
 
     left = ctx->total[0] & 0x3F;
diff --git a/library/sha256.c b/library/sha256.c
index 9e70ff9..09165cc 100644
--- a/library/sha256.c
+++ b/library/sha256.c
@@ -249,7 +249,7 @@
     size_t fill;
     uint32_t left;
 
-    if( ilen <= 0 )
+    if( ilen == 0 )
         return;
 
     left = ctx->total[0] & 0x3F;
diff --git a/library/sha512.c b/library/sha512.c
index 5537e8d..c13e0d9 100644
--- a/library/sha512.c
+++ b/library/sha512.c
@@ -242,7 +242,7 @@
     size_t fill;
     unsigned int left;
 
-    if( ilen <= 0 )
+    if( ilen == 0 )
         return;
 
     left = (unsigned int) (ctx->total[0] & 0x7F);
diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index 6f21f62..7121d7b 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -1251,8 +1251,8 @@
     curve_info = ecp_curve_info_from_grp_id( ssl->handshake->ecdh_ctx.grp.id );
     if( curve_info == NULL )
     {
-        SSL_DEBUG_MSG( 1, ( "Should never happen" ) );
-        return( -1 );
+        SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     SSL_DEBUG_MSG( 2, ( "ECDH curve: %s", curve_info->name ) );
@@ -1634,7 +1634,7 @@
           POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
 #if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED) ||                       \
@@ -1681,7 +1681,7 @@
 #endif
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
 
         /*
@@ -1770,7 +1770,7 @@
           POLARSSL_SSL_PROTO_TLS1_2 */
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
 
         SSL_DEBUG_BUF( 3, "parameters hash", hash, hashlen != 0 ? hashlen :
@@ -1810,7 +1810,6 @@
     !defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
 static int ssl_parse_certificate_request( ssl_context *ssl )
 {
-    int ret = POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE;
     const ssl_ciphersuite_t *ciphersuite_info = ssl->transform_negotiate->ciphersuite_info;
 
     SSL_DEBUG_MSG( 2, ( "=> parse certificate request" ) );
@@ -1825,8 +1824,8 @@
         return( 0 );
     }
 
-    SSL_DEBUG_MSG( 1, ( "should not happen" ) );
-    return( ret );
+    SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+    return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
 }
 #else
 static int ssl_parse_certificate_request( ssl_context *ssl )
@@ -2184,7 +2183,7 @@
 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
 
         if( ( ret = ssl_psk_derive_premaster( ssl,
@@ -2208,7 +2207,7 @@
     {
         ((void) ciphersuite_info);
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     if( ( ret = ssl_derive_keys( ssl ) ) != 0 )
@@ -2240,7 +2239,6 @@
     !defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
 static int ssl_write_certificate_verify( ssl_context *ssl )
 {
-    int ret = POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE;
     const ssl_ciphersuite_t *ciphersuite_info = ssl->transform_negotiate->ciphersuite_info;
 
     SSL_DEBUG_MSG( 2, ( "=> write certificate verify" ) );
@@ -2255,8 +2253,8 @@
         return( 0 );
     }
 
-    SSL_DEBUG_MSG( 1, ( "should not happen" ) );
-    return( ret );
+    SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+    return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
 }
 #else
 static int ssl_write_certificate_verify( ssl_context *ssl )
@@ -2370,7 +2368,7 @@
 #endif /* POLARSSL_SSL_PROTO_TLS1_2 */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     if( ( ret = pk_sign( ssl_own_key( ssl ), md_alg, hash_start, hashlen,
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index be56f21..5152895 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -1209,8 +1209,9 @@
      *    38  .  38   session id length
      *    39  . 38+x  session id
      *   39+x . 40+x  ciphersuitelist length
-     *   41+x .  ..   ciphersuitelist
-     *    ..  .  ..   compression alg.
+     *   41+x . 40+y  ciphersuitelist
+     *   41+y . 41+y  compression alg length
+     *   42+y . 41+z  compression algs
      *    ..  .  ..   extensions
      */
     SSL_DEBUG_BUF( 4, "record contents", buf, n );
@@ -1275,7 +1276,7 @@
      */
     sess_len = buf[38];
 
-    if( sess_len > 32 )
+    if( sess_len > 32 || sess_len > n - 42 )
     {
         SSL_DEBUG_MSG( 1, ( "bad client hello message" ) );
         return( POLARSSL_ERR_SSL_BAD_HS_CLIENT_HELLO );
@@ -1293,7 +1294,7 @@
     ciph_len = ( buf[39 + sess_len] << 8 )
              | ( buf[40 + sess_len]      );
 
-    if( ciph_len < 2 || ( ciph_len % 2 ) != 0 )
+    if( ciph_len < 2 || ( ciph_len % 2 ) != 0 || ciph_len > n - 42 - sess_len )
     {
         SSL_DEBUG_MSG( 1, ( "bad client hello message" ) );
         return( POLARSSL_ERR_SSL_BAD_HS_CLIENT_HELLO );
@@ -1304,7 +1305,8 @@
      */
     comp_len = buf[41 + sess_len + ciph_len];
 
-    if( comp_len < 1 || comp_len > 16 )
+    if( comp_len < 1 || comp_len > 16 ||
+        comp_len > n - 42 - sess_len - ciph_len )
     {
         SSL_DEBUG_MSG( 1, ( "bad client hello message" ) );
         return( POLARSSL_ERR_SSL_BAD_HS_CLIENT_HELLO );
@@ -1951,7 +1953,6 @@
     !defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
 static int ssl_write_certificate_request( ssl_context *ssl )
 {
-    int ret = POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE;
     const ssl_ciphersuite_t *ciphersuite_info = ssl->transform_negotiate->ciphersuite_info;
 
     SSL_DEBUG_MSG( 2, ( "=> write certificate request" ) );
@@ -1966,8 +1967,8 @@
         return( 0 );
     }
 
-    SSL_DEBUG_MSG( 1, ( "should not happen" ) );
-    return( ret );
+    SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+    return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
 }
 #else
 static int ssl_write_certificate_request( ssl_context *ssl )
@@ -2329,7 +2330,7 @@
             if( md_alg == POLARSSL_MD_NONE )
             {
                 SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-                return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+                return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
             }
         }
         else
@@ -2424,7 +2425,7 @@
           POLARSSL_SSL_PROTO_TLS1_2 */
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
 
         SSL_DEBUG_BUF( 3, "parameters hash", hash, hashlen != 0 ? hashlen :
@@ -2916,7 +2917,7 @@
 #endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     if( ( ret = ssl_derive_keys( ssl ) ) != 0 )
@@ -2953,8 +2954,8 @@
         return( 0 );
     }
 
-    SSL_DEBUG_MSG( 1, ( "should not happen" ) );
-    return( ret );
+    SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+    return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
 }
 #else
 static int ssl_parse_certificate_verify( ssl_context *ssl )
@@ -3084,7 +3085,7 @@
 #endif /* POLARSSL_SSL_PROTO_TLS1_2 */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     sig_len = ( ssl->in_msg[4 + sa_len] << 8 ) | ssl->in_msg[5 + sa_len];
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 7967214..8c29e21 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -444,7 +444,7 @@
 #endif /* POLARSSL_SSL_PROTO_TLS1_2 */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     /*
@@ -609,7 +609,7 @@
         if( transform->maclen > sizeof transform->mac_enc )
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
 
         memcpy( transform->mac_enc, mac_enc, transform->maclen );
@@ -628,7 +628,7 @@
 #endif
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
 #if defined(POLARSSL_SSL_HW_RECORD_ACCEL)
@@ -923,7 +923,7 @@
 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     /* opaque psk<0..2^16-1>; */
@@ -1031,7 +1031,7 @@
 #endif
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
 
         SSL_DEBUG_BUF( 4, "computed mac",
@@ -1247,7 +1247,7 @@
           ( POLARSSL_AES_C || POLARSSL_CAMELLIA_C ) */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     for( i = 8; i > 0; i-- )
@@ -1538,7 +1538,7 @@
           POLARSSL_SSL_PROTO_TLS1_2 */
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
     }
     else
@@ -1546,7 +1546,7 @@
           ( POLARSSL_AES_C || POLARSSL_CAMELLIA_C ) */
     {
         SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-        return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+        return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
     }
 
     SSL_DEBUG_BUF( 4, "raw buffer after decryption",
@@ -1618,7 +1618,7 @@
               POLARSSL_SSL_PROTO_TLS1_2 */
         {
             SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-            return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+            return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
         }
 
         SSL_DEBUG_BUF( 4, "message  mac", tmp, ssl->transform_in->maclen );
@@ -2261,7 +2261,6 @@
     !defined(POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
 int ssl_write_certificate( ssl_context *ssl )
 {
-    int ret = POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE;
     const ssl_ciphersuite_t *ciphersuite_info = ssl->transform_negotiate->ciphersuite_info;
 
     SSL_DEBUG_MSG( 2, ( "=> write certificate" ) );
@@ -2275,13 +2274,12 @@
         return( 0 );
     }
 
-    SSL_DEBUG_MSG( 1, ( "should not happen" ) );
-    return( ret );
+    SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+    return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
 }
 
 int ssl_parse_certificate( ssl_context *ssl )
 {
-    int ret = POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE;
     const ssl_ciphersuite_t *ciphersuite_info = ssl->transform_negotiate->ciphersuite_info;
 
     SSL_DEBUG_MSG( 2, ( "=> parse certificate" ) );
@@ -2295,8 +2293,8 @@
         return( 0 );
     }
 
-    SSL_DEBUG_MSG( 1, ( "should not happen" ) );
-    return( ret );
+    SSL_DEBUG_MSG( 1, ( "should never happen" ) );
+    return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
 }
 #else
 int ssl_write_certificate( ssl_context *ssl )
@@ -2729,8 +2727,10 @@
     else
 #endif
 #endif /* POLARSSL_SSL_PROTO_TLS1_2 */
-        /* Should never happen */
+    {
+        SSL_DEBUG_MSG( 1, ( "should never happen" ) );
         return;
+    }
 }
 
 static void ssl_update_checksum_start( ssl_context *ssl,
@@ -4252,7 +4252,7 @@
           POLARSSL_SSL_PROTO_TLS1_2 */
                 {
                     SSL_DEBUG_MSG( 1, ( "should never happen" ) );
-                    return( POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE );
+                    return( POLARSSL_ERR_SSL_INTERNAL_ERROR );
                 }
             }
             else
diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c
index 632d5e6..b978f01c 100644
--- a/programs/test/benchmark.c
+++ b/programs/test/benchmark.c
@@ -122,6 +122,15 @@
                     ( hardclock() - tsc ) / ( j * BUFSIZE ) );          \
 } while( 0 )
 
+#if defined(POLARSSL_ERROR_C)
+#define PRINT_ERROR                                                     \
+        polarssl_strerror( ret, ( char * )tmp, sizeof( tmp ) );         \
+        printf( "FAILED: %s\n", tmp );
+#else
+#define PRINT_ERROR                                                     \
+        printf( "FAILED: -0x%04x\n", -ret );
+#endif
+
 #define TIME_PUBLIC( TITLE, TYPE, CODE )                                \
 do {                                                                    \
     unsigned long i;                                                    \
@@ -139,8 +148,7 @@
                                                                         \
     if( ret != 0 )                                                      \
     {                                                                   \
-        polarssl_strerror( ret, ( char * )tmp, sizeof( tmp ) );         \
-        printf( "FAILED: %s\n", tmp );                                  \
+PRINT_ERROR;                                                            \
     }                                                                   \
     else                                                                \
         printf( "%9lu " TYPE "/s\n", i / 3 );                           \
diff --git a/scripts/bump_version.sh b/scripts/bump_version.sh
index bf033a5..5c2f268 100755
--- a/scripts/bump_version.sh
+++ b/scripts/bump_version.sh
@@ -85,7 +85,10 @@
 done
 
 [ $VERBOSE ] && echo "Re-generating library/error.c"
-scripts/generate_errors.pl include/polarssl scripts/data_files library/error.c
+scripts/generate_errors.pl
 
 [ $VERBOSE ] && echo "Re-generating library/version_features.c"
-scripts/generate_features.pl include/polarssl scripts/data_files library/version_features.c
+scripts/generate_features.pl
+
+[ $VERBOSE ] && echo "Re-generating visualc files"
+scripts/generate_visualc_files.pl
diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt
index 30ee257..413682f 100644
--- a/scripts/data_files/error.fmt
+++ b/scripts/data_files/error.fmt
@@ -63,7 +63,10 @@
 
         // High level error codes
         //
+        // BEGIN generated code
 HIGH_LEVEL_CODE_CHECKS
+        // END generated code
+
         if( strlen( buf ) == 0 )
             snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret );
     }
@@ -91,7 +94,10 @@
 
     // Low level error codes
     //
+    // BEGIN generated code
 LOW_LEVEL_CODE_CHECKS
+    // END generated code
+
     if( strlen( buf ) != 0 )
         return;
 
diff --git a/scripts/data_files/vs2010-app-template.vcxproj b/scripts/data_files/vs2010-app-template.vcxproj
index 7433cd3..9e2b47a 100644
--- a/scripts/data_files/vs2010-app-template.vcxproj
+++ b/scripts/data_files/vs2010-app-template.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid><GUID></ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace><APPNAME></RootNamespace>

   </PropertyGroup>

diff --git a/scripts/data_files/vs2010-main-template.vcxproj b/scripts/data_files/vs2010-main-template.vcxproj
new file mode 100644
index 0000000..20d3de5
--- /dev/null
+++ b/scripts/data_files/vs2010-main-template.vcxproj
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|Win32">

+      <Configuration>Debug</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|Win32">

+      <Configuration>Release</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{46CF2D25-6A36-4189-B59C-E4815388E554}</ProjectGuid>

+    <Keyword>Win32Proj</Keyword>

+    <RootNamespace>PolarSSL</RootNamespace>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>true</UseDebugLibraries>

+    <CharacterSet>Unicode</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>true</UseDebugLibraries>

+    <CharacterSet>Unicode</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>false</UseDebugLibraries>

+    <WholeProgramOptimization>true</WholeProgramOptimization>

+    <CharacterSet>Unicode</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>false</UseDebugLibraries>

+    <WholeProgramOptimization>true</WholeProgramOptimization>

+    <CharacterSet>Unicode</CharacterSet>

+    <PlatformToolset>Windows7.1SDK</PlatformToolset>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <LinkIncremental>true</LinkIncremental>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <LinkIncremental>true</LinkIncremental>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <LinkIncremental>false</LinkIncremental>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <LinkIncremental>false</LinkIncremental>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <ClCompile>

+      <PrecompiledHeader>

+      </PrecompiledHeader>

+      <WarningLevel>Level3</WarningLevel>

+      <Optimization>Disabled</Optimization>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;POLARSSL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>

+      <CompileAs>CompileAsC</CompileAs>

+    </ClCompile>

+    <Link>

+      <SubSystem>Windows</SubSystem>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+    </Link>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <PrecompiledHeader>

+      </PrecompiledHeader>

+      <WarningLevel>Level3</WarningLevel>

+      <Optimization>Disabled</Optimization>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;POLARSSL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>

+      <CompileAs>CompileAsC</CompileAs>

+    </ClCompile>

+    <Link>

+      <SubSystem>Windows</SubSystem>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+    </Link>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <ClCompile>

+      <WarningLevel>Level3</WarningLevel>

+      <PrecompiledHeader>

+      </PrecompiledHeader>

+      <Optimization>MaxSpeed</Optimization>

+      <FunctionLevelLinking>true</FunctionLevelLinking>

+      <IntrinsicFunctions>true</IntrinsicFunctions>

+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;POLARSSL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>

+    </ClCompile>

+    <Link>

+      <SubSystem>Windows</SubSystem>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <EnableCOMDATFolding>true</EnableCOMDATFolding>

+      <OptimizeReferences>true</OptimizeReferences>

+    </Link>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <WarningLevel>Level3</WarningLevel>

+      <PrecompiledHeader>

+      </PrecompiledHeader>

+      <Optimization>MaxSpeed</Optimization>

+      <FunctionLevelLinking>true</FunctionLevelLinking>

+      <IntrinsicFunctions>true</IntrinsicFunctions>

+      <PreprocessorDefinitions>WIN64;NDEBUG;_WINDOWS;_USRDLL;POLARSSL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>

+    </ClCompile>

+    <Link>

+      <SubSystem>Windows</SubSystem>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <EnableCOMDATFolding>true</EnableCOMDATFolding>

+      <OptimizeReferences>true</OptimizeReferences>

+    </Link>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+HEADER_ENTRIES

+  </ItemGroup>

+  <ItemGroup>

+SOURCE_ENTRIES

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>

diff --git a/scripts/data_files/vs2010-sln-template.sln b/scripts/data_files/vs2010-sln-template.sln
new file mode 100644
index 0000000..c4c8613
--- /dev/null
+++ b/scripts/data_files/vs2010-sln-template.sln
@@ -0,0 +1,28 @@
+

+Microsoft Visual Studio Solution File, Format Version 11.00

+# Visual C++ Express 2010

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolarSSL", "PolarSSL.vcxproj", "{46CF2D25-6A36-4189-B59C-E4815388E554}"

+EndProject

+APP_ENTRIES

+Global

+	GlobalSection(SolutionConfigurationPlatforms) = preSolution

+		Debug|Win32 = Debug|Win32

+		Debug|x64 = Debug|x64

+		Release|Win32 = Release|Win32

+		Release|x64 = Release|x64

+	EndGlobalSection

+	GlobalSection(ProjectConfigurationPlatforms) = postSolution

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|Win32.ActiveCfg = Debug|Win32

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|Win32.Build.0 = Debug|Win32

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|x64.ActiveCfg = Debug|x64

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|x64.Build.0 = Debug|x64

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.ActiveCfg = Release|Win32

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.Build.0 = Release|Win32

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.ActiveCfg = Release|x64

+		{46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.Build.0 = Release|x64

+CONF_ENTRIES

+	EndGlobalSection

+	GlobalSection(SolutionProperties) = preSolution

+		HideSolutionNode = FALSE

+	EndGlobalSection

+EndGlobal

diff --git a/scripts/data_files/vs6-main-template.dsp b/scripts/data_files/vs6-main-template.dsp
new file mode 100644
index 0000000..af4901f
--- /dev/null
+++ b/scripts/data_files/vs6-main-template.dsp
@@ -0,0 +1,94 @@
+# Microsoft Developer Studio Project File - Name="polarssl" - Package Owner=<4>

+# Microsoft Developer Studio Generated Build File, Format Version 6.00

+# ** DO NOT EDIT **

+

+# TARGTYPE "Win32 (x86) Static Library" 0x0104

+

+CFG=polarssl - Win32 Debug

+!MESSAGE This is not a valid makefile. To build this project using NMAKE,

+!MESSAGE use the Export Makefile command and run

+!MESSAGE 

+!MESSAGE NMAKE /f "polarssl.mak".

+!MESSAGE 

+!MESSAGE You can specify a configuration when running NMAKE

+!MESSAGE by defining the macro CFG on the command line. For example:

+!MESSAGE 

+!MESSAGE NMAKE /f "polarssl.mak" CFG="polarssl - Win32 Debug"

+!MESSAGE 

+!MESSAGE Possible choices for configuration are:

+!MESSAGE 

+!MESSAGE "polarssl - Win32 Release" (based on "Win32 (x86) Static Library")

+!MESSAGE "polarssl - Win32 Debug" (based on "Win32 (x86) Static Library")

+!MESSAGE 

+

+# Begin Project

+# PROP AllowPerConfigDependencies 0

+# PROP Scc_ProjName ""

+# PROP Scc_LocalPath ""

+CPP=cl.exe

+RSC=rc.exe

+

+!IF  "$(CFG)" == "polarssl - Win32 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir "temp"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir ""

+# PROP Intermediate_Dir "temp"

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c

+# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c

+# ADD BASE RSC /l 0x40c /d "NDEBUG"

+# ADD RSC /l 0x40c /d "NDEBUG"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LIB32=link.exe -lib

+# ADD BASE LIB32 /nologo

+# ADD LIB32 /nologo

+

+!ELSEIF  "$(CFG)" == "polarssl - Win32 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir "temp"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir ""

+# PROP Intermediate_Dir "temp"

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c

+# ADD CPP /nologo /W3 /GX /Z7 /Od /I "../../include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c

+# ADD BASE RSC /l 0x40c /d "_DEBUG"

+# ADD RSC /l 0x40c /d "_DEBUG"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LIB32=link.exe -lib

+# ADD BASE LIB32 /nologo

+# ADD LIB32 /nologo

+

+!ENDIF

+

+# Begin Target

+

+# Name "polarssl - Win32 Release"

+# Name "polarssl - Win32 Debug"

+# Begin Group "Source Files"

+

+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

+SOURCE_ENTRIES

+# End Group

+# Begin Group "Header Files"

+

+# PROP Default_Filter "h;hpp;hxx;hm;inl"

+HEADER_ENTRIES

+# End Group

+# End Target

+# End Project

diff --git a/scripts/data_files/vs6-workspace-template.dsw b/scripts/data_files/vs6-workspace-template.dsw
new file mode 100644
index 0000000..ef90098
--- /dev/null
+++ b/scripts/data_files/vs6-workspace-template.dsw
@@ -0,0 +1,18 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00

+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!

+

+APP_ENTRIES

+###############################################################################

+

+Global:

+

+Package=<5>

+{{{

+}}}

+

+Package=<3>

+{{{

+}}}

+

+###############################################################################

+

diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl
index d16d0ce..0ee992d 100755
--- a/scripts/generate_errors.pl
+++ b/scripts/generate_errors.pl
@@ -1,11 +1,32 @@
 #!/usr/bin/perl
+
+# Generate error.c
 #
+# Usage: ./generate_errors.pl or scripts/generate_errors.pl without arguments,
+# or generate_errors.pl include_dir data_dir error_file
 
 use strict;
 
-my $include_dir = shift or die "Missing include directory";
-my $data_dir = shift or die "Missing data directory";
-my $error_file = shift or die "Missing destination file";
+my ($include_dir, $data_dir, $error_file);
+
+if( @ARGV ) {
+    die "Invalid number of arguments" if scalar @ARGV != 3;
+    ($include_dir, $data_dir, $error_file) = @ARGV;
+
+    -d $include_dir or die "No such directory: $include_dir\n";
+    -d $data_dir or die "No such directory: $data_dir\n";
+} else {
+    $include_dir = 'include/polarssl';
+    $data_dir = 'scripts/data_files';
+    $error_file = 'library/error.c';
+
+    unless( -d $include_dir && -d $data_dir ) {
+        chdir '..' or die;
+        -d $include_dir && -d $data_dir
+            or die "Without arguments, must be run from root or scripts\n"
+    }
+}
+
 my $error_format_file = $data_dir.'/error.fmt';
 
 my @low_level_modules = ( "AES", "ASN1", "BLOWFISH", "CAMELLIA", "BIGNUM",
@@ -135,11 +156,11 @@
 
 if ($ll_old_define ne "")
 {
-    $ll_code_check .= "#endif /* POLARSSL_${ll_old_define}_C */\n\n";
+    $ll_code_check .= "#endif /* POLARSSL_${ll_old_define}_C */\n";
 }
 if ($hl_old_define ne "")
 {
-    $hl_code_check .= "#endif /* POLARSSL_${hl_old_define}_C */\n\n";
+    $hl_code_check .= "#endif /* POLARSSL_${hl_old_define}_C */\n";
 }
 
 $error_format =~ s/HEADER_INCLUDED\n/$headers/g;
diff --git a/scripts/generate_features.pl b/scripts/generate_features.pl
index a72247d..b6d04b4 100755
--- a/scripts/generate_features.pl
+++ b/scripts/generate_features.pl
@@ -3,9 +3,26 @@
 
 use strict;
 
-my $include_dir = shift or die "Missing include directory";
-my $data_dir = shift or die "Missing data directory";
-my $feature_file = shift or die "Missing destination file";
+my ($include_dir, $data_dir, $feature_file);
+
+if( @ARGV ) {
+    die "Invalid number of arguments" if scalar @ARGV != 3;
+    ($include_dir, $data_dir, $feature_file) = @ARGV;
+
+    -d $include_dir or die "No such directory: $include_dir\n";
+    -d $data_dir or die "No such directory: $data_dir\n";
+} else {
+    $include_dir = 'include/polarssl';
+    $data_dir = 'scripts/data_files';
+    $feature_file = 'library/version_features.c';
+
+    unless( -d $include_dir && -d $data_dir ) {
+        chdir '..' or die;
+        -d $include_dir && -d $data_dir
+            or die "Without arguments, must be run from root or scripts\n"
+    }
+}
+
 my $feature_format_file = $data_dir.'/version_features.fmt';
 
 my @sections = ( "System support", "PolarSSL modules",
diff --git a/scripts/generate_visualc_files.pl b/scripts/generate_visualc_files.pl
new file mode 100755
index 0000000..f6bf25c
--- /dev/null
+++ b/scripts/generate_visualc_files.pl
@@ -0,0 +1,248 @@
+#!/usr/bin/perl
+
+# Generate files for MS Visual Studio:
+# - for VS6: main project (library) file, individual app files, workspace
+# - for VS2010: main file, individual apps, solution file
+#
+# Must be run from PolarSSL root or scripts directory.
+# Takes no argument.
+
+use warnings;
+use strict;
+use Digest::MD5 'md5_hex';
+
+my $vs6_dir = "visualc/VS6";
+my $vs6_ext = "dsp";
+my $vs6_app_tpl_file = "scripts/data_files/vs6-app-template.$vs6_ext";
+my $vs6_main_tpl_file = "scripts/data_files/vs6-main-template.$vs6_ext";
+my $vs6_main_file = "$vs6_dir/polarssl.$vs6_ext";
+my $vs6_wsp_tpl_file = "scripts/data_files/vs6-workspace-template.dsw";
+my $vs6_wsp_file = "$vs6_dir/polarssl.dsw";
+
+my $vsx_dir = "visualc/VS2010";
+my $vsx_ext = "vcxproj";
+my $vsx_app_tpl_file = "scripts/data_files/vs2010-app-template.$vsx_ext";
+my $vsx_main_tpl_file = "scripts/data_files/vs2010-main-template.$vsx_ext";
+my $vsx_main_file = "$vsx_dir/PolarSSL.$vsx_ext";
+my $vsx_sln_tpl_file = "scripts/data_files/vs2010-sln-template.sln";
+my $vsx_sln_file = "$vsx_dir/PolarSSL.sln";
+
+my $programs_dir = 'programs';
+my $header_dir = 'include/polarssl';
+my $source_dir = 'library';
+
+# Need windows line endings!
+my $vs6_file_tpl = <<EOT;
+# Begin Source File\r
+\r
+SOURCE=..\\..\\{NAME}\r
+# End Source File\r
+EOT
+
+my $vs6_wsp_entry_tpl = <<EOT;
+###############################################################################\r
+\r
+Project: "{NAME}"=.\\{NAME}.dsp - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name polarssl\r
+    End Project Dependency\r
+}}}\r
+\r
+EOT
+
+my $vsx_hdr_tpl = <<EOT;
+    <ClInclude Include="..\\..\\{NAME}" />\r
+EOT
+my $vsx_src_tpl = <<EOT;
+    <ClCompile Include="..\\..\\{NAME}" />\r
+EOT
+
+my $vsx_sln_app_entry_tpl = <<EOT;
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "{APPNAME}", "{APPNAME}.vcxproj", "{GUID}"\r
+	ProjectSection(ProjectDependencies) = postProject\r
+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}\r
+	EndProjectSection\r
+EndProject\r
+EOT
+
+my $vsx_sln_conf_entry_tpl = <<EOT;
+		{GUID}.Debug|Win32.ActiveCfg = Debug|Win32\r
+		{GUID}.Debug|Win32.Build.0 = Debug|Win32\r
+		{GUID}.Debug|x64.ActiveCfg = Debug|x64\r
+		{GUID}.Debug|x64.Build.0 = Debug|x64\r
+		{GUID}.Release|Win32.ActiveCfg = Release|Win32\r
+		{GUID}.Release|Win32.Build.0 = Release|Win32\r
+		{GUID}.Release|x64.ActiveCfg = Release|x64\r
+		{GUID}.Release|x64.Build.0 = Release|x64\r
+EOT
+
+exit( main() );
+
+sub check_dirs {
+    return -d $vs6_dir
+        && -d $vsx_dir
+        && -d $header_dir
+        && -d $source_dir
+        && -d $programs_dir;
+}
+
+sub slurp_file {
+    my ($filename) = @_;
+
+    local $/ = undef;
+    open my $fh, '<', $filename or die "Could not read $filename\n";
+    my $content = <$fh>;
+    close $fh;
+
+    return $content;
+}
+
+sub content_to_file {
+    my ($content, $filename) = @_;
+
+    open my $fh, '>', $filename or die "Could not write to $filename\n";
+    print $fh $content;
+    close $fh;
+}
+
+sub gen_app_guid {
+    my ($path) = @_;
+
+    my $guid = md5_hex( "PolarSSL:$path" );
+    $guid =~ s/(.{8})(.{4})(.{4})(.{4})(.{12})/\U{$1-$2-$3-$4-$5}/;
+
+    return $guid;
+}
+
+sub gen_app {
+    my ($path, $template, $dir, $ext) = @_;
+
+    my $guid = gen_app_guid( $path );
+    $path =~ s!/!\\!g;
+    (my $appname = $path) =~ s/.*\\//;
+
+    my $content = $template;
+    $content =~ s/<PATHNAME>/$path/g;
+    $content =~ s/<APPNAME>/$appname/g;
+    $content =~ s/<GUID>/$guid/g;
+
+    content_to_file( $content, "$dir/$appname.$ext" );
+}
+
+sub get_app_list {
+    my $app_list = `cd $programs_dir && make list`;
+    die "make list failed: $!\n" if $?;
+
+    return split /\s+/, $app_list;
+}
+
+sub gen_app_files {
+    my @app_list = @_;
+
+    my $vs6_tpl = slurp_file( $vs6_app_tpl_file );
+    my $vsx_tpl = slurp_file( $vsx_app_tpl_file );
+
+    for my $app ( @app_list ) {
+        gen_app( $app, $vs6_tpl, $vs6_dir, $vs6_ext );
+        gen_app( $app, $vsx_tpl, $vsx_dir, $vsx_ext );
+    }
+}
+
+sub gen_entry_list {
+    my ($tpl, @names) = @_;
+
+    my $entries;
+    for my $name (@names) {
+        (my $entry = $tpl) =~ s/{NAME}/$name/g;
+        $entries .= $entry;
+    }
+
+    return $entries;
+}
+
+sub gen_main_file {
+    my ($headers, $sources, $hdr_tpl, $src_tpl, $main_tpl, $main_out) = @_;
+
+    my $header_entries = gen_entry_list( $hdr_tpl, @$headers );
+    my $source_entries = gen_entry_list( $src_tpl, @$sources );
+
+    my $out = slurp_file( $main_tpl );
+    $out =~ s/SOURCE_ENTRIES\r\n/$source_entries/m;
+    $out =~ s/HEADER_ENTRIES\r\n/$header_entries/m;
+
+    content_to_file( $out, $main_out );
+}
+
+sub gen_vs6_workspace {
+    my (@app_names) = @_;
+
+    map { s!.*/!! } @app_names;
+    my $entries = gen_entry_list( $vs6_wsp_entry_tpl, @app_names );
+
+    my $out = slurp_file( $vs6_wsp_tpl_file );
+    $out =~ s/APP_ENTRIES\r\n/$entries/m;
+
+    content_to_file( $out, $vs6_wsp_file );
+}
+
+sub gen_vsx_solution {
+    my (@app_names) = @_;
+
+    my ($app_entries, $conf_entries);
+    for my $path (@app_names) {
+        my $guid = gen_app_guid( $path );
+        (my $appname = $path) =~ s!.*/!!;
+
+        my $app_entry = $vsx_sln_app_entry_tpl;
+        $app_entry =~ s/{APPNAME}/$appname/g;
+        $app_entry =~ s/{GUID}/$guid/g;
+
+        $app_entries .= $app_entry;
+
+        my $conf_entry = $vsx_sln_conf_entry_tpl;
+        $conf_entry =~ s/{GUID}/$guid/g;
+
+        $conf_entries .= $conf_entry;
+    }
+
+    my $out = slurp_file( $vsx_sln_tpl_file );
+    $out =~ s/APP_ENTRIES\r\n/$app_entries/m;
+    $out =~ s/CONF_ENTRIES\r\n/$conf_entries/m;
+
+    content_to_file( $out, $vsx_sln_file );
+}
+
+sub main {
+    if( ! check_dirs() ) {
+        chdir '..' or die;
+        check_dirs or die "Must but run from PolarSSL root or scripts dir\n";
+    }
+
+    my @app_list = get_app_list();
+    my @headers = <$header_dir/*.h>;
+    my @sources = <$source_dir/*.c>;
+    map { s!/!\\!g } @headers;
+    map { s!/!\\!g } @sources;
+
+    gen_app_files( @app_list );
+
+    gen_main_file( \@headers, \@sources,
+                   $vs6_file_tpl, $vs6_file_tpl,
+                   $vs6_main_tpl_file, $vs6_main_file );
+    gen_main_file( \@headers, \@sources,
+                   $vsx_hdr_tpl, $vsx_src_tpl,
+                   $vsx_main_tpl_file, $vsx_main_file );
+
+    gen_vs6_workspace( @app_list );
+
+    gen_vsx_solution( @app_list );
+
+    return 0;
+}
diff --git a/scripts/update_vs_apps.pl b/scripts/update_vs_apps.pl
deleted file mode 100755
index a5f6c8f..0000000
--- a/scripts/update_vs_apps.pl
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/perl
-
-# create individual project files for example programs
-# for VS6 and VS2010
-
-use warnings;
-use strict;
-
-my $vs6_dir = "../visualc/VS6";
-my $vs6_ext = "dsp";
-my $vs6_template_file = "data_files/vs6-app-template.$vs6_ext";
-
-my $vsx_dir = "../visualc/VS2010";
-my $vsx_ext = "vcxproj";
-my $vsx_template_file = "data_files/vs2010-app-template.$vsx_ext";
-
-exit( main() );
-
-sub slurp_file {
-    my ($filename) = @_;
-
-    local $/ = undef;
-    open my $fh, '<', $filename or die "Could not read $filename\n";
-    my $content = <$fh>;
-    close $fh;
-
-    return $content;
-}
-
-sub gen_app {
-    my ($path, $template, $dir, $ext) = @_;
-
-    $path =~ s!/!\\!g;
-    (my $appname = $path) =~ s/.*\\//;
-
-    my $content = $template;
-    $content =~ s/<PATHNAME>/$path/g;
-    $content =~ s/<APPNAME>/$appname/g;
-
-    open my $app_fh, '>', "$dir/$appname.$ext";
-    print $app_fh $content;
-    close $app_fh;
-}
-
-sub get_app_list {
-    my $app_list = `cd ../programs && make list`;
-    die "make list failed: $!\n" if $?;
-
-    return split /\s+/, $app_list;
-}
-
-sub main {
-    -d $vs6_dir || die "VS6 directory not found: $vs6_dir\n";
-    -d $vsx_dir || die "VS2010 directory not found: $vsx_dir\n";
-
-    my $vs6_tpl = slurp_file( $vs6_template_file );
-    my $vsx_tpl = slurp_file( $vsx_template_file );
-
-    for my $app ( get_app_list() ) {
-        printf "$app\n";
-        gen_app( $app, $vs6_tpl, $vs6_dir, $vs6_ext );
-        gen_app( $app, $vsx_tpl, $vsx_dir, $vsx_ext );
-    }
-
-    return 0;
-}
diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh
index 8dba3ec..1e11d78 100755
--- a/tests/scripts/all.sh
+++ b/tests/scripts/all.sh
@@ -21,9 +21,12 @@
 
 while [ $# -gt 0 ]; do
     case "$1" in
-        -m|--memory)
+        -m1)
             MEMORY=1
             ;;
+        -m2)
+            MEMORY=2
+            ;;
         *)
             echo "Unknown argument: '$1'" >&2
             echo "Use the source, Luke!" >&2
@@ -83,16 +86,17 @@
 
 # Step 3: using valgrind's memcheck
 
-if [ "$MEMORY" -gt 0 ] && which valgrind >/dev/null; then
-    msg "Release build, full tests with valgrind's memcheck"
-    cleanup
-    # optimized build to compensate a bit for valgrind slowdown
-    cmake -D CMAKE_BUILD_TYPE:String=Release .
-    make
-    make memcheck
+msg "Release build, test suites with valgrind's memcheck"
+cleanup
+# optimized build to compensate a bit for valgrind slowdown
+cmake -D CMAKE_BUILD_TYPE:String=Release .
+make
+make memcheck
+
+if [ "$MEMORY" -gt 0 ]; then
     cd tests
-    ./compat.sh --memcheck
     ./ssl-opt.sh --memcheck
+    [ "$MEMORY" -gt 1 ] && ./compat.sh --memcheck
     cd ..
     # no test-ref-configs: doesn't have a memcheck option (yet?)
 fi
diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data
index 7541c09..efee294 100644
--- a/tests/suites/test_suite_x509parse.data
+++ b/tests/suites/test_suite_x509parse.data
@@ -167,51 +167,51 @@
 x509_dn_gets:"data_files/server2.crt":"issuer":"C=NL, O=PolarSSL, CN=PolarSSL Test CA"
 
 X509 Time Expired #1
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C:POLARSSL_HAVE_TIME
 x509_time_expired:"data_files/server1.crt":"valid_from":1
 
 X509 Time Expired #2
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C:POLARSSL_HAVE_TIME
 x509_time_expired:"data_files/server1.crt":"valid_to":0
 
 X509 Time Expired #3
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C:POLARSSL_HAVE_TIME
 x509_time_expired:"data_files/server2.crt":"valid_from":1
 
 X509 Time Expired #4
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C:POLARSSL_HAVE_TIME
 x509_time_expired:"data_files/server2.crt":"valid_to":0
 
 X509 Time Expired #5
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C:POLARSSL_HAVE_TIME
 x509_time_expired:"data_files/test-ca.crt":"valid_from":1
 
 X509 Time Expired #6
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_RSA_C:POLARSSL_HAVE_TIME
 x509_time_expired:"data_files/test-ca.crt":"valid_to":0
 
 X509 Time Future #1
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED:POLARSSL_HAVE_TIME
 x509_time_future:"data_files/server5.crt":"valid_from":0
 
 X509 Time Future #2
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED:POLARSSL_HAVE_TIME
 x509_time_future:"data_files/server5.crt":"valid_to":1
 
 X509 Time Future #3
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED:POLARSSL_HAVE_TIME
 x509_time_future:"data_files/server5-future.crt":"valid_from":1
 
 X509 Time Future #4
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP256R1_ENABLED:POLARSSL_HAVE_TIME
 x509_time_future:"data_files/server5-future.crt":"valid_to":1
 
 X509 Time Future #5
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP384R1_ENABLED
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP384R1_ENABLED:POLARSSL_HAVE_TIME
 x509_time_future:"data_files/test-ca2.crt":"valid_from":0
 
 X509 Time Future #6
-depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP384R1_ENABLED
+depends_on:POLARSSL_PEM_PARSE_C:POLARSSL_ECP_C:POLARSSL_ECP_DP_SECP384R1_ENABLED:POLARSSL_HAVE_TIME
 x509_time_future:"data_files/test-ca2.crt":"valid_to":1
 
 X509 Certificate verification #1 (Revoked Cert, Expired CRL, no CN)
diff --git a/visualc/VS2010/PolarSSL.sln b/visualc/VS2010/PolarSSL.sln
index e049652..c46a91a 100644
--- a/visualc/VS2010/PolarSSL.sln
+++ b/visualc/VS2010/PolarSSL.sln
@@ -3,109 +3,220 @@
 # Visual C++ Express 2010

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolarSSL", "PolarSSL.vcxproj", "{46CF2D25-6A36-4189-B59C-E4815388E554}"

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "selftest", "selftest.vcxproj", "{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aescrypt2", "aescrypt2.vcxproj", "{46298485-CE22-B800-3D95-6D6C821819A1}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark.vcxproj", "{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crypt_and_hash", "crypt_and_hash.vcxproj", "{84F76F01-FA6C-7C48-1979-06FD24B476C1}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client2", "ssl_client2.vcxproj", "{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hello", "hello.vcxproj", "{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client1", "ssl_client1.vcxproj", "{E0DC7623-13A7-48DF-A42F-8585FA533894}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generic_sum", "generic_sum.vcxproj", "{7036A174-35D6-54AE-7613-A50F5FD8AF86}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server", "ssl_server.vcxproj", "{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5sum", "md5sum.vcxproj", "{D4F79297-4960-6D63-D50E-5823C50ED124}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aescrypt2", "aescrypt2.vcxproj", "{54880004-9AA2-434D-A2F0-7F59D6F1536A}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sha1sum", "sha1sum.vcxproj", "{A0278E64-D98F-842D-438A-6747411CE76F}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crypt_and_hash", "crypt_and_hash.vcxproj", "{B9CD06FA-D063-4AFE-BF05-1348142274D7}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sha2sum", "sha2sum.vcxproj", "{BAF92F6C-E5BE-95B7-6E36-823A1779A818}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_client", "dh_client.vcxproj", "{E3F6459F-183D-4604-8A42-3F1C84A7C119}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_client", "dh_client.vcxproj", "{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_genprime", "dh_genprime.vcxproj", "{83BCC55C-5216-41BD-865B-E38FAB399454}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_genprime", "dh_genprime.vcxproj", "{8972AF2C-6333-2827-F75D-3BAC5E07915A}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_server", "dh_server.vcxproj", "{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_server", "dh_server.vcxproj", "{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generic_sum", "generic_sum.vcxproj", "{BE21679A-D26E-4A26-BC4F-382F57A33480}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_key", "gen_key.vcxproj", "{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5sum", "md5sum.vcxproj", "{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_app", "key_app.vcxproj", "{5129B724-3FB6-CE34-FF51-57031A33C50B}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpi_demo", "mpi_demo.vcxproj", "{E6999C98-6F20-4ED8-A791-69930800728F}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_app_writer", "key_app_writer.vcxproj", "{090B665D-0F4C-4D77-D1B1-A6D882842AA3}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_genkey", "rsa_genkey.vcxproj", "{914C3FB6-43A6-4FB6-875C-870DF0553035}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpi_demo", "mpi_demo.vcxproj", "{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign", "rsa_sign.vcxproj", "{27FA2978-988C-4918-AF10-FC9613B66CDB}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_decrypt", "pk_decrypt.vcxproj", "{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign_pss", "rsa_sign_pss.vcxproj", "{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_encrypt", "pk_encrypt.vcxproj", "{239051A9-0CE6-7730-7BB0-83599DC37AA4}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify", "rsa_verify.vcxproj", "{4485C157-39E7-4A97-93DC-80F794E37450}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_sign", "pk_sign.vcxproj", "{EBDBB632-13A2-45F8-A44E-4837F6467512}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify_pss", "rsa_verify_pss.vcxproj", "{22142D77-6986-4C71-8386-0184A8E7A1E6}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_verify", "pk_verify.vcxproj", "{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sha1sum", "sha1sum.vcxproj", "{15F21E24-7810-4B51-AF44-69F9062E35A0}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_genkey", "rsa_genkey.vcxproj", "{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sha2sum", "sha2sum.vcxproj", "{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_decrypt", "rsa_decrypt.vcxproj", "{7E3D99BD-3D9E-762A-E235-9C8275E7010F}"

 	ProjectSection(ProjectDependencies) = postProject

 		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

 	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_random_havege", "gen_random_havege.vcxproj", "{CFA36CC7-515C-4E18-8F8F-5B56AB903352}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_encrypt", "rsa_encrypt.vcxproj", "{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

 EndProject

-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_random_ctr_drbg", "gen_random_ctr_drbg.vcxproj", "{316E338C-6DC1-4D11-81C1-91F20E92AB04}"

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign", "rsa_sign.vcxproj", "{CFC883CE-9BAE-B26F-B08B-7F194AD35929}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify", "rsa_verify.vcxproj", "{77834257-2878-A38D-AEBE-79423968B6DB}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign_pss", "rsa_sign_pss.vcxproj", "{34A00BC1-32A6-5145-606F-F081D31CC1D1}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify_pss", "rsa_verify_pss.vcxproj", "{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client1", "ssl_client1.vcxproj", "{CE90D346-EBC0-D292-6D68-24717DB3F510}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client2", "ssl_client2.vcxproj", "{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server", "ssl_server.vcxproj", "{C49B1EF8-D169-70C5-2FA4-837A900267A7}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server2", "ssl_server2.vcxproj", "{870B39B9-8F38-D9A4-8A07-87047C565061}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_fork_server", "ssl_fork_server.vcxproj", "{D8295912-D341-F4E4-DC8E-98A2A0604221}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_mail_client", "ssl_mail_client.vcxproj", "{68EFA4E3-08B0-2925-0EF6-177996B08B24}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_entropy", "gen_entropy.vcxproj", "{2E5B8634-26AC-5819-5AF7-16F996A7F529}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_random_havege", "gen_random_havege.vcxproj", "{D93D1FF0-5E83-2247-31A0-017D20F8011F}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_random_ctr_drbg", "gen_random_ctr_drbg.vcxproj", "{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_cert_test", "ssl_cert_test.vcxproj", "{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark.vcxproj", "{58A8E53D-21CB-5F27-5111-737EBD3F37A0}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "selftest", "selftest.vcxproj", "{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_test", "ssl_test.vcxproj", "{0FC4D326-CF64-AB19-B037-3E3D06EA6798}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pem2der", "pem2der.vcxproj", "{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "strerror", "strerror.vcxproj", "{9D625831-AF31-CFBA-8855-61C024DA2DE0}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_app", "cert_app.vcxproj", "{E3172E20-4935-69C7-A398-C13EAA76818F}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crl_app", "crl_app.vcxproj", "{10F967D6-468F-3BCA-2D58-36A32E376930}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

+EndProject

+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_req", "cert_req.vcxproj", "{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}"

+	ProjectSection(ProjectDependencies) = postProject

+		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}

+	EndProjectSection

 EndProject

 Global

 	GlobalSection(SolutionConfigurationPlatforms) = preSolution

@@ -123,182 +234,350 @@
 		{46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.Build.0 = Release|Win32

 		{46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.ActiveCfg = Release|x64

 		{46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.Build.0 = Release|x64

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Debug|Win32.ActiveCfg = Debug|Win32

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Debug|Win32.Build.0 = Debug|Win32

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Debug|x64.ActiveCfg = Debug|x64

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Debug|x64.Build.0 = Debug|x64

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Release|Win32.ActiveCfg = Release|Win32

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Release|Win32.Build.0 = Release|Win32

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Release|x64.ActiveCfg = Release|x64

-		{4B44D0A4-DE85-4C15-A1FF-A334C0A1EFF2}.Release|x64.Build.0 = Release|x64

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Debug|Win32.ActiveCfg = Debug|Win32

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Debug|Win32.Build.0 = Debug|Win32

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Debug|x64.ActiveCfg = Debug|x64

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Debug|x64.Build.0 = Debug|x64

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Release|Win32.ActiveCfg = Release|Win32

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Release|Win32.Build.0 = Release|Win32

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Release|x64.ActiveCfg = Release|x64

-		{F52B9FFC-0E87-4816-BB2D-711CFC1E8955}.Release|x64.Build.0 = Release|x64

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Debug|Win32.ActiveCfg = Debug|Win32

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Debug|Win32.Build.0 = Debug|Win32

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Debug|x64.ActiveCfg = Debug|x64

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Debug|x64.Build.0 = Debug|x64

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Release|Win32.ActiveCfg = Release|Win32

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Release|Win32.Build.0 = Release|Win32

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Release|x64.ActiveCfg = Release|x64

-		{6418ABBB-6D56-4D26-A7E8-69A47B61F7EB}.Release|x64.Build.0 = Release|x64

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Debug|Win32.ActiveCfg = Debug|Win32

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Debug|Win32.Build.0 = Debug|Win32

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Debug|x64.ActiveCfg = Debug|x64

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Debug|x64.Build.0 = Debug|x64

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Release|Win32.ActiveCfg = Release|Win32

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Release|Win32.Build.0 = Release|Win32

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Release|x64.ActiveCfg = Release|x64

-		{E0DC7623-13A7-48DF-A42F-8585FA533894}.Release|x64.Build.0 = Release|x64

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Debug|Win32.ActiveCfg = Debug|Win32

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Debug|Win32.Build.0 = Debug|Win32

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Debug|x64.ActiveCfg = Debug|x64

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Debug|x64.Build.0 = Debug|x64

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Release|Win32.ActiveCfg = Release|Win32

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Release|Win32.Build.0 = Release|Win32

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Release|x64.ActiveCfg = Release|x64

-		{EDF3B291-9D85-49EC-8CF4-27EA9096BCCB}.Release|x64.Build.0 = Release|x64

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Debug|Win32.ActiveCfg = Debug|Win32

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Debug|Win32.Build.0 = Debug|Win32

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Debug|x64.ActiveCfg = Debug|x64

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Debug|x64.Build.0 = Debug|x64

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Release|Win32.ActiveCfg = Release|Win32

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Release|Win32.Build.0 = Release|Win32

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Release|x64.ActiveCfg = Release|x64

-		{54880004-9AA2-434D-A2F0-7F59D6F1536A}.Release|x64.Build.0 = Release|x64

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Debug|Win32.ActiveCfg = Debug|Win32

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Debug|Win32.Build.0 = Debug|Win32

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Debug|x64.ActiveCfg = Debug|x64

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Debug|x64.Build.0 = Debug|x64

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Release|Win32.ActiveCfg = Release|Win32

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Release|Win32.Build.0 = Release|Win32

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Release|x64.ActiveCfg = Release|x64

-		{B9CD06FA-D063-4AFE-BF05-1348142274D7}.Release|x64.Build.0 = Release|x64

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Debug|Win32.ActiveCfg = Debug|Win32

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Debug|Win32.Build.0 = Debug|Win32

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Debug|x64.ActiveCfg = Debug|x64

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Debug|x64.Build.0 = Debug|x64

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Release|Win32.ActiveCfg = Release|Win32

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Release|Win32.Build.0 = Release|Win32

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Release|x64.ActiveCfg = Release|x64

-		{E3F6459F-183D-4604-8A42-3F1C84A7C119}.Release|x64.Build.0 = Release|x64

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Debug|Win32.ActiveCfg = Debug|Win32

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Debug|Win32.Build.0 = Debug|Win32

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Debug|x64.ActiveCfg = Debug|x64

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Debug|x64.Build.0 = Debug|x64

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Release|Win32.ActiveCfg = Release|Win32

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Release|Win32.Build.0 = Release|Win32

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Release|x64.ActiveCfg = Release|x64

-		{83BCC55C-5216-41BD-865B-E38FAB399454}.Release|x64.Build.0 = Release|x64

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Debug|Win32.ActiveCfg = Debug|Win32

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Debug|Win32.Build.0 = Debug|Win32

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Debug|x64.ActiveCfg = Debug|x64

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Debug|x64.Build.0 = Debug|x64

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Release|Win32.ActiveCfg = Release|Win32

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Release|Win32.Build.0 = Release|Win32

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Release|x64.ActiveCfg = Release|x64

-		{17D1A1DA-6803-4AA1-A0DB-566E00D7593C}.Release|x64.Build.0 = Release|x64

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Debug|Win32.ActiveCfg = Debug|Win32

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Debug|Win32.Build.0 = Debug|Win32

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Debug|x64.ActiveCfg = Debug|x64

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Debug|x64.Build.0 = Debug|x64

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Release|Win32.ActiveCfg = Release|Win32

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Release|Win32.Build.0 = Release|Win32

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Release|x64.ActiveCfg = Release|x64

-		{BE21679A-D26E-4A26-BC4F-382F57A33480}.Release|x64.Build.0 = Release|x64

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Debug|Win32.ActiveCfg = Debug|Win32

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Debug|Win32.Build.0 = Debug|Win32

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Debug|x64.ActiveCfg = Debug|x64

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Debug|x64.Build.0 = Debug|x64

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Release|Win32.ActiveCfg = Release|Win32

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Release|Win32.Build.0 = Release|Win32

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Release|x64.ActiveCfg = Release|x64

-		{7FEC406E-95C5-4CC7-9CE7-8EA014AF5E15}.Release|x64.Build.0 = Release|x64

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Debug|Win32.ActiveCfg = Debug|Win32

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Debug|Win32.Build.0 = Debug|Win32

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Debug|x64.ActiveCfg = Debug|x64

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Debug|x64.Build.0 = Debug|x64

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Release|Win32.ActiveCfg = Release|Win32

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Release|Win32.Build.0 = Release|Win32

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Release|x64.ActiveCfg = Release|x64

-		{E6999C98-6F20-4ED8-A791-69930800728F}.Release|x64.Build.0 = Release|x64

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Debug|Win32.ActiveCfg = Debug|Win32

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Debug|Win32.Build.0 = Debug|Win32

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Debug|x64.ActiveCfg = Debug|x64

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Debug|x64.Build.0 = Debug|x64

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Release|Win32.ActiveCfg = Release|Win32

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Release|Win32.Build.0 = Release|Win32

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Release|x64.ActiveCfg = Release|x64

-		{914C3FB6-43A6-4FB6-875C-870DF0553035}.Release|x64.Build.0 = Release|x64

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Debug|Win32.ActiveCfg = Debug|Win32

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Debug|Win32.Build.0 = Debug|Win32

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Debug|x64.ActiveCfg = Debug|x64

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Debug|x64.Build.0 = Debug|x64

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Release|Win32.ActiveCfg = Release|Win32

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Release|Win32.Build.0 = Release|Win32

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Release|x64.ActiveCfg = Release|x64

-		{27FA2978-988C-4918-AF10-FC9613B66CDB}.Release|x64.Build.0 = Release|x64

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Debug|Win32.ActiveCfg = Debug|Win32

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Debug|Win32.Build.0 = Debug|Win32

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Debug|x64.ActiveCfg = Debug|x64

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Debug|x64.Build.0 = Debug|x64

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Release|Win32.ActiveCfg = Release|Win32

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Release|Win32.Build.0 = Release|Win32

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Release|x64.ActiveCfg = Release|x64

-		{FAAA2021-DF20-436F-AE12-9AD91C34C0B4}.Release|x64.Build.0 = Release|x64

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Debug|Win32.ActiveCfg = Debug|Win32

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Debug|Win32.Build.0 = Debug|Win32

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Debug|x64.ActiveCfg = Debug|x64

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Debug|x64.Build.0 = Debug|x64

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Release|Win32.ActiveCfg = Release|Win32

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Release|Win32.Build.0 = Release|Win32

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Release|x64.ActiveCfg = Release|x64

-		{4485C157-39E7-4A97-93DC-80F794E37450}.Release|x64.Build.0 = Release|x64

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Debug|Win32.ActiveCfg = Debug|Win32

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Debug|Win32.Build.0 = Debug|Win32

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Debug|x64.ActiveCfg = Debug|x64

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Debug|x64.Build.0 = Debug|x64

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Release|Win32.ActiveCfg = Release|Win32

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Release|Win32.Build.0 = Release|Win32

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Release|x64.ActiveCfg = Release|x64

-		{22142D77-6986-4C71-8386-0184A8E7A1E6}.Release|x64.Build.0 = Release|x64

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Debug|Win32.ActiveCfg = Debug|Win32

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Debug|Win32.Build.0 = Debug|Win32

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Debug|x64.ActiveCfg = Debug|x64

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Debug|x64.Build.0 = Debug|x64

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Release|Win32.ActiveCfg = Release|Win32

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Release|Win32.Build.0 = Release|Win32

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Release|x64.ActiveCfg = Release|x64

-		{15F21E24-7810-4B51-AF44-69F9062E35A0}.Release|x64.Build.0 = Release|x64

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Debug|Win32.ActiveCfg = Debug|Win32

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Debug|Win32.Build.0 = Debug|Win32

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Debug|x64.ActiveCfg = Debug|x64

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Debug|x64.Build.0 = Debug|x64

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Release|Win32.ActiveCfg = Release|Win32

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Release|Win32.Build.0 = Release|Win32

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Release|x64.ActiveCfg = Release|x64

-		{97A7EBB4-A76D-40CA-8E30-C10F2EB0B324}.Release|x64.Build.0 = Release|x64

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Debug|Win32.ActiveCfg = Debug|Win32

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Debug|Win32.Build.0 = Debug|Win32

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Debug|x64.ActiveCfg = Debug|x64

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Debug|x64.Build.0 = Debug|x64

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Release|Win32.ActiveCfg = Release|Win32

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Release|Win32.Build.0 = Release|Win32

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Release|x64.ActiveCfg = Release|x64

-		{CFA36CC7-515C-4E18-8F8F-5B56AB903352}.Release|x64.Build.0 = Release|x64

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Debug|Win32.ActiveCfg = Debug|Win32

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Debug|Win32.Build.0 = Debug|Win32

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Debug|x64.ActiveCfg = Debug|x64

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Debug|x64.Build.0 = Debug|x64

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Release|Win32.ActiveCfg = Release|Win32

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Release|Win32.Build.0 = Release|Win32

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Release|x64.ActiveCfg = Release|x64

-		{316E338C-6DC1-4D11-81C1-91F20E92AB04}.Release|x64.Build.0 = Release|x64

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Debug|Win32.ActiveCfg = Debug|Win32

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Debug|Win32.Build.0 = Debug|Win32

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Debug|x64.ActiveCfg = Debug|x64

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Debug|x64.Build.0 = Debug|x64

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Release|Win32.ActiveCfg = Release|Win32

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Release|Win32.Build.0 = Release|Win32

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Release|x64.ActiveCfg = Release|x64

+		{46298485-CE22-B800-3D95-6D6C821819A1}.Release|x64.Build.0 = Release|x64

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Debug|Win32.ActiveCfg = Debug|Win32

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Debug|Win32.Build.0 = Debug|Win32

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Debug|x64.ActiveCfg = Debug|x64

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Debug|x64.Build.0 = Debug|x64

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Release|Win32.ActiveCfg = Release|Win32

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Release|Win32.Build.0 = Release|Win32

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Release|x64.ActiveCfg = Release|x64

+		{84F76F01-FA6C-7C48-1979-06FD24B476C1}.Release|x64.Build.0 = Release|x64

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Debug|Win32.ActiveCfg = Debug|Win32

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Debug|Win32.Build.0 = Debug|Win32

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Debug|x64.ActiveCfg = Debug|x64

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Debug|x64.Build.0 = Debug|x64

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Release|Win32.ActiveCfg = Release|Win32

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Release|Win32.Build.0 = Release|Win32

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Release|x64.ActiveCfg = Release|x64

+		{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}.Release|x64.Build.0 = Release|x64

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Debug|Win32.ActiveCfg = Debug|Win32

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Debug|Win32.Build.0 = Debug|Win32

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Debug|x64.ActiveCfg = Debug|x64

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Debug|x64.Build.0 = Debug|x64

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Release|Win32.ActiveCfg = Release|Win32

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Release|Win32.Build.0 = Release|Win32

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Release|x64.ActiveCfg = Release|x64

+		{7036A174-35D6-54AE-7613-A50F5FD8AF86}.Release|x64.Build.0 = Release|x64

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Debug|Win32.ActiveCfg = Debug|Win32

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Debug|Win32.Build.0 = Debug|Win32

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Debug|x64.ActiveCfg = Debug|x64

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Debug|x64.Build.0 = Debug|x64

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Release|Win32.ActiveCfg = Release|Win32

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Release|Win32.Build.0 = Release|Win32

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Release|x64.ActiveCfg = Release|x64

+		{D4F79297-4960-6D63-D50E-5823C50ED124}.Release|x64.Build.0 = Release|x64

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Debug|Win32.ActiveCfg = Debug|Win32

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Debug|Win32.Build.0 = Debug|Win32

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Debug|x64.ActiveCfg = Debug|x64

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Debug|x64.Build.0 = Debug|x64

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Release|Win32.ActiveCfg = Release|Win32

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Release|Win32.Build.0 = Release|Win32

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Release|x64.ActiveCfg = Release|x64

+		{A0278E64-D98F-842D-438A-6747411CE76F}.Release|x64.Build.0 = Release|x64

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Debug|Win32.ActiveCfg = Debug|Win32

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Debug|Win32.Build.0 = Debug|Win32

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Debug|x64.ActiveCfg = Debug|x64

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Debug|x64.Build.0 = Debug|x64

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Release|Win32.ActiveCfg = Release|Win32

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Release|Win32.Build.0 = Release|Win32

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Release|x64.ActiveCfg = Release|x64

+		{BAF92F6C-E5BE-95B7-6E36-823A1779A818}.Release|x64.Build.0 = Release|x64

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Debug|Win32.ActiveCfg = Debug|Win32

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Debug|Win32.Build.0 = Debug|Win32

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Debug|x64.ActiveCfg = Debug|x64

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Debug|x64.Build.0 = Debug|x64

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Release|Win32.ActiveCfg = Release|Win32

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Release|Win32.Build.0 = Release|Win32

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Release|x64.ActiveCfg = Release|x64

+		{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}.Release|x64.Build.0 = Release|x64

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Debug|Win32.ActiveCfg = Debug|Win32

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Debug|Win32.Build.0 = Debug|Win32

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Debug|x64.ActiveCfg = Debug|x64

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Debug|x64.Build.0 = Debug|x64

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Release|Win32.ActiveCfg = Release|Win32

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Release|Win32.Build.0 = Release|Win32

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Release|x64.ActiveCfg = Release|x64

+		{8972AF2C-6333-2827-F75D-3BAC5E07915A}.Release|x64.Build.0 = Release|x64

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Debug|Win32.ActiveCfg = Debug|Win32

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Debug|Win32.Build.0 = Debug|Win32

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Debug|x64.ActiveCfg = Debug|x64

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Debug|x64.Build.0 = Debug|x64

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Release|Win32.ActiveCfg = Release|Win32

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Release|Win32.Build.0 = Release|Win32

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Release|x64.ActiveCfg = Release|x64

+		{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}.Release|x64.Build.0 = Release|x64

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Debug|Win32.ActiveCfg = Debug|Win32

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Debug|Win32.Build.0 = Debug|Win32

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Debug|x64.ActiveCfg = Debug|x64

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Debug|x64.Build.0 = Debug|x64

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Release|Win32.ActiveCfg = Release|Win32

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Release|Win32.Build.0 = Release|Win32

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Release|x64.ActiveCfg = Release|x64

+		{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}.Release|x64.Build.0 = Release|x64

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Debug|Win32.ActiveCfg = Debug|Win32

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Debug|Win32.Build.0 = Debug|Win32

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Debug|x64.ActiveCfg = Debug|x64

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Debug|x64.Build.0 = Debug|x64

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Release|Win32.ActiveCfg = Release|Win32

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Release|Win32.Build.0 = Release|Win32

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Release|x64.ActiveCfg = Release|x64

+		{5129B724-3FB6-CE34-FF51-57031A33C50B}.Release|x64.Build.0 = Release|x64

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Debug|Win32.ActiveCfg = Debug|Win32

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Debug|Win32.Build.0 = Debug|Win32

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Debug|x64.ActiveCfg = Debug|x64

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Debug|x64.Build.0 = Debug|x64

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Release|Win32.ActiveCfg = Release|Win32

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Release|Win32.Build.0 = Release|Win32

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Release|x64.ActiveCfg = Release|x64

+		{090B665D-0F4C-4D77-D1B1-A6D882842AA3}.Release|x64.Build.0 = Release|x64

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Debug|Win32.ActiveCfg = Debug|Win32

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Debug|Win32.Build.0 = Debug|Win32

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Debug|x64.ActiveCfg = Debug|x64

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Debug|x64.Build.0 = Debug|x64

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Release|Win32.ActiveCfg = Release|Win32

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Release|Win32.Build.0 = Release|Win32

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Release|x64.ActiveCfg = Release|x64

+		{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}.Release|x64.Build.0 = Release|x64

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Debug|Win32.ActiveCfg = Debug|Win32

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Debug|Win32.Build.0 = Debug|Win32

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Debug|x64.ActiveCfg = Debug|x64

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Debug|x64.Build.0 = Debug|x64

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Release|Win32.ActiveCfg = Release|Win32

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Release|Win32.Build.0 = Release|Win32

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Release|x64.ActiveCfg = Release|x64

+		{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}.Release|x64.Build.0 = Release|x64

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Debug|Win32.ActiveCfg = Debug|Win32

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Debug|Win32.Build.0 = Debug|Win32

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Debug|x64.ActiveCfg = Debug|x64

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Debug|x64.Build.0 = Debug|x64

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Release|Win32.ActiveCfg = Release|Win32

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Release|Win32.Build.0 = Release|Win32

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Release|x64.ActiveCfg = Release|x64

+		{239051A9-0CE6-7730-7BB0-83599DC37AA4}.Release|x64.Build.0 = Release|x64

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Debug|Win32.ActiveCfg = Debug|Win32

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Debug|Win32.Build.0 = Debug|Win32

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Debug|x64.ActiveCfg = Debug|x64

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Debug|x64.Build.0 = Debug|x64

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Release|Win32.ActiveCfg = Release|Win32

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Release|Win32.Build.0 = Release|Win32

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Release|x64.ActiveCfg = Release|x64

+		{EBDBB632-13A2-45F8-A44E-4837F6467512}.Release|x64.Build.0 = Release|x64

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Debug|Win32.ActiveCfg = Debug|Win32

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Debug|Win32.Build.0 = Debug|Win32

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Debug|x64.ActiveCfg = Debug|x64

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Debug|x64.Build.0 = Debug|x64

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Release|Win32.ActiveCfg = Release|Win32

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Release|Win32.Build.0 = Release|Win32

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Release|x64.ActiveCfg = Release|x64

+		{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}.Release|x64.Build.0 = Release|x64

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Debug|Win32.ActiveCfg = Debug|Win32

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Debug|Win32.Build.0 = Debug|Win32

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Debug|x64.ActiveCfg = Debug|x64

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Debug|x64.Build.0 = Debug|x64

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Release|Win32.ActiveCfg = Release|Win32

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Release|Win32.Build.0 = Release|Win32

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Release|x64.ActiveCfg = Release|x64

+		{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}.Release|x64.Build.0 = Release|x64

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Debug|Win32.ActiveCfg = Debug|Win32

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Debug|Win32.Build.0 = Debug|Win32

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Debug|x64.ActiveCfg = Debug|x64

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Debug|x64.Build.0 = Debug|x64

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Release|Win32.ActiveCfg = Release|Win32

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Release|Win32.Build.0 = Release|Win32

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Release|x64.ActiveCfg = Release|x64

+		{7E3D99BD-3D9E-762A-E235-9C8275E7010F}.Release|x64.Build.0 = Release|x64

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Debug|Win32.ActiveCfg = Debug|Win32

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Debug|Win32.Build.0 = Debug|Win32

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Debug|x64.ActiveCfg = Debug|x64

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Debug|x64.Build.0 = Debug|x64

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Release|Win32.ActiveCfg = Release|Win32

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Release|Win32.Build.0 = Release|Win32

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Release|x64.ActiveCfg = Release|x64

+		{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}.Release|x64.Build.0 = Release|x64

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Debug|Win32.ActiveCfg = Debug|Win32

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Debug|Win32.Build.0 = Debug|Win32

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Debug|x64.ActiveCfg = Debug|x64

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Debug|x64.Build.0 = Debug|x64

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Release|Win32.ActiveCfg = Release|Win32

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Release|Win32.Build.0 = Release|Win32

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Release|x64.ActiveCfg = Release|x64

+		{CFC883CE-9BAE-B26F-B08B-7F194AD35929}.Release|x64.Build.0 = Release|x64

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Debug|Win32.ActiveCfg = Debug|Win32

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Debug|Win32.Build.0 = Debug|Win32

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Debug|x64.ActiveCfg = Debug|x64

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Debug|x64.Build.0 = Debug|x64

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Release|Win32.ActiveCfg = Release|Win32

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Release|Win32.Build.0 = Release|Win32

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Release|x64.ActiveCfg = Release|x64

+		{77834257-2878-A38D-AEBE-79423968B6DB}.Release|x64.Build.0 = Release|x64

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Debug|Win32.ActiveCfg = Debug|Win32

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Debug|Win32.Build.0 = Debug|Win32

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Debug|x64.ActiveCfg = Debug|x64

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Debug|x64.Build.0 = Debug|x64

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Release|Win32.ActiveCfg = Release|Win32

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Release|Win32.Build.0 = Release|Win32

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Release|x64.ActiveCfg = Release|x64

+		{34A00BC1-32A6-5145-606F-F081D31CC1D1}.Release|x64.Build.0 = Release|x64

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Debug|Win32.ActiveCfg = Debug|Win32

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Debug|Win32.Build.0 = Debug|Win32

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Debug|x64.ActiveCfg = Debug|x64

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Debug|x64.Build.0 = Debug|x64

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Release|Win32.ActiveCfg = Release|Win32

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Release|Win32.Build.0 = Release|Win32

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Release|x64.ActiveCfg = Release|x64

+		{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}.Release|x64.Build.0 = Release|x64

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Debug|Win32.ActiveCfg = Debug|Win32

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Debug|Win32.Build.0 = Debug|Win32

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Debug|x64.ActiveCfg = Debug|x64

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Debug|x64.Build.0 = Debug|x64

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Release|Win32.ActiveCfg = Release|Win32

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Release|Win32.Build.0 = Release|Win32

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Release|x64.ActiveCfg = Release|x64

+		{CE90D346-EBC0-D292-6D68-24717DB3F510}.Release|x64.Build.0 = Release|x64

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Debug|Win32.ActiveCfg = Debug|Win32

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Debug|Win32.Build.0 = Debug|Win32

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Debug|x64.ActiveCfg = Debug|x64

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Debug|x64.Build.0 = Debug|x64

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Release|Win32.ActiveCfg = Release|Win32

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Release|Win32.Build.0 = Release|Win32

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Release|x64.ActiveCfg = Release|x64

+		{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}.Release|x64.Build.0 = Release|x64

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Debug|Win32.ActiveCfg = Debug|Win32

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Debug|Win32.Build.0 = Debug|Win32

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Debug|x64.ActiveCfg = Debug|x64

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Debug|x64.Build.0 = Debug|x64

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Release|Win32.ActiveCfg = Release|Win32

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Release|Win32.Build.0 = Release|Win32

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Release|x64.ActiveCfg = Release|x64

+		{C49B1EF8-D169-70C5-2FA4-837A900267A7}.Release|x64.Build.0 = Release|x64

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Debug|Win32.ActiveCfg = Debug|Win32

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Debug|Win32.Build.0 = Debug|Win32

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Debug|x64.ActiveCfg = Debug|x64

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Debug|x64.Build.0 = Debug|x64

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Release|Win32.ActiveCfg = Release|Win32

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Release|Win32.Build.0 = Release|Win32

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Release|x64.ActiveCfg = Release|x64

+		{870B39B9-8F38-D9A4-8A07-87047C565061}.Release|x64.Build.0 = Release|x64

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Debug|Win32.ActiveCfg = Debug|Win32

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Debug|Win32.Build.0 = Debug|Win32

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Debug|x64.ActiveCfg = Debug|x64

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Debug|x64.Build.0 = Debug|x64

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Release|Win32.ActiveCfg = Release|Win32

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Release|Win32.Build.0 = Release|Win32

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Release|x64.ActiveCfg = Release|x64

+		{D8295912-D341-F4E4-DC8E-98A2A0604221}.Release|x64.Build.0 = Release|x64

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Debug|Win32.ActiveCfg = Debug|Win32

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Debug|Win32.Build.0 = Debug|Win32

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Debug|x64.ActiveCfg = Debug|x64

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Debug|x64.Build.0 = Debug|x64

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Release|Win32.ActiveCfg = Release|Win32

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Release|Win32.Build.0 = Release|Win32

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Release|x64.ActiveCfg = Release|x64

+		{68EFA4E3-08B0-2925-0EF6-177996B08B24}.Release|x64.Build.0 = Release|x64

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Debug|Win32.ActiveCfg = Debug|Win32

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Debug|Win32.Build.0 = Debug|Win32

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Debug|x64.ActiveCfg = Debug|x64

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Debug|x64.Build.0 = Debug|x64

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Release|Win32.ActiveCfg = Release|Win32

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Release|Win32.Build.0 = Release|Win32

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Release|x64.ActiveCfg = Release|x64

+		{2E5B8634-26AC-5819-5AF7-16F996A7F529}.Release|x64.Build.0 = Release|x64

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Debug|Win32.ActiveCfg = Debug|Win32

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Debug|Win32.Build.0 = Debug|Win32

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Debug|x64.ActiveCfg = Debug|x64

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Debug|x64.Build.0 = Debug|x64

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Release|Win32.ActiveCfg = Release|Win32

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Release|Win32.Build.0 = Release|Win32

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Release|x64.ActiveCfg = Release|x64

+		{D93D1FF0-5E83-2247-31A0-017D20F8011F}.Release|x64.Build.0 = Release|x64

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Debug|Win32.ActiveCfg = Debug|Win32

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Debug|Win32.Build.0 = Debug|Win32

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Debug|x64.ActiveCfg = Debug|x64

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Debug|x64.Build.0 = Debug|x64

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Release|Win32.ActiveCfg = Release|Win32

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Release|Win32.Build.0 = Release|Win32

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Release|x64.ActiveCfg = Release|x64

+		{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}.Release|x64.Build.0 = Release|x64

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Debug|Win32.ActiveCfg = Debug|Win32

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Debug|Win32.Build.0 = Debug|Win32

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Debug|x64.ActiveCfg = Debug|x64

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Debug|x64.Build.0 = Debug|x64

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Release|Win32.ActiveCfg = Release|Win32

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Release|Win32.Build.0 = Release|Win32

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Release|x64.ActiveCfg = Release|x64

+		{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}.Release|x64.Build.0 = Release|x64

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Debug|Win32.ActiveCfg = Debug|Win32

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Debug|Win32.Build.0 = Debug|Win32

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Debug|x64.ActiveCfg = Debug|x64

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Debug|x64.Build.0 = Debug|x64

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Release|Win32.ActiveCfg = Release|Win32

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Release|Win32.Build.0 = Release|Win32

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Release|x64.ActiveCfg = Release|x64

+		{58A8E53D-21CB-5F27-5111-737EBD3F37A0}.Release|x64.Build.0 = Release|x64

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Debug|Win32.ActiveCfg = Debug|Win32

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Debug|Win32.Build.0 = Debug|Win32

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Debug|x64.ActiveCfg = Debug|x64

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Debug|x64.Build.0 = Debug|x64

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Release|Win32.ActiveCfg = Release|Win32

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Release|Win32.Build.0 = Release|Win32

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Release|x64.ActiveCfg = Release|x64

+		{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}.Release|x64.Build.0 = Release|x64

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Debug|Win32.ActiveCfg = Debug|Win32

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Debug|Win32.Build.0 = Debug|Win32

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Debug|x64.ActiveCfg = Debug|x64

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Debug|x64.Build.0 = Debug|x64

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Release|Win32.ActiveCfg = Release|Win32

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Release|Win32.Build.0 = Release|Win32

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Release|x64.ActiveCfg = Release|x64

+		{0FC4D326-CF64-AB19-B037-3E3D06EA6798}.Release|x64.Build.0 = Release|x64

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Debug|Win32.ActiveCfg = Debug|Win32

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Debug|Win32.Build.0 = Debug|Win32

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Debug|x64.ActiveCfg = Debug|x64

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Debug|x64.Build.0 = Debug|x64

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Release|Win32.ActiveCfg = Release|Win32

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Release|Win32.Build.0 = Release|Win32

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Release|x64.ActiveCfg = Release|x64

+		{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}.Release|x64.Build.0 = Release|x64

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Debug|Win32.ActiveCfg = Debug|Win32

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Debug|Win32.Build.0 = Debug|Win32

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Debug|x64.ActiveCfg = Debug|x64

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Debug|x64.Build.0 = Debug|x64

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Release|Win32.ActiveCfg = Release|Win32

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Release|Win32.Build.0 = Release|Win32

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Release|x64.ActiveCfg = Release|x64

+		{9D625831-AF31-CFBA-8855-61C024DA2DE0}.Release|x64.Build.0 = Release|x64

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Debug|Win32.ActiveCfg = Debug|Win32

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Debug|Win32.Build.0 = Debug|Win32

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Debug|x64.ActiveCfg = Debug|x64

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Debug|x64.Build.0 = Debug|x64

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Release|Win32.ActiveCfg = Release|Win32

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Release|Win32.Build.0 = Release|Win32

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Release|x64.ActiveCfg = Release|x64

+		{E3172E20-4935-69C7-A398-C13EAA76818F}.Release|x64.Build.0 = Release|x64

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Debug|Win32.ActiveCfg = Debug|Win32

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Debug|Win32.Build.0 = Debug|Win32

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Debug|x64.ActiveCfg = Debug|x64

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Debug|x64.Build.0 = Debug|x64

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Release|Win32.ActiveCfg = Release|Win32

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Release|Win32.Build.0 = Release|Win32

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Release|x64.ActiveCfg = Release|x64

+		{10F967D6-468F-3BCA-2D58-36A32E376930}.Release|x64.Build.0 = Release|x64

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Debug|Win32.ActiveCfg = Debug|Win32

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Debug|Win32.Build.0 = Debug|Win32

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Debug|x64.ActiveCfg = Debug|x64

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Debug|x64.Build.0 = Debug|x64

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Release|Win32.ActiveCfg = Release|Win32

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Release|Win32.Build.0 = Release|Win32

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Release|x64.ActiveCfg = Release|x64

+		{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}.Release|x64.Build.0 = Release|x64

 	EndGlobalSection

 	GlobalSection(SolutionProperties) = preSolution

 		HideSolutionNode = FALSE

diff --git a/visualc/VS2010/PolarSSL.vcxproj b/visualc/VS2010/PolarSSL.vcxproj
index fce156d..5ea5b15 100644
--- a/visualc/VS2010/PolarSSL.vcxproj
+++ b/visualc/VS2010/PolarSSL.vcxproj
@@ -154,10 +154,11 @@
     <ClInclude Include="..\..\include\polarssl\camellia.h" />

     <ClInclude Include="..\..\include\polarssl\ccm.h" />

     <ClInclude Include="..\..\include\polarssl\certs.h" />

+    <ClInclude Include="..\..\include\polarssl\check_config.h" />

     <ClInclude Include="..\..\include\polarssl\cipher.h" />

     <ClInclude Include="..\..\include\polarssl\cipher_wrap.h" />

+    <ClInclude Include="..\..\include\polarssl\compat-1.2.h" />

     <ClInclude Include="..\..\include\polarssl\config.h" />

-    <ClInclude Include="..\..\include\polarssl\check_config.h" />

     <ClInclude Include="..\..\include\polarssl\ctr_drbg.h" />

     <ClInclude Include="..\..\include\polarssl\debug.h" />

     <ClInclude Include="..\..\include\polarssl\des.h" />

@@ -171,10 +172,10 @@
     <ClInclude Include="..\..\include\polarssl\gcm.h" />

     <ClInclude Include="..\..\include\polarssl\havege.h" />

     <ClInclude Include="..\..\include\polarssl\hmac_drbg.h" />

+    <ClInclude Include="..\..\include\polarssl\md.h" />

     <ClInclude Include="..\..\include\polarssl\md2.h" />

     <ClInclude Include="..\..\include\polarssl\md4.h" />

     <ClInclude Include="..\..\include\polarssl\md5.h" />

-    <ClInclude Include="..\..\include\polarssl\md.h" />

     <ClInclude Include="..\..\include\polarssl\md_wrap.h" />

     <ClInclude Include="..\..\include\polarssl\memory.h" />

     <ClInclude Include="..\..\include\polarssl\memory_buffer_alloc.h" />

@@ -184,27 +185,27 @@
     <ClInclude Include="..\..\include\polarssl\padlock.h" />

     <ClInclude Include="..\..\include\polarssl\pbkdf2.h" />

     <ClInclude Include="..\..\include\polarssl\pem.h" />

+    <ClInclude Include="..\..\include\polarssl\pk.h" />

+    <ClInclude Include="..\..\include\polarssl\pk_wrap.h" />

     <ClInclude Include="..\..\include\polarssl\pkcs11.h" />

     <ClInclude Include="..\..\include\polarssl\pkcs12.h" />

     <ClInclude Include="..\..\include\polarssl\pkcs5.h" />

-    <ClInclude Include="..\..\include\polarssl\pk.h" />

-    <ClInclude Include="..\..\include\polarssl\pk_wrap.h" />

     <ClInclude Include="..\..\include\polarssl\platform.h" />

     <ClInclude Include="..\..\include\polarssl\ripemd160.h" />

     <ClInclude Include="..\..\include\polarssl\rsa.h" />

     <ClInclude Include="..\..\include\polarssl\sha1.h" />

     <ClInclude Include="..\..\include\polarssl\sha256.h" />

     <ClInclude Include="..\..\include\polarssl\sha512.h" />

+    <ClInclude Include="..\..\include\polarssl\ssl.h" />

     <ClInclude Include="..\..\include\polarssl\ssl_cache.h" />

     <ClInclude Include="..\..\include\polarssl\ssl_ciphersuites.h" />

-    <ClInclude Include="..\..\include\polarssl\ssl.h" />

     <ClInclude Include="..\..\include\polarssl\threading.h" />

     <ClInclude Include="..\..\include\polarssl\timing.h" />

     <ClInclude Include="..\..\include\polarssl\version.h" />

+    <ClInclude Include="..\..\include\polarssl\x509.h" />

     <ClInclude Include="..\..\include\polarssl\x509_crl.h" />

     <ClInclude Include="..\..\include\polarssl\x509_crt.h" />

     <ClInclude Include="..\..\include\polarssl\x509_csr.h" />

-    <ClInclude Include="..\..\include\polarssl\x509.h" />

     <ClInclude Include="..\..\include\polarssl\xtea.h" />

   </ItemGroup>

   <ItemGroup>

@@ -235,10 +236,10 @@
     <ClCompile Include="..\..\library\gcm.c" />

     <ClCompile Include="..\..\library\havege.c" />

     <ClCompile Include="..\..\library\hmac_drbg.c" />

+    <ClCompile Include="..\..\library\md.c" />

     <ClCompile Include="..\..\library\md2.c" />

     <ClCompile Include="..\..\library\md4.c" />

     <ClCompile Include="..\..\library\md5.c" />

-    <ClCompile Include="..\..\library\md.c" />

     <ClCompile Include="..\..\library\md_wrap.c" />

     <ClCompile Include="..\..\library\memory_buffer_alloc.c" />

     <ClCompile Include="..\..\library\net.c" />

@@ -247,11 +248,11 @@
     <ClCompile Include="..\..\library\pbkdf2.c" />

     <ClCompile Include="..\..\library\pem.c" />

     <ClCompile Include="..\..\library\pk.c" />

+    <ClCompile Include="..\..\library\pk_wrap.c" />

     <ClCompile Include="..\..\library\pkcs11.c" />

     <ClCompile Include="..\..\library\pkcs12.c" />

     <ClCompile Include="..\..\library\pkcs5.c" />

     <ClCompile Include="..\..\library\pkparse.c" />

-    <ClCompile Include="..\..\library\pk_wrap.c" />

     <ClCompile Include="..\..\library\pkwrite.c" />

     <ClCompile Include="..\..\library\platform.c" />

     <ClCompile Include="..\..\library\ripemd160.c" />

diff --git a/visualc/VS2010/aescrypt2.vcxproj b/visualc/VS2010/aescrypt2.vcxproj
index b6567e2..2e2727c 100644
--- a/visualc/VS2010/aescrypt2.vcxproj
+++ b/visualc/VS2010/aescrypt2.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{46298485-CE22-B800-3D95-6D6C821819A1}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>aescrypt2</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/benchmark.vcxproj b/visualc/VS2010/benchmark.vcxproj
index aa548d7..303f5ec 100644
--- a/visualc/VS2010/benchmark.vcxproj
+++ b/visualc/VS2010/benchmark.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{58A8E53D-21CB-5F27-5111-737EBD3F37A0}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>benchmark</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/cert_app.vcxproj b/visualc/VS2010/cert_app.vcxproj
index d88a78d..095ec00 100644
--- a/visualc/VS2010/cert_app.vcxproj
+++ b/visualc/VS2010/cert_app.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{E3172E20-4935-69C7-A398-C13EAA76818F}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>cert_app</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/cert_req.vcxproj b/visualc/VS2010/cert_req.vcxproj
index c493363..344aba8 100644
--- a/visualc/VS2010/cert_req.vcxproj
+++ b/visualc/VS2010/cert_req.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{5ABF68F6-5360-DE1F-74B6-66ED5BF52619}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>cert_req</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/crl_app.vcxproj b/visualc/VS2010/crl_app.vcxproj
index d6e77d1..e0833fe 100644
--- a/visualc/VS2010/crl_app.vcxproj
+++ b/visualc/VS2010/crl_app.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{10F967D6-468F-3BCA-2D58-36A32E376930}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>crl_app</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/crypt_and_hash.vcxproj b/visualc/VS2010/crypt_and_hash.vcxproj
index 666c2e4..ebab221 100644
--- a/visualc/VS2010/crypt_and_hash.vcxproj
+++ b/visualc/VS2010/crypt_and_hash.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{84F76F01-FA6C-7C48-1979-06FD24B476C1}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>crypt_and_hash</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/dh_client.vcxproj b/visualc/VS2010/dh_client.vcxproj
index cb40ff4..e3aa94a 100644
--- a/visualc/VS2010/dh_client.vcxproj
+++ b/visualc/VS2010/dh_client.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{92253FCF-72E1-7AF6-EAD1-E9037A194C9F}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>dh_client</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/dh_genprime.vcxproj b/visualc/VS2010/dh_genprime.vcxproj
index 9ea6aef..b052b3a 100644
--- a/visualc/VS2010/dh_genprime.vcxproj
+++ b/visualc/VS2010/dh_genprime.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{8972AF2C-6333-2827-F75D-3BAC5E07915A}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>dh_genprime</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/dh_server.vcxproj b/visualc/VS2010/dh_server.vcxproj
index 48d78f7..44b0a4e 100644
--- a/visualc/VS2010/dh_server.vcxproj
+++ b/visualc/VS2010/dh_server.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{9BB33B8B-A1D3-ABEF-9071-D92289A4CEED}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>dh_server</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/gen_entropy.vcxproj b/visualc/VS2010/gen_entropy.vcxproj
index e60d5e1..8bc5294 100644
--- a/visualc/VS2010/gen_entropy.vcxproj
+++ b/visualc/VS2010/gen_entropy.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{2E5B8634-26AC-5819-5AF7-16F996A7F529}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>gen_entropy</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/gen_key.vcxproj b/visualc/VS2010/gen_key.vcxproj
index b3447b5..896e820 100644
--- a/visualc/VS2010/gen_key.vcxproj
+++ b/visualc/VS2010/gen_key.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{7721EBA2-C892-AD9B-4994-A0E988BA4BF8}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>gen_key</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/gen_random_ctr_drbg.vcxproj b/visualc/VS2010/gen_random_ctr_drbg.vcxproj
index 2315ea6..0798aff 100644
--- a/visualc/VS2010/gen_random_ctr_drbg.vcxproj
+++ b/visualc/VS2010/gen_random_ctr_drbg.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{C5DF2F0C-3EFC-E5D6-7FD2-AD599CADDB15}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>gen_random_ctr_drbg</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/gen_random_havege.vcxproj b/visualc/VS2010/gen_random_havege.vcxproj
index e7b41ed..58126de 100644
--- a/visualc/VS2010/gen_random_havege.vcxproj
+++ b/visualc/VS2010/gen_random_havege.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{D93D1FF0-5E83-2247-31A0-017D20F8011F}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>gen_random_havege</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/generic_sum.vcxproj b/visualc/VS2010/generic_sum.vcxproj
index 1a8a87b..441c9cb 100644
--- a/visualc/VS2010/generic_sum.vcxproj
+++ b/visualc/VS2010/generic_sum.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{7036A174-35D6-54AE-7613-A50F5FD8AF86}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>generic_sum</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/hello.vcxproj b/visualc/VS2010/hello.vcxproj
index 786d0f4..83c0559 100644
--- a/visualc/VS2010/hello.vcxproj
+++ b/visualc/VS2010/hello.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{7076F38E-EDC4-1A0C-8D9B-CFB0A3E9724F}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>hello</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/key_app.vcxproj b/visualc/VS2010/key_app.vcxproj
index b34e88c..d061574 100644
--- a/visualc/VS2010/key_app.vcxproj
+++ b/visualc/VS2010/key_app.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{5129B724-3FB6-CE34-FF51-57031A33C50B}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>key_app</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/key_app_writer.vcxproj b/visualc/VS2010/key_app_writer.vcxproj
index 1df379d..a7c4e4f 100644
--- a/visualc/VS2010/key_app_writer.vcxproj
+++ b/visualc/VS2010/key_app_writer.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{090B665D-0F4C-4D77-D1B1-A6D882842AA3}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>key_app_writer</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/md5sum.vcxproj b/visualc/VS2010/md5sum.vcxproj
index 5ab7231..bb4ee8a 100644
--- a/visualc/VS2010/md5sum.vcxproj
+++ b/visualc/VS2010/md5sum.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{D4F79297-4960-6D63-D50E-5823C50ED124}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>md5sum</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/mpi_demo.vcxproj b/visualc/VS2010/mpi_demo.vcxproj
index b597b7b..9c225a6 100644
--- a/visualc/VS2010/mpi_demo.vcxproj
+++ b/visualc/VS2010/mpi_demo.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{08A79AF8-5B8A-4343-D01A-B8AB47F3366C}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>mpi_demo</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/pem2der.vcxproj b/visualc/VS2010/pem2der.vcxproj
index 3c98f84..be92d3f 100644
--- a/visualc/VS2010/pem2der.vcxproj
+++ b/visualc/VS2010/pem2der.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{ACFFE3C9-3628-9B99-E0C9-36CF95F86B5F}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>pem2der</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/pk_decrypt.vcxproj b/visualc/VS2010/pk_decrypt.vcxproj
index 75fbec5..d3df49b 100644
--- a/visualc/VS2010/pk_decrypt.vcxproj
+++ b/visualc/VS2010/pk_decrypt.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{C69CD150-7174-FA91-9E6E-B7DDD56FDE8E}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>pk_decrypt</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/pk_encrypt.vcxproj b/visualc/VS2010/pk_encrypt.vcxproj
index 78db650..4cd5e89 100644
--- a/visualc/VS2010/pk_encrypt.vcxproj
+++ b/visualc/VS2010/pk_encrypt.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{239051A9-0CE6-7730-7BB0-83599DC37AA4}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>pk_encrypt</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/pk_sign.vcxproj b/visualc/VS2010/pk_sign.vcxproj
index 185baa3..52501b7 100644
--- a/visualc/VS2010/pk_sign.vcxproj
+++ b/visualc/VS2010/pk_sign.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{EBDBB632-13A2-45F8-A44E-4837F6467512}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>pk_sign</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/pk_verify.vcxproj b/visualc/VS2010/pk_verify.vcxproj
index 6bb7f76..00ed98f 100644
--- a/visualc/VS2010/pk_verify.vcxproj
+++ b/visualc/VS2010/pk_verify.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{CA8D1EDA-2881-55E0-8F1C-B379B5AA7B56}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>pk_verify</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/rsa_decrypt.vcxproj b/visualc/VS2010/rsa_decrypt.vcxproj
index 7f967b5..d08083d 100644
--- a/visualc/VS2010/rsa_decrypt.vcxproj
+++ b/visualc/VS2010/rsa_decrypt.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{7E3D99BD-3D9E-762A-E235-9C8275E7010F}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>rsa_decrypt</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/rsa_encrypt.vcxproj b/visualc/VS2010/rsa_encrypt.vcxproj
index 1ae39ef..8982628 100644
--- a/visualc/VS2010/rsa_encrypt.vcxproj
+++ b/visualc/VS2010/rsa_encrypt.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{DA85604D-9ED1-FD08-4F37-FBD33E5E3642}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>rsa_encrypt</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/rsa_genkey.vcxproj b/visualc/VS2010/rsa_genkey.vcxproj
index c4cf706..e39d46d 100644
--- a/visualc/VS2010/rsa_genkey.vcxproj
+++ b/visualc/VS2010/rsa_genkey.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{AD5B2F84-44A2-8D21-D47D-07E0ED7E0AAD}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>rsa_genkey</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/rsa_sign.vcxproj b/visualc/VS2010/rsa_sign.vcxproj
index 44d54f0..c506f6e 100644
--- a/visualc/VS2010/rsa_sign.vcxproj
+++ b/visualc/VS2010/rsa_sign.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{CFC883CE-9BAE-B26F-B08B-7F194AD35929}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>rsa_sign</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/rsa_sign_pss.vcxproj b/visualc/VS2010/rsa_sign_pss.vcxproj
index adfa6a7..0b74bbb 100644
--- a/visualc/VS2010/rsa_sign_pss.vcxproj
+++ b/visualc/VS2010/rsa_sign_pss.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{34A00BC1-32A6-5145-606F-F081D31CC1D1}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>rsa_sign_pss</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/rsa_verify.vcxproj b/visualc/VS2010/rsa_verify.vcxproj
index 1b9597c..8b8410c 100644
--- a/visualc/VS2010/rsa_verify.vcxproj
+++ b/visualc/VS2010/rsa_verify.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{77834257-2878-A38D-AEBE-79423968B6DB}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>rsa_verify</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/rsa_verify_pss.vcxproj b/visualc/VS2010/rsa_verify_pss.vcxproj
index 403f76a..df54f61 100644
--- a/visualc/VS2010/rsa_verify_pss.vcxproj
+++ b/visualc/VS2010/rsa_verify_pss.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{DAD91B2F-DEC8-E94F-8D9A-66B6E237AF07}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>rsa_verify_pss</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/selftest.vcxproj b/visualc/VS2010/selftest.vcxproj
index e5e5080..8edf196 100644
--- a/visualc/VS2010/selftest.vcxproj
+++ b/visualc/VS2010/selftest.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{4DD758B5-6FC5-66C0-1D26-22C74C88FEF3}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>selftest</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/sha1sum.vcxproj b/visualc/VS2010/sha1sum.vcxproj
index 1e3d264..e4b0cea 100644
--- a/visualc/VS2010/sha1sum.vcxproj
+++ b/visualc/VS2010/sha1sum.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{A0278E64-D98F-842D-438A-6747411CE76F}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>sha1sum</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/sha2sum.vcxproj b/visualc/VS2010/sha2sum.vcxproj
index abfb7f3..821050a 100644
--- a/visualc/VS2010/sha2sum.vcxproj
+++ b/visualc/VS2010/sha2sum.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{BAF92F6C-E5BE-95B7-6E36-823A1779A818}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>sha2sum</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_cert_test.vcxproj b/visualc/VS2010/ssl_cert_test.vcxproj
index 00412ac..e47ec9a 100644
--- a/visualc/VS2010/ssl_cert_test.vcxproj
+++ b/visualc/VS2010/ssl_cert_test.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{173A0BC9-FF81-3C36-7887-4FBD6032C9FD}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_cert_test</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_client1.vcxproj b/visualc/VS2010/ssl_client1.vcxproj
index d1e4071..bdcec8b 100644
--- a/visualc/VS2010/ssl_client1.vcxproj
+++ b/visualc/VS2010/ssl_client1.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{CE90D346-EBC0-D292-6D68-24717DB3F510}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_client1</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_client2.vcxproj b/visualc/VS2010/ssl_client2.vcxproj
index 88bec78..62cd2bd 100644
--- a/visualc/VS2010/ssl_client2.vcxproj
+++ b/visualc/VS2010/ssl_client2.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{436AF1C2-99E7-32FA-5BFA-641F1FF2C57D}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_client2</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_fork_server.vcxproj b/visualc/VS2010/ssl_fork_server.vcxproj
index dbaebd4..b0e55f0 100644
--- a/visualc/VS2010/ssl_fork_server.vcxproj
+++ b/visualc/VS2010/ssl_fork_server.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{D8295912-D341-F4E4-DC8E-98A2A0604221}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_fork_server</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_mail_client.vcxproj b/visualc/VS2010/ssl_mail_client.vcxproj
index b2bb02f..8ffc3ad 100644
--- a/visualc/VS2010/ssl_mail_client.vcxproj
+++ b/visualc/VS2010/ssl_mail_client.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{68EFA4E3-08B0-2925-0EF6-177996B08B24}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_mail_client</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_server.vcxproj b/visualc/VS2010/ssl_server.vcxproj
index 796ec38..d75f9f1 100644
--- a/visualc/VS2010/ssl_server.vcxproj
+++ b/visualc/VS2010/ssl_server.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{C49B1EF8-D169-70C5-2FA4-837A900267A7}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_server</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_server2.vcxproj b/visualc/VS2010/ssl_server2.vcxproj
index a27050d..df0585e 100644
--- a/visualc/VS2010/ssl_server2.vcxproj
+++ b/visualc/VS2010/ssl_server2.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{870B39B9-8F38-D9A4-8A07-87047C565061}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_server2</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/ssl_test.vcxproj b/visualc/VS2010/ssl_test.vcxproj
index af30517..2332758 100644
--- a/visualc/VS2010/ssl_test.vcxproj
+++ b/visualc/VS2010/ssl_test.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{0FC4D326-CF64-AB19-B037-3E3D06EA6798}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>ssl_test</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS2010/strerror.vcxproj b/visualc/VS2010/strerror.vcxproj
index 99bb37b..03a4da1 100644
--- a/visualc/VS2010/strerror.vcxproj
+++ b/visualc/VS2010/strerror.vcxproj
@@ -27,7 +27,7 @@
     </ProjectReference>

   </ItemGroup>

   <PropertyGroup Label="Globals">

-    <ProjectGuid>{54880004-9AA2-434D-A2F0-7F59D6F1536A}</ProjectGuid>

+    <ProjectGuid>{9D625831-AF31-CFBA-8855-61C024DA2DE0}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>strerror</RootNamespace>

   </PropertyGroup>

diff --git a/visualc/VS6/polarssl.dsp b/visualc/VS6/polarssl.dsp
index 37a9e6e..17e9e70 100644
--- a/visualc/VS6/polarssl.dsp
+++ b/visualc/VS6/polarssl.dsp
@@ -74,7 +74,7 @@
 # ADD BASE LIB32 /nologo

 # ADD LIB32 /nologo

 

-!ENDIF 

+!ENDIF

 

 # Begin Target

 

@@ -193,6 +193,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=..\..\library\md.c

+# End Source File

+# Begin Source File

+

 SOURCE=..\..\library\md2.c

 # End Source File

 # Begin Source File

@@ -205,10 +209,6 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\library\md.c

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\library\md_wrap.c

 # End Source File

 # Begin Source File

@@ -241,6 +241,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=..\..\library\pk_wrap.c

+# End Source File

+# Begin Source File

+

 SOURCE=..\..\library\pkcs11.c

 # End Source File

 # Begin Source File

@@ -257,10 +261,6 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\library\pk_wrap.c

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\library\pkwrite.c

 # End Source File

 # Begin Source File

@@ -333,10 +333,6 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\library\x509_create.c

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\library\x509_crl.c

 # End Source File

 # Begin Source File

@@ -413,6 +409,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=..\..\include\polarssl\check_config.h

+# End Source File

+# Begin Source File

+

 SOURCE=..\..\include\polarssl\cipher.h

 # End Source File

 # Begin Source File

@@ -421,11 +421,11 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\config.h

+SOURCE=..\..\include\polarssl\compat-1.2.h

 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\check_config.h

+SOURCE=..\..\include\polarssl\config.h

 # End Source File

 # Begin Source File

 

@@ -481,6 +481,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=..\..\include\polarssl\md.h

+# End Source File

+# Begin Source File

+

 SOURCE=..\..\include\polarssl\md2.h

 # End Source File

 # Begin Source File

@@ -493,19 +497,15 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\md.h

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\include\polarssl\md_wrap.h

 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\memory_buffer_alloc.h

+SOURCE=..\..\include\polarssl\memory.h

 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\memory.h

+SOURCE=..\..\include\polarssl\memory_buffer_alloc.h

 # End Source File

 # Begin Source File

 

@@ -533,6 +533,14 @@
 # End Source File

 # Begin Source File

 

+SOURCE=..\..\include\polarssl\pk.h

+# End Source File

+# Begin Source File

+

+SOURCE=..\..\include\polarssl\pk_wrap.h

+# End Source File

+# Begin Source File

+

 SOURCE=..\..\include\polarssl\pkcs11.h

 # End Source File

 # Begin Source File

@@ -545,14 +553,6 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\pk.h

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\include\polarssl\pk_wrap.h

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\include\polarssl\platform.h

 # End Source File

 # Begin Source File

@@ -577,6 +577,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=..\..\include\polarssl\ssl.h

+# End Source File

+# Begin Source File

+

 SOURCE=..\..\include\polarssl\ssl_cache.h

 # End Source File

 # Begin Source File

@@ -585,10 +589,6 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\ssl.h

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\include\polarssl\threading.h

 # End Source File

 # Begin Source File

@@ -601,6 +601,10 @@
 # End Source File

 # Begin Source File

 

+SOURCE=..\..\include\polarssl\x509.h

+# End Source File

+# Begin Source File

+

 SOURCE=..\..\include\polarssl\x509_crl.h

 # End Source File

 # Begin Source File

@@ -613,10 +617,6 @@
 # End Source File

 # Begin Source File

 

-SOURCE=..\..\include\polarssl\x509.h

-# End Source File

-# Begin Source File

-

 SOURCE=..\..\include\polarssl\xtea.h

 # End Source File

 # End Group

diff --git a/visualc/VS6/polarssl.dsw b/visualc/VS6/polarssl.dsw
old mode 100755
new mode 100644
index 099fd76..105e604
--- a/visualc/VS6/polarssl.dsw
+++ b/visualc/VS6/polarssl.dsw
@@ -18,7 +18,82 @@
 

 ###############################################################################

 

-Project: "benchmark"=.\benchmark.dsp - Package Owner=<4>

+Project: "crypt_and_hash"=.\crypt_and_hash.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "hello"=.\hello.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "generic_sum"=.\generic_sum.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "md5sum"=.\md5sum.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "sha1sum"=.\sha1sum.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "sha2sum"=.\sha2sum.dsp - Package Owner=<4>

 

 Package=<5>

 {{{

@@ -78,7 +153,7 @@
 

 ###############################################################################

 

-Project: "hello"=.\hello.dsp - Package Owner=<4>

+Project: "gen_key"=.\gen_key.dsp - Package Owner=<4>

 

 Package=<5>

 {{{

@@ -93,7 +168,22 @@
 

 ###############################################################################

 

-Project: "md5sum"=.\md5sum.dsp - Package Owner=<4>

+Project: "key_app"=.\key_app.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "key_app_writer"=.\key_app_writer.dsp - Package Owner=<4>

 

 Package=<5>

 {{{

@@ -123,7 +213,7 @@
 

 ###############################################################################

 

-Project: "polarssl"=.\polarssl.dsp - Package Owner=<4>

+Project: "pk_decrypt"=.\pk_decrypt.dsp - Package Owner=<4>

 

 Package=<5>

 {{{

@@ -131,6 +221,54 @@
 

 Package=<4>

 {{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "pk_encrypt"=.\pk_encrypt.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "pk_sign"=.\pk_sign.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "pk_verify"=.\pk_verify.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

 }}}

 

 ###############################################################################

@@ -150,6 +288,36 @@
 

 ###############################################################################

 

+Project: "rsa_decrypt"=.\rsa_decrypt.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "rsa_encrypt"=.\rsa_encrypt.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

 Project: "rsa_sign"=.\rsa_sign.dsp - Package Owner=<4>

 

 Package=<5>

@@ -180,7 +348,7 @@
 

 ###############################################################################

 

-Project: "selftest"=.\selftest.dsp - Package Owner=<4>

+Project: "rsa_sign_pss"=.\rsa_sign_pss.dsp - Package Owner=<4>

 

 Package=<5>

 {{{

@@ -195,37 +363,7 @@
 

 ###############################################################################

 

-Project: "sha1sum"=.\sha1sum.dsp - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name polarssl

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "sha2sum"=.\sha2sum.dsp - Package Owner=<4>

-

-Package=<5>

-{{{

-}}}

-

-Package=<4>

-{{{

-    Begin Project Dependency

-    Project_Dep_Name polarssl

-    End Project Dependency

-}}}

-

-###############################################################################

-

-Project: "ssl_cert_test"=.\ssl_cert_test.dsp - Package Owner=<4>

+Project: "rsa_verify_pss"=.\rsa_verify_pss.dsp - Package Owner=<4>

 

 Package=<5>

 {{{

@@ -285,6 +423,231 @@
 

 ###############################################################################

 

+Project: "ssl_server2"=.\ssl_server2.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "ssl_fork_server"=.\ssl_fork_server.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "ssl_mail_client"=.\ssl_mail_client.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "gen_entropy"=.\gen_entropy.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "gen_random_havege"=.\gen_random_havege.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "gen_random_ctr_drbg"=.\gen_random_ctr_drbg.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "ssl_cert_test"=.\ssl_cert_test.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "benchmark"=.\benchmark.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "selftest"=.\selftest.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "ssl_test"=.\ssl_test.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "pem2der"=.\pem2der.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "strerror"=.\strerror.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "cert_app"=.\cert_app.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "crl_app"=.\crl_app.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "cert_req"=.\cert_req.dsp - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name polarssl

+    End Project Dependency

+}}}

+

+###############################################################################

+

 Global:

 

 Package=<5>

diff --git a/visualc/VS6/ssl_cert_test.dsp b/visualc/VS6/ssl_cert_test.dsp
old mode 100755
new mode 100644