Add cpp cross tests to the build workflow

- Remove usage of v0.16 thrift files for C++ since UUID support was added
- Need to install the locals for some of the unit tests
- Fix UUID support for THeaderProtocol
    - Without this the protocol went into an infinite loop due to virtual function calls that recursed to itself
    - Best case was a crash, worst case was process got stuck
- Fix UUID support for TProtocolTap
- Sorted the known failures
- Mark cpp and java ssl tests as known failures
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index acb4d3c..416a9ac 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -552,6 +552,71 @@
       - name: Run ts tests
         run: make -C lib/nodets check
 
+  lib-cpp:
+    needs: compiler
+    runs-on: ubuntu-24.04
+    steps:
+      - uses: actions/checkout@v4
+
+      - name: Install dependencies
+        run: |
+          sudo apt-get update -yq
+          sudo apt-get install -y --no-install-recommends g++ $BUILD_DEPS locales
+          sudo locale-gen en_US.UTF-8
+          sudo locale-gen de_DE.UTF-8
+          sudo update-locale
+
+      - name: Run bootstrap
+        run: ./bootstrap.sh
+
+      - name: Run configure
+        run: |
+          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed -E 's/without-cpp/with-cpp/g')
+
+      - uses: actions/download-artifact@v4
+        with:
+          name: thrift-compiler
+          path: compiler/cpp
+
+      - name: Run thrift-compiler
+        run: |
+          chmod a+x compiler/cpp/thrift
+          compiler/cpp/thrift -version
+
+      - name: Run make for cpp
+        run: make -j$(nproc) -C lib/cpp
+
+      - name: Run make check for lib/cpp
+        run: make -j$(nproc) -C lib/cpp check
+
+      - name: Run make check for test/cpp
+        run: make -j$(nproc) -C test/cpp check
+
+      - name: Run make precross for cpp test
+        run: make -j$(nproc) -C test/cpp precross
+
+      - name: Upload cpp precross artifacts
+        uses: actions/upload-artifact@v4
+        with:
+          name: cpp-precross
+          if-no-files-found: error
+          include-hidden-files: true
+          path: |
+            test/cpp/TestClient
+            test/cpp/TestServer
+            test/cpp/.libs/TestClient
+            test/cpp/.libs/TestServer
+            lib/cpp/.libs/*.so
+          retention-days: 3
+
+      - name: Upload log files from failed test runs
+        uses: actions/upload-artifact@v4
+        if: failure()
+        with:
+          name: lib-cpp-test-log
+          path: lib/cpp/test/*.xml
+          retention-days: 3
+
   cross-test:
     needs:
       - lib-java-kotlin
@@ -559,13 +624,14 @@
       - lib-rust
       - lib-go
       - lib-python
+      - lib-cpp
     runs-on: ubuntu-24.04
     strategy:
       matrix:
         # swift is currently broken and no maintainers around -> see THRIFT-5864
-        server_lang: ['java', 'kotlin', 'go', 'rs']   # ['java', 'kotlin', 'go', 'rs', 'swift']
+        server_lang: ['java', 'kotlin', 'go', 'rs', 'cpp']   # ['java', 'kotlin', 'go', 'rs', 'swift']
         # we always use comma join as many client langs as possible, to reduce the number of jobs
-        client_lang: ['java,kotlin', 'go,rs']    # ['java,kotlin', 'go,rs', 'swift']
+        client_lang: ['java,kotlin', 'go,rs,cpp']    # ['java,kotlin', 'go,rs', 'swift']
       fail-fast: false
     steps:
       - uses: actions/checkout@v4
@@ -584,7 +650,11 @@
       - name: Install openssl and certificates (for SSL tests)
         run: |
           sudo apt-get update -yq
-          sudo apt-get install -y --no-install-recommends openssl ca-certificates
+          sudo apt-get install -y --no-install-recommends \
+            openssl \
+            ca-certificates \
+            libboost-all-dev \
+            libevent-dev
 
       - name: Download java precross artifacts
         uses: actions/download-artifact@v4
@@ -617,6 +687,12 @@
           name: go-precross
           path: test/go/bin
 
+      - name: Download cpp precross artifacts
+        uses: actions/download-artifact@v4
+        with:
+          name: cpp-precross
+          path: .
+
       - name: Set back executable flags
         run: |
           chmod a+x lib/java/build/run*
@@ -625,6 +701,9 @@
           # THRIFT-5864  chmod a+x test/swift/CrossTests/.build/x86_64-unknown-linux-gnu/debug/*
           chmod a+x test/rs/bin/*
           chmod a+x test/go/bin/*
+          chmod a+x test/cpp/*
+          chmod a+x test/cpp/.libs/*
+          chmod a+x lib/cpp/.libs/*.so
 
       - name: Create tmp domain socket folder
         run: mkdir /tmp/v0.16
diff --git a/lib/cpp/src/thrift/protocol/THeaderProtocol.cpp b/lib/cpp/src/thrift/protocol/THeaderProtocol.cpp
index 6242e30..77d676a 100644
--- a/lib/cpp/src/thrift/protocol/THeaderProtocol.cpp
+++ b/lib/cpp/src/thrift/protocol/THeaderProtocol.cpp
@@ -146,6 +146,10 @@
   return proto_->writeBinary(str);
 }
 
+uint32_t THeaderProtocol::writeUUID(const TUuid& uuid) {
+  return proto_->writeUUID(uuid);
+}
+
 /**
  * Reading functions
  */
@@ -246,6 +250,10 @@
 uint32_t THeaderProtocol::readBinary(std::string& binary) {
   return proto_->readBinary(binary);
 }
+
+uint32_t THeaderProtocol::readUUID(TUuid& uuid) {
+  return proto_->readUUID(uuid);
+}
 }
 }
 } // apache::thrift::protocol
diff --git a/lib/cpp/src/thrift/protocol/THeaderProtocol.h b/lib/cpp/src/thrift/protocol/THeaderProtocol.h
index 0d50185..99986b9 100644
--- a/lib/cpp/src/thrift/protocol/THeaderProtocol.h
+++ b/lib/cpp/src/thrift/protocol/THeaderProtocol.h
@@ -135,6 +135,8 @@
 
   uint32_t writeBinary(const std::string& str);
 
+  uint32_t writeUUID(const TUuid& uuid);
+
   /**
    * Reading functions
    */
@@ -181,6 +183,8 @@
 
   uint32_t readBinary(std::string& binary);
 
+  uint32_t readUUID(TUuid& uuid);
+
 protected:
   std::shared_ptr<THeaderTransport> trans_;
 
diff --git a/lib/cpp/src/thrift/protocol/TProtocolTap.h b/lib/cpp/src/thrift/protocol/TProtocolTap.h
index d000ba6..8ceed72 100644
--- a/lib/cpp/src/thrift/protocol/TProtocolTap.h
+++ b/lib/cpp/src/thrift/protocol/TProtocolTap.h
@@ -166,6 +166,12 @@
     return rv;
   }
 
+  uint32_t readUUID(TUuid& uuid) {
+    uint32_t rv = source_->readUUID(uuid);
+    sink_->writeUUid(uuid);
+    return rv;
+  }
+
 private:
   std::shared_ptr<TProtocol> source_;
   std::shared_ptr<TProtocol> sink_;
diff --git a/test/cpp/Makefile.am b/test/cpp/Makefile.am
index 595f7a4..11bf873 100644
--- a/test/cpp/Makefile.am
+++ b/test/cpp/Makefile.am
@@ -97,7 +97,7 @@
 #
 # Common thrift code generation rules
 #
-gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/SecondService.cpp gen-cpp/SecondService.h gen-cpp/SecondService.tcc: $(top_srcdir)/test/v0.16/ThriftTest.thrift $(THRIFT)
+gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/SecondService.cpp gen-cpp/SecondService.h gen-cpp/SecondService.tcc: $(top_srcdir)/test/ThriftTest.thrift $(THRIFT)
 	$(THRIFT) --gen cpp:templates,cob_style -r $<
 
 gen-cpp/Service.cpp: $(top_srcdir)/test/StressTest.thrift $(THRIFT)
diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp
index 64193c6..41f5007 100644
--- a/test/cpp/src/TestClient.cpp
+++ b/test/cpp/src/TestClient.cpp
@@ -22,6 +22,7 @@
 #include <ios>
 #include <iostream>
 #include <sstream>
+#include <fstream>
 #include <thrift/protocol/TBinaryProtocol.h>
 #include <thrift/protocol/TCompactProtocol.h>
 #include <thrift/protocol/THeaderProtocol.h>
@@ -321,9 +322,15 @@
   std::shared_ptr<TProtocol> protocol2;  // SecondService for multiplexed
 
   if (ssl) {
-    cout << "Client Certificate File: " << certPath << '\n';
-    cout << "Client Key         File: " << keyPath << '\n';
-    cout << "CA                 File: " << caPath << '\n';
+    auto fileExists = [](const std::string& path) {
+      std::ifstream f(path.c_str());
+      return f.good();
+    };
+
+    cout << "Client Path            : " << testDir  << '\n';
+    cout << "Client Certificate File: " << certPath << " (" << std::boolalpha << fileExists(certPath) << ")"<< '\n';
+    cout << "Client Key         File: " << keyPath  << " (" << std::boolalpha << fileExists(keyPath) << ")"<< '\n';
+    cout << "CA                 File: " << caPath   << " (" << std::boolalpha << fileExists(caPath) << ")"<< '\n';
 
     factory = std::shared_ptr<TSSLSocketFactory>(new TSSLSocketFactory());
     factory->ciphers("ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
diff --git a/test/known_failures_Linux.json b/test/known_failures_Linux.json
index f4543e9..3f5e605 100644
--- a/test/known_failures_Linux.json
+++ b/test/known_failures_Linux.json
@@ -1,4 +1,12 @@
 [
+  "c_glib-netstd_binary_buffered-ip",
+  "c_glib-netstd_binary_framed-ip",
+  "c_glib-netstd_compact_buffered-ip",
+  "c_glib-netstd_compact_framed-ip",
+  "c_glib-netstd_multi-binary_buffered-ip",
+  "c_glib-netstd_multi-binary_framed-ip",
+  "c_glib-netstd_multic-compact_buffered-ip",
+  "c_glib-netstd_multic-compact_framed-ip",
   "cl-c_glib_binary_buffered-ip",
   "cl-c_glib_binary_framed-ip",
   "cl-c_glib_multi-binary_buffered-ip",
@@ -34,6 +42,9 @@
   "cpp-cpp_multi-binary_websocket-domain",
   "cpp-cpp_multi-binary_websocket-ip",
   "cpp-cpp_multi-binary_websocket-ip-ssl",
+  "cpp-cpp_multi_websocket-domain",
+  "cpp-cpp_multi_websocket-ip",
+  "cpp-cpp_multi_websocket-ip-ssl",
   "cpp-cpp_multic-compact_websocket-domain",
   "cpp-cpp_multic-compact_websocket-ip",
   "cpp-cpp_multic-compact_websocket-ip-ssl",
@@ -52,9 +63,6 @@
   "cpp-cpp_multij_websocket-domain",
   "cpp-cpp_multij_websocket-ip",
   "cpp-cpp_multij_websocket-ip-ssl",
-  "cpp-cpp_multi_websocket-domain",
-  "cpp-cpp_multi_websocket-ip",
-  "cpp-cpp_multi_websocket-ip-ssl",
   "cpp-dart_binary_http-ip",
   "cpp-dart_compact_http-ip",
   "cpp-dart_json_http-ip",
@@ -77,24 +85,60 @@
   "cpp-go_multih-header_http-ip-ssl",
   "cpp-go_multij-json_http-ip",
   "cpp-go_multij-json_http-ip-ssl",
+  "cpp-java_binary_buffered-ip-ssl",
+  "cpp-java_binary_framed-fastframed-ip-ssl",
+  "cpp-java_binary_framed-ip-ssl",
   "cpp-java_binary_http-ip",
   "cpp-java_binary_http-ip-ssl",
+  "cpp-java_binary_zlib-ip-ssl",
+  "cpp-java_compact_buffered-ip-ssl",
+  "cpp-java_compact_framed-fastframed-ip-ssl",
+  "cpp-java_compact_framed-ip-ssl",
   "cpp-java_compact_http-ip",
   "cpp-java_compact_http-ip-ssl",
+  "cpp-java_compact_zlib-ip-ssl",
+  "cpp-java_json_buffered-ip-ssl",
+  "cpp-java_json_framed-fastframed-ip-ssl",
+  "cpp-java_json_framed-ip-ssl",
   "cpp-java_json_http-ip",
   "cpp-java_json_http-ip-ssl",
+  "cpp-java_json_zlib-ip-ssl",
+  "cpp-java_multi-binary_buffered-ip-ssl",
+  "cpp-java_multi-binary_framed-fastframed-ip-ssl",
+  "cpp-java_multi-binary_framed-ip-ssl",
   "cpp-java_multi-binary_http-ip",
   "cpp-java_multi-binary_http-ip-ssl",
-  "cpp-java_multic-compact_http-ip",
-  "cpp-java_multic-compact_http-ip-ssl",
-  "cpp-java_multic_http-ip",
-  "cpp-java_multic_http-ip-ssl",
-  "cpp-java_multij-json_http-ip",
-  "cpp-java_multij-json_http-ip-ssl",
-  "cpp-java_multij_http-ip",
-  "cpp-java_multij_http-ip-ssl",
+  "cpp-java_multi-binary_zlib-ip-ssl",
+  "cpp-java_multi_buffered-ip-ssl",
+  "cpp-java_multi_framed-fastframed-ip-ssl",
+  "cpp-java_multi_framed-ip-ssl",
   "cpp-java_multi_http-ip",
   "cpp-java_multi_http-ip-ssl",
+  "cpp-java_multi_zlib-ip-ssl",
+  "cpp-java_multic-compact_buffered-ip-ssl",
+  "cpp-java_multic-compact_framed-fastframed-ip-ssl",
+  "cpp-java_multic-compact_framed-ip-ssl",
+  "cpp-java_multic-compact_http-ip",
+  "cpp-java_multic-compact_http-ip-ssl",
+  "cpp-java_multic-compact_zlib-ip-ssl",
+  "cpp-java_multic_buffered-ip-ssl",
+  "cpp-java_multic_framed-fastframed-ip-ssl",
+  "cpp-java_multic_framed-ip-ssl",
+  "cpp-java_multic_http-ip",
+  "cpp-java_multic_http-ip-ssl",
+  "cpp-java_multic_zlib-ip-ssl",
+  "cpp-java_multij-json_buffered-ip-ssl",
+  "cpp-java_multij-json_framed-fastframed-ip-ssl",
+  "cpp-java_multij-json_framed-ip-ssl",
+  "cpp-java_multij-json_http-ip",
+  "cpp-java_multij-json_http-ip-ssl",
+  "cpp-java_multij-json_zlib-ip-ssl",
+  "cpp-java_multij_buffered-ip-ssl",
+  "cpp-java_multij_framed-fastframed-ip-ssl",
+  "cpp-java_multij_framed-ip-ssl",
+  "cpp-java_multij_http-ip",
+  "cpp-java_multij_http-ip-ssl",
+  "cpp-java_multij_zlib-ip-ssl",
   "cpp-netstd_binary_buffered-ip",
   "cpp-netstd_binary_buffered-ip-ssl",
   "cpp-netstd_binary_framed-ip",
@@ -190,6 +234,9 @@
   "cpp-py3_multi-multia_http-domain",
   "cpp-py3_multi-multia_http-ip",
   "cpp-py3_multi-multia_http-ip-ssl",
+  "cpp-py3_multi_http-domain",
+  "cpp-py3_multi_http-ip",
+  "cpp-py3_multi_http-ip-ssl",
   "cpp-py3_multic-accelc_http-domain",
   "cpp-py3_multic-accelc_http-ip",
   "cpp-py3_multic-accelc_http-ip-ssl",
@@ -214,9 +261,6 @@
   "cpp-py3_multij_http-domain",
   "cpp-py3_multij_http-ip",
   "cpp-py3_multij_http-ip-ssl",
-  "cpp-py3_multi_http-domain",
-  "cpp-py3_multi_http-ip",
-  "cpp-py3_multi_http-ip-ssl",
   "cpp-py_binary-accel_http-domain",
   "cpp-py_binary-accel_http-ip",
   "cpp-py_binary-accel_http-ip-ssl",
@@ -244,6 +288,9 @@
   "cpp-py_multi-multia_http-domain",
   "cpp-py_multi-multia_http-ip",
   "cpp-py_multi-multia_http-ip-ssl",
+  "cpp-py_multi_http-domain",
+  "cpp-py_multi_http-ip",
+  "cpp-py_multi_http-ip-ssl",
   "cpp-py_multic-accelc_http-domain",
   "cpp-py_multic-accelc_http-ip",
   "cpp-py_multic-accelc_http-ip-ssl",
@@ -268,17 +315,6 @@
   "cpp-py_multij_http-domain",
   "cpp-py_multij_http-ip",
   "cpp-py_multij_http-ip-ssl",
-  "cpp-py_multi_http-domain",
-  "cpp-py_multi_http-ip",
-  "cpp-py_multi_http-ip-ssl",
-  "c_glib-netstd_binary_buffered-ip",
-  "c_glib-netstd_binary_framed-ip",
-  "c_glib-netstd_compact_buffered-ip",
-  "c_glib-netstd_compact_framed-ip",
-  "c_glib-netstd_multi-binary_buffered-ip",
-  "c_glib-netstd_multi-binary_framed-ip",
-  "c_glib-netstd_multic-compact_buffered-ip",
-  "c_glib-netstd_multic-compact_framed-ip",
   "d-cl_binary_buffered-ip",
   "d-cl_binary_framed-ip",
   "d-cpp_binary_buffered-ip",
@@ -305,12 +341,12 @@
   "d-cpp_json_http-ip-ssl",
   "d-cpp_json_zlib-ip",
   "d-cpp_json_zlib-ip-ssl",
-  "d-dart_binary_http-ip",
-  "d-dart_compact_http-ip",
-  "d-dart_json_http-ip",
   "d-d_binary_http-ip",
   "d-d_compact_http-ip",
   "d-d_json_http-ip",
+  "d-dart_binary_http-ip",
+  "d-dart_compact_http-ip",
+  "d-dart_json_http-ip",
   "d-go_binary_http-ip",
   "d-go_binary_http-ip-ssl",
   "d-go_compact_http-ip",
@@ -468,15 +504,15 @@
   "go-cpp_header_http-ip-ssl",
   "go-cpp_json_http-ip",
   "go-cpp_json_http-ip-ssl",
-  "go-dart_binary_http-ip",
-  "go-dart_compact_http-ip",
-  "go-dart_json_http-ip",
   "go-d_binary_http-ip",
   "go-d_binary_http-ip-ssl",
   "go-d_compact_http-ip",
   "go-d_compact_http-ip-ssl",
   "go-d_json_http-ip",
   "go-d_json_http-ip-ssl",
+  "go-dart_binary_http-ip",
+  "go-dart_compact_http-ip",
+  "go-dart_json_http-ip",
   "go-java_binary_http-ip",
   "go-java_binary_http-ip-ssl",
   "go-java_compact_http-ip",
@@ -509,6 +545,42 @@
   "hs-php_binary-accel_framed-ip",
   "hs-php_json_buffered-ip",
   "hs-php_json_framed-ip",
+  "java-cpp_binary_buffered-ip-ssl",
+  "java-cpp_binary_fastframed-framed-ip-ssl",
+  "java-cpp_binary_framed-ip-ssl",
+  "java-cpp_binary_zlib-ip-ssl",
+  "java-cpp_compact_buffered-ip-ssl",
+  "java-cpp_compact_fastframed-framed-ip-ssl",
+  "java-cpp_compact_framed-ip-ssl",
+  "java-cpp_compact_zlib-ip-ssl",
+  "java-cpp_json_buffered-ip-ssl",
+  "java-cpp_json_fastframed-framed-ip-ssl",
+  "java-cpp_json_framed-ip-ssl",
+  "java-cpp_json_zlib-ip-ssl",
+  "java-cpp_multi-binary_buffered-ip-ssl",
+  "java-cpp_multi-binary_fastframed-framed-ip-ssl",
+  "java-cpp_multi-binary_framed-ip-ssl",
+  "java-cpp_multi-binary_zlib-ip-ssl",
+  "java-cpp_multi_buffered-ip-ssl",
+  "java-cpp_multi_fastframed-framed-ip-ssl",
+  "java-cpp_multi_framed-ip-ssl",
+  "java-cpp_multi_zlib-ip-ssl",
+  "java-cpp_multic-compact_buffered-ip-ssl",
+  "java-cpp_multic-compact_fastframed-framed-ip-ssl",
+  "java-cpp_multic-compact_framed-ip-ssl",
+  "java-cpp_multic-compact_zlib-ip-ssl",
+  "java-cpp_multic_buffered-ip-ssl",
+  "java-cpp_multic_fastframed-framed-ip-ssl",
+  "java-cpp_multic_framed-ip-ssl",
+  "java-cpp_multic_zlib-ip-ssl",
+  "java-cpp_multij-json_buffered-ip-ssl",
+  "java-cpp_multij-json_fastframed-framed-ip-ssl",
+  "java-cpp_multij-json_framed-ip-ssl",
+  "java-cpp_multij-json_zlib-ip-ssl",
+  "java-cpp_multij_buffered-ip-ssl",
+  "java-cpp_multij_fastframed-framed-ip-ssl",
+  "java-cpp_multij_framed-ip-ssl",
+  "java-cpp_multij_zlib-ip-ssl",
   "java-erl_binary_buffered-ip-ssl",
   "java-erl_binary_fastframed-framed-ip-ssl",
   "java-erl_binary_framed-ip-ssl",
@@ -572,6 +644,14 @@
   "kotlin-netstd_binary_framed-ip",
   "kotlin-netstd_compact_framed-ip",
   "kotlin-netstd_json_framed-ip",
+  "netstd-c_glib_binary_buffered-ip",
+  "netstd-c_glib_binary_buffered-ip-ssl",
+  "netstd-c_glib_binary_framed-ip",
+  "netstd-c_glib_binary_framed-ip-ssl",
+  "netstd-c_glib_compact_buffered-ip",
+  "netstd-c_glib_compact_buffered-ip-ssl",
+  "netstd-c_glib_compact_framed-ip",
+  "netstd-c_glib_compact_framed-ip-ssl",
   "netstd-cl_binary_buffered-ip",
   "netstd-cl_binary_framed-ip",
   "netstd-cpp_binary_buffered-ip",
@@ -586,20 +666,6 @@
   "netstd-cpp_json_buffered-ip-ssl",
   "netstd-cpp_json_framed-ip",
   "netstd-cpp_json_framed-ip-ssl",
-  "netstd-c_glib_binary_buffered-ip",
-  "netstd-c_glib_binary_buffered-ip-ssl",
-  "netstd-c_glib_binary_framed-ip",
-  "netstd-c_glib_binary_framed-ip-ssl",
-  "netstd-c_glib_compact_buffered-ip",
-  "netstd-c_glib_compact_buffered-ip-ssl",
-  "netstd-c_glib_compact_framed-ip",
-  "netstd-c_glib_compact_framed-ip-ssl",
-  "netstd-dart_binary_buffered-ip",
-  "netstd-dart_binary_framed-ip",
-  "netstd-dart_compact_buffered-ip",
-  "netstd-dart_compact_framed-ip",
-  "netstd-dart_json_buffered-ip",
-  "netstd-dart_json_framed-ip",
   "netstd-d_binary_buffered-ip",
   "netstd-d_binary_buffered-ip-ssl",
   "netstd-d_binary_framed-ip",
@@ -612,6 +678,12 @@
   "netstd-d_json_buffered-ip-ssl",
   "netstd-d_json_framed-ip",
   "netstd-d_json_framed-ip-ssl",
+  "netstd-dart_binary_buffered-ip",
+  "netstd-dart_binary_framed-ip",
+  "netstd-dart_compact_buffered-ip",
+  "netstd-dart_compact_framed-ip",
+  "netstd-dart_json_buffered-ip",
+  "netstd-dart_json_framed-ip",
   "netstd-erl_binary_buffered-ip",
   "netstd-erl_binary_buffered-ip-ssl",
   "netstd-erl_binary_framed-ip",
@@ -787,15 +859,15 @@
   "nodejs-cpp_json_websocket-domain",
   "nodejs-cpp_json_websocket-ip",
   "nodejs-cpp_json_websocket-ip-ssl",
-  "nodejs-dart_binary_http-ip",
-  "nodejs-dart_compact_http-ip",
-  "nodejs-dart_json_http-ip",
   "nodejs-d_binary_http-ip",
   "nodejs-d_binary_http-ip-ssl",
   "nodejs-d_compact_http-ip",
   "nodejs-d_compact_http-ip-ssl",
   "nodejs-d_json_http-ip",
   "nodejs-d_json_http-ip-ssl",
+  "nodejs-dart_binary_http-ip",
+  "nodejs-dart_compact_http-ip",
+  "nodejs-dart_json_http-ip",
   "nodejs-go_binary_http-ip",
   "nodejs-go_binary_http-ip-ssl",
   "nodejs-go_compact_http-ip",
@@ -911,6 +983,9 @@
   "py-cpp_multi-binary_http-domain",
   "py-cpp_multi-binary_http-ip",
   "py-cpp_multi-binary_http-ip-ssl",
+  "py-cpp_multi_http-domain",
+  "py-cpp_multi_http-ip",
+  "py-cpp_multi_http-ip-ssl",
   "py-cpp_multia-binary_http-domain",
   "py-cpp_multia-binary_http-ip",
   "py-cpp_multia-binary_http-ip-ssl",
@@ -953,14 +1028,6 @@
   "py-cpp_multij_http-domain",
   "py-cpp_multij_http-ip",
   "py-cpp_multij_http-ip-ssl",
-  "py-cpp_multi_http-domain",
-  "py-cpp_multi_http-ip",
-  "py-cpp_multi_http-ip-ssl",
-  "py-dart_accel-binary_http-ip",
-  "py-dart_accelc-compact_http-ip",
-  "py-dart_binary_http-ip",
-  "py-dart_compact_http-ip",
-  "py-dart_json_http-ip",
   "py-d_accel-binary_http-ip",
   "py-d_accel-binary_http-ip-ssl",
   "py-d_accelc-compact_http-ip",
@@ -971,6 +1038,11 @@
   "py-d_compact_http-ip-ssl",
   "py-d_json_http-ip",
   "py-d_json_http-ip-ssl",
+  "py-dart_accel-binary_http-ip",
+  "py-dart_accelc-compact_http-ip",
+  "py-dart_binary_http-ip",
+  "py-dart_compact_http-ip",
+  "py-dart_json_http-ip",
   "py-hs_accel-binary_http-ip",
   "py-hs_accelc-compact_http-ip",
   "py-hs_binary_http-ip",
@@ -983,6 +1055,7 @@
   "py-java_compact_http-ip-ssl",
   "py-java_json_http-ip-ssl",
   "py-java_multi-binary_http-ip-ssl",
+  "py-java_multi_http-ip-ssl",
   "py-java_multia-binary_http-ip-ssl",
   "py-java_multia-multi_http-ip-ssl",
   "py-java_multiac-compact_http-ip-ssl",
@@ -991,7 +1064,6 @@
   "py-java_multic_http-ip-ssl",
   "py-java_multij-json_http-ip-ssl",
   "py-java_multij_http-ip-ssl",
-  "py-java_multi_http-ip-ssl",
   "py-lua_accel-binary_http-ip",
   "py-lua_accelc-compact_http-ip",
   "py-lua_binary_http-ip",
@@ -1029,14 +1101,14 @@
   "py-php_binary-accel_framed-ip",
   "py-php_json_buffered-ip",
   "py-php_json_framed-ip",
+  "py-rs_multi_buffered-ip",
+  "py-rs_multi_framed-ip",
   "py-rs_multia-multi_buffered-ip",
   "py-rs_multia-multi_framed-ip",
   "py-rs_multiac-multic_buffered-ip",
   "py-rs_multiac-multic_framed-ip",
   "py-rs_multic_buffered-ip",
   "py-rs_multic_framed-ip",
-  "py-rs_multi_buffered-ip",
-  "py-rs_multi_framed-ip",
   "py3-cpp_accel-binary_http-domain",
   "py3-cpp_accel-binary_http-ip",
   "py3-cpp_accel-binary_http-ip-ssl",
@@ -1064,6 +1136,9 @@
   "py3-cpp_multi-binary_http-domain",
   "py3-cpp_multi-binary_http-ip",
   "py3-cpp_multi-binary_http-ip-ssl",
+  "py3-cpp_multi_http-domain",
+  "py3-cpp_multi_http-ip",
+  "py3-cpp_multi_http-ip-ssl",
   "py3-cpp_multia-binary_http-domain",
   "py3-cpp_multia-binary_http-ip",
   "py3-cpp_multia-binary_http-ip-ssl",
@@ -1106,14 +1181,6 @@
   "py3-cpp_multij_http-domain",
   "py3-cpp_multij_http-ip",
   "py3-cpp_multij_http-ip-ssl",
-  "py3-cpp_multi_http-domain",
-  "py3-cpp_multi_http-ip",
-  "py3-cpp_multi_http-ip-ssl",
-  "py3-dart_accel-binary_http-ip",
-  "py3-dart_accelc-compact_http-ip",
-  "py3-dart_binary_http-ip",
-  "py3-dart_compact_http-ip",
-  "py3-dart_json_http-ip",
   "py3-d_accel-binary_http-ip",
   "py3-d_accel-binary_http-ip-ssl",
   "py3-d_accelc-compact_http-ip",
@@ -1124,6 +1191,11 @@
   "py3-d_compact_http-ip-ssl",
   "py3-d_json_http-ip",
   "py3-d_json_http-ip-ssl",
+  "py3-dart_accel-binary_http-ip",
+  "py3-dart_accelc-compact_http-ip",
+  "py3-dart_binary_http-ip",
+  "py3-dart_compact_http-ip",
+  "py3-dart_json_http-ip",
   "py3-hs_accel-binary_http-ip",
   "py3-hs_accelc-compact_http-ip",
   "py3-hs_binary_http-ip",
@@ -1136,6 +1208,7 @@
   "py3-java_compact_http-ip-ssl",
   "py3-java_json_http-ip-ssl",
   "py3-java_multi-binary_http-ip-ssl",
+  "py3-java_multi_http-ip-ssl",
   "py3-java_multia-binary_http-ip-ssl",
   "py3-java_multia-multi_http-ip-ssl",
   "py3-java_multiac-compact_http-ip-ssl",
@@ -1144,7 +1217,6 @@
   "py3-java_multic_http-ip-ssl",
   "py3-java_multij-json_http-ip-ssl",
   "py3-java_multij_http-ip-ssl",
-  "py3-java_multi_http-ip-ssl",
   "py3-lua_accel-binary_http-ip",
   "py3-lua_accelc-compact_http-ip",
   "py3-lua_binary_http-ip",
@@ -1207,7 +1279,6 @@
   "rs-netstd_binary_buffered-ip",
   "rs-netstd_binary_framed-ip",
   "rs-netstd_compact_buffered-ip",
-  "rs-netstd_compact_buffered-ip",
   "rs-netstd_compact_framed-ip",
   "rs-netstd_multi-binary_buffered-ip",
   "rs-netstd_multi-binary_framed-ip",