From 8d7a614b2b6b5258659d94e474e9528729504e7e Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Tue, 9 Apr 2024 08:00:41 -0700 Subject: [PATCH 01/21] ignore vs specific files --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 07eae6df..671fbb1c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ ignore .cache/ src/test/ archlinux-dist/ + +# vs specific files +.vs/ +out/ From 277bf849a4b023b6fc5d170e0de4f161ac71a357 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Tue, 9 Apr 2024 08:31:43 -0700 Subject: [PATCH 02/21] whatever is this ima just switch to nvim --- CMakeLists.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 97787d5f..89d2ec01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,12 @@ option(COMPILE_GNUPLOT "Download and compile gnuplot" OFF) set(MUSICAT_CXX_STANDARD 17) set(DPP_INSTALL OFF) set(DPP_USE_EXTERNAL_JSON ON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic") + +if (MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall /W4") +elseif (UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic") +endif() set(WITH_COMPILE_GNUPLOT 0) @@ -56,6 +61,7 @@ add_executable(Shasha ${ELIZA_SOURCE_FILES} src/main.cpp) +if (UNIX) set(USOCKETS_OBJECT_FILES ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/bsd.o ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/context.o @@ -82,13 +88,16 @@ add_custom_command(OUTPUT ${USOCKETS_OBJECT_FILES} COMMAND WITH_OPENSSL=1 WITH_ZLIB=1 make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) +endif() add_custom_target(deps DEPENDS ShashaDeps) +if (UNIX) add_custom_command(OUTPUT ShashaDeps COMMAND COMPILE_GNUPLOT=${WITH_COMPILE_GNUPLOT} GNUPLOT_VERSION=${GNUPLOT_VERSION} make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) +endif() add_dependencies(Shasha deps uWebSockets) From 6cbd694664f58aa6fbcca0aac9b00dcfc4ff62b6 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Tue, 9 Apr 2024 22:48:24 +0700 Subject: [PATCH 03/21] indent --- CMakeLists.txt | 58 +++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 89d2ec01..d607aeb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,41 +62,41 @@ add_executable(Shasha src/main.cpp) if (UNIX) -set(USOCKETS_OBJECT_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/bsd.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/context.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/epoll_kqueue.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/gcd.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/libuv.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/loop.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/openssl.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/quic.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/sni_tree.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/socket.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/udp.o) - -file(GLOB_RECURSE USOCKETS_SOURCE_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/src/*.c) - -file(GLOB_RECURSE UWEBSOCKETS_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/src/*.h) - -add_custom_target(uWebSockets - DEPENDS ${USOCKETS_OBJECT_FILES}) - -add_custom_command(OUTPUT ${USOCKETS_OBJECT_FILES} - COMMAND WITH_OPENSSL=1 WITH_ZLIB=1 make - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets - DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) + set(USOCKETS_OBJECT_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/bsd.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/context.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/epoll_kqueue.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/gcd.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/libuv.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/loop.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/openssl.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/quic.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/sni_tree.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/socket.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/udp.o) + + file(GLOB_RECURSE USOCKETS_SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/src/*.c) + + file(GLOB_RECURSE UWEBSOCKETS_HEADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/src/*.h) + + add_custom_target(uWebSockets + DEPENDS ${USOCKETS_OBJECT_FILES}) + + add_custom_command(OUTPUT ${USOCKETS_OBJECT_FILES} + COMMAND WITH_OPENSSL=1 WITH_ZLIB=1 make + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets + DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) endif() add_custom_target(deps DEPENDS ShashaDeps) if (UNIX) -add_custom_command(OUTPUT ShashaDeps - COMMAND COMPILE_GNUPLOT=${WITH_COMPILE_GNUPLOT} GNUPLOT_VERSION=${GNUPLOT_VERSION} make - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) + add_custom_command(OUTPUT ShashaDeps + COMMAND COMPILE_GNUPLOT=${WITH_COMPILE_GNUPLOT} GNUPLOT_VERSION=${GNUPLOT_VERSION} make + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) endif() add_dependencies(Shasha deps uWebSockets) From daf9c8544390954b6b1a9483428d194ae73b594e Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Tue, 9 Apr 2024 23:03:34 +0700 Subject: [PATCH 04/21] MANY TODOS --- CMakeLists.txt | 59 +++++++++++++++++++++++++++++--------------------- libs/make.bat | 53 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 25 deletions(-) create mode 100644 libs/make.bat diff --git a/CMakeLists.txt b/CMakeLists.txt index d607aeb9..0859e16a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,7 +93,11 @@ endif() add_custom_target(deps DEPENDS ShashaDeps) -if (UNIX) +if (MSVC) + add_custom_command(OUTPUT ShashaDeps + COMMAND make.bat + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) +elseif (UNIX) add_custom_command(OUTPUT ShashaDeps COMMAND COMPILE_GNUPLOT=${WITH_COMPILE_GNUPLOT} GNUPLOT_VERSION=${GNUPLOT_VERSION} make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) @@ -101,36 +105,38 @@ endif() add_dependencies(Shasha deps uWebSockets) -add_custom_target(archlinux-dist-folder - COMMAND mkdir -p archlinux-dist - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - -add_custom_target(archlinux-dist - - COMMAND cp build/Shasha - build/libs/DPP/library/libdpp.so* - libs/curlpp/build/libcurlpp.so* - libs/icu/usr/local/lib/lib* - src/yt-dlp/ytdlp.py - archlinux-dist - - COMMAND cp -r libs/yt-dlp - src/yt-dlp/utils - archlinux-dist +if (UNIX) + add_custom_target(archlinux-dist-folder + COMMAND mkdir -p archlinux-dist + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS archlinux-dist-folder Shasha) + add_custom_target(archlinux-dist -if (COMPILE_GNUPLOT) - add_custom_target(archlinux-dist-cp-gnuplot + COMMAND cp build/Shasha + build/libs/DPP/library/libdpp.so* + libs/curlpp/build/libcurlpp.so* + libs/icu/usr/local/lib/lib* + src/yt-dlp/ytdlp.py + archlinux-dist - COMMAND cp libs/gnuplot-${GNUPLOT_VERSION}/build/bin/gnuplot + COMMAND cp -r libs/yt-dlp + src/yt-dlp/utils archlinux-dist WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS archlinux-dist-folder Shasha) - add_dependencies(archlinux-dist archlinux-dist-cp-gnuplot) + if (COMPILE_GNUPLOT) + add_custom_target(archlinux-dist-cp-gnuplot + + COMMAND cp libs/gnuplot-${GNUPLOT_VERSION}/build/bin/gnuplot + archlinux-dist + + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS archlinux-dist-folder Shasha) + + add_dependencies(archlinux-dist archlinux-dist-cp-gnuplot) + endif() endif() if (MUSICAT_WITH_CORO) @@ -144,8 +150,11 @@ endif() if (MUSICAT_DEBUG_SYMBOL) message("-- INFO: Will build Musicat with debug symbol") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") - # set(CMAKE_BUILD_TYPE "Debug") + if (MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Debug") + elseif (UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") + endif() endif() # Linking libraries diff --git a/libs/make.bat b/libs/make.bat new file mode 100644 index 00000000..a57676f6 --- /dev/null +++ b/libs/make.bat @@ -0,0 +1,53 @@ +ICU_TGZ = $(PWD)/icu.tgz +ICUDATA_SO = $(PWD)/icu/usr/local/lib/libicudata.so + +CURLPP_SO = $(PWD)/curlpp/build/libcurlpp.so + +LIBOGGZ_BUILD_DIR = $(PWD)/liboggz/build/ +LIBOGGZ_SO = $(LIBOGGZ_BUILD_DIR)lib/liboggz.so +LIBOGGZ_BUILD_ENVS = CC=gcc LDFLAGS=-flto + +GNUPLOT_DIR = gnuplot-$(GNUPLOT_VERSION) +GNUPLOT_BUILD_DIR = $(PWD)/$(GNUPLOT_DIR)/build/ +GNUPLOT_BIN = $(GNUPLOT_BUILD_DIR)bin/gnuplot +GNUPLOT_CONFIGURE = $(PWD)/$(GNUPLOT_DIR)/configure +GNUPLOT_TARFILE = $(GNUPLOT_DIR).tar.gz +GNUPLOT_BUILD_ENVS = CC=gcc LDFLAGS= CFLAGS= + +curl_dl = curl -L +tar_extract = tar --skip-old-files -xf + +ifeq ($(COMPILE_GNUPLOT),1) + override GNUPLOT_TARGET = gnuplot +endif + +all: icu curlpp $(GNUPLOT_TARGET) # liboggz + +icu: $(ICUDATA_SO) + +$(ICUDATA_SO): $(ICU_TGZ) + $(tar_extract) icu.tgz + +$(ICU_TGZ): + $(curl_dl) https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-Ubuntu22.04-x64.tgz -o icu.tgz + +curlpp: $(CURLPP_SO) + +$(CURLPP_SO): + cd curlpp && mkdir -p build && cd build && cmake .. && make + +liboggz: $(LIBOGGZ_SO) + +$(LIBOGGZ_SO): + cd liboggz && $(LIBOGGZ_BUILD_ENVS) ./autogen.sh && $(LIBOGGZ_BUILD_ENVS) ./configure --prefix=$(LIBOGGZ_BUILD_DIR) && $(LIBOGGZ_BUILD_ENVS) make install + +gnuplot: $(GNUPLOT_BIN) + +$(GNUPLOT_BIN): $(GNUPLOT_CONFIGURE) + cd $(GNUPLOT_DIR) && $(GNUPLOT_BUILD_ENVS) ./configure --prefix=$(GNUPLOT_BUILD_DIR) --with-texdir=$(GNUPLOT_BUILD_DIR)texmf --with-qt=no --with-x=no && $(GNUPLOT_BUILD_ENVS) make install + +$(GNUPLOT_CONFIGURE): $(GNUPLOT_TARFILE) + $(tar_extract) $(GNUPLOT_TARFILE) + +$(GNUPLOT_TARFILE): + $(curl_dl) https://zenlayer.dl.sourceforge.net/project/gnuplot/gnuplot/$(GNUPLOT_VERSION)/$(GNUPLOT_TARFILE) -o $(GNUPLOT_TARFILE) From c8aa7fbec52571c710c065b3094e67bf861eb7d2 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Tue, 9 Apr 2024 23:16:49 +0700 Subject: [PATCH 05/21] some more cmake adjustment --- CMakeLists.txt | 110 +++++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 54 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0859e16a..cb78b5d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ add_executable(Shasha ${ELIZA_SOURCE_FILES} src/main.cpp) +# uWebSockets if (UNIX) set(USOCKETS_OBJECT_FILES ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/bsd.o @@ -88,24 +89,21 @@ if (UNIX) COMMAND WITH_OPENSSL=1 WITH_ZLIB=1 make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) -endif() -add_custom_target(deps - DEPENDS ShashaDeps) + add_dependencies(Shasha deps uWebSockets) +endif() +# others if (MSVC) - add_custom_command(OUTPUT ShashaDeps - COMMAND make.bat - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) + # just link compiled libs here! elseif (UNIX) + add_custom_target(deps + DEPENDS ShashaDeps) + add_custom_command(OUTPUT ShashaDeps COMMAND COMPILE_GNUPLOT=${WITH_COMPILE_GNUPLOT} GNUPLOT_VERSION=${GNUPLOT_VERSION} make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) -endif() -add_dependencies(Shasha deps uWebSockets) - -if (UNIX) add_custom_target(archlinux-dist-folder COMMAND mkdir -p archlinux-dist WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) @@ -157,50 +155,54 @@ if (MUSICAT_DEBUG_SYMBOL) endif() endif() -# Linking libraries -target_link_libraries(Shasha - dpp - # oggz - # ogg - pq - curlpp - curl - cppcodec - icui18n - icuuc - icudata - icuio - ${USOCKETS_OBJECT_FILES} - ssl - crypto - z - pthread - # Add any other libs you want to use here - ) - -# Specify includes -target_include_directories(Shasha PRIVATE - include - # uWebSockets - libs - libs/DPP/include - libs/yt-search.h/include - libs/nekos-bestpp/include - libs/uWebSockets/uSockets/src - libs/icu/usr/local/include - libs/curlpp/include - # libs/liboggz/include - libs/jwt-cpp/include - /usr/include/postgresql - libs/ELIZA/src - # Remember to add the include directories of any other libraries too - ) - -target_link_directories(Shasha PRIVATE - libs/curlpp/build - libs/icu/usr/local/lib - # libs/liboggz/build/lib - ) +if (MSVC) + # add includes, libs +elseif (UNIX) + # Linking libraries + target_link_libraries(Shasha + dpp + # oggz + # ogg + pq + curlpp + curl + cppcodec + icui18n + icuuc + icudata + icuio + ${USOCKETS_OBJECT_FILES} + ssl + crypto + z + pthread + # Add any other libs you want to use here + ) + + # Specify includes + target_include_directories(Shasha PRIVATE + include + # uWebSockets + libs + libs/DPP/include + libs/yt-search.h/include + libs/nekos-bestpp/include + libs/uWebSockets/uSockets/src + libs/icu/usr/local/include + libs/curlpp/include + # libs/liboggz/include + libs/jwt-cpp/include + /usr/include/postgresql + libs/ELIZA/src + # Remember to add the include directories of any other libraries too + ) + + target_link_directories(Shasha PRIVATE + libs/curlpp/build + libs/icu/usr/local/lib + # libs/liboggz/build/lib + ) +endif() # Set C++ version set_target_properties(Shasha PROPERTIES From 752406d4e107129dd114296cd525a141e3eda094 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Thu, 11 Apr 2024 06:56:58 -0700 Subject: [PATCH 06/21] what in the world am i doing --- .gitignore | 1 + CMakeLists.txt | 46 +++++++++++++++++++++++++++++++++------- include/musicat/child.h | 8 ++++++- vcpkg-configuration.json | 14 ++++++++++++ vcpkg.json | 7 ++++++ 5 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 vcpkg-configuration.json create mode 100644 vcpkg.json diff --git a/.gitignore b/.gitignore index 671fbb1c..3a74d0c5 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ archlinux-dist/ # vs specific files .vs/ out/ +vcpkg_installed/ diff --git a/CMakeLists.txt b/CMakeLists.txt index cb78b5d3..13fe3939 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,12 +91,7 @@ if (UNIX) DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) add_dependencies(Shasha deps uWebSockets) -endif() -# others -if (MSVC) - # just link compiled libs here! -elseif (UNIX) add_custom_target(deps DEPENDS ShashaDeps) @@ -156,7 +151,38 @@ if (MUSICAT_DEBUG_SYMBOL) endif() if (MSVC) - # add includes, libs + # vcpkg cmake confs + + set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${CMAKE_CURRENT_SOURCE_DIR}/vcpkg_installed/x64-windows) + set(FIND_PATH_HINTS "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg_installed/x64-windows/include") + + # uwebsockets + find_path(UWEBSOCKETS_INCLUDE_DIRS "uwebsockets/App.h" + HINTS ${FIND_PATH_HINTS} + ) + target_include_directories(Shasha PRIVATE ${UWEBSOCKETS_INCLUDE_DIRS}) + + # curlpp + # find_package(unofficial-curlpp CONFIG REQUIRED) + # target_link_libraries(Shasha PRIVATE unofficial::curlpp::curlpp) + + # libpq + find_package(PostgreSQL REQUIRED) + target_link_libraries(Shasha PRIVATE PostgreSQL::PostgreSQL) + + # submodules + target_include_directories(Shasha PRIVATE + include + libs + libs/DPP/include + libs/yt-search.h/include + libs/nekos-bestpp/include + libs/icu/usr/local/include + libs/jwt-cpp/include + libs/ELIZA/src + # Remember to add the include directories of any other libraries too + ) + elseif (UNIX) # Linking libraries target_link_libraries(Shasha @@ -211,10 +237,14 @@ set_target_properties(Shasha PROPERTIES EXPORT_COMPILE_COMMANDS ON ) -# Add DPP as dependency +# Add submodule cmake dependency add_subdirectory(libs/DPP) add_subdirectory(libs/cppcodec) -# You can also add any other libs you want to use + +# windows build +if (MSVC) + add_subdirectory(libs/curlpp) +endif() message(WARNING "If you like this bot or wanna suggest smt, say hi in https://discord.gg/ADGcaHnRFs <3") diff --git a/include/musicat/child.h b/include/musicat/child.h index 8271b45e..95d717a2 100644 --- a/include/musicat/child.h +++ b/include/musicat/child.h @@ -1,8 +1,12 @@ #ifndef MUSICAT_CHILD_H #define MUSICAT_CHILD_H -#include #include +#ifdef _WIN32 + +#else +#include +#endif #define CMD_BUFSIZE BUFSIZ @@ -27,6 +31,7 @@ void shutdown (); // should be called by parent process std::string get_sem_key (const std::string &key); +#ifdef _SEMAPHORE_H // should be called by parent process sem_t *create_sem (const std::string &full_key); @@ -37,6 +42,7 @@ int clear_sem (sem_t *sem, const std::string &full_key); // should be called by parent process int do_sem_wait (sem_t *sem, const std::string &full_key); +#endif } // child } // musicat diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json new file mode 100644 index 00000000..c540ec73 --- /dev/null +++ b/vcpkg-configuration.json @@ -0,0 +1,14 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "000d1bda1ffa95a73e0b40334fa4103d6f4d3d48", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 00000000..78fbb750 --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,7 @@ +{ + "dependencies": [ + "curlpp", + "libpq", + "uwebsockets" + ] +} From 60bfc1145de65a7d539b089fb1f68b914c058459 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 11:20:35 +0700 Subject: [PATCH 07/21] allow disabling server --- CMakeLists.txt | 33 ++++++++++++++++------ include/musicat/server.h | 4 +++ include/musicat/server/middlewares.h | 3 +- include/musicat/server/routes.h | 2 ++ include/musicat/server/routes/get_guilds.h | 2 ++ include/musicat/server/routes/get_login.h | 2 ++ include/musicat/server/routes/get_root.h | 2 ++ include/musicat/server/routes/post_login.h | 2 ++ include/musicat/server/service_cache.h | 3 ++ include/musicat/server/states.h | 2 ++ include/musicat/server/ws.h | 2 ++ include/musicat/server/ws/player.h | 2 ++ include/musicat/server/ws/player_events.h | 2 ++ src/musicat/events/on_guild_create.cpp | 2 ++ src/musicat/events/on_guild_delete.cpp | 2 ++ src/musicat/server.cpp | 26 +++++++++++++++++ src/musicat/server/middlewares.cpp | 2 ++ src/musicat/server/routes/get_guilds.cpp | 2 ++ src/musicat/server/routes/post_login.cpp | 2 ++ src/musicat/server/service_cache.cpp | 2 ++ src/musicat/server/ws/player.cpp | 2 ++ vcpkg.json | 2 +- 22 files changed, 92 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 13fe3939..0ed5de92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ project(Musicat option(MUSICAT_WITH_CORO "Configure Musicat with C++20 coroutines" OFF) option(MUSICAT_DEBUG_SYMBOL "Build Musicat with debug symbol" ON) option(COMPILE_GNUPLOT "Download and compile gnuplot" OFF) +option(MUSICAT_NO_SERVER "Disable Musicat server" OFF) set(MUSICAT_CXX_STANDARD 17) set(DPP_INSTALL OFF) @@ -16,6 +17,9 @@ set(DPP_USE_EXTERNAL_JSON ON) if (MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall /W4") + + # disable server on windows + set(MUSICAT_NO_SERVER ON) elseif (UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic") endif() @@ -41,23 +45,34 @@ file(GLOB_RECURSE MUSICAT_SOURCE_FILES file(GLOB_RECURSE ELIZA_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/libs/ELIZA/src/eliza.cpp) +list(APPEND MUSICAT_HEADER_FILES + "include/nlohmann/json.hpp") + +if (MUSICAT_NO_SERVER) + message("-- INFO: Musicat uWebSockets server disabled") + add_compile_definitions(MUSICAT_NO_SERVER) +else() + list(APPEND MUSICAT_HEADER_FILES + "libs/uWebSockets/uSockets/src/libusockets.h" + "libs/uWebSockets/uSockets/src/quic.h") +endif() + +list(APPEND MUSICAT_SOURCE_FILES + "libs/yt-search.h/src/yt-search/encode.cpp" + "libs/yt-search.h/src/yt-search/yt-playlist.cpp" + "libs/yt-search.h/src/yt-search/yt-search.cpp" + "libs/yt-search.h/src/yt-search/yt-track-info.cpp" + "libs/nekos-bestpp/src/nekos-best++.cpp") + # Create an executable add_executable(Shasha # include files ${MUSICAT_HEADER_FILES} - include/nlohmann/json.hpp - libs/uWebSockets/uSockets/src/libusockets.h - libs/uWebSockets/uSockets/src/quic.h # ${ELIZA_HEADER_FILES} # !TODO: include/uWebSockets/files # impl files ${MUSICAT_SOURCE_FILES} - libs/yt-search.h/src/yt-search/encode.cpp - libs/yt-search.h/src/yt-search/yt-playlist.cpp - libs/yt-search.h/src/yt-search/yt-search.cpp - libs/yt-search.h/src/yt-search/yt-track-info.cpp - libs/nekos-bestpp/src/nekos-best++.cpp ${ELIZA_SOURCE_FILES} src/main.cpp) @@ -168,7 +183,7 @@ if (MSVC) # libpq find_package(PostgreSQL REQUIRED) - target_link_libraries(Shasha PRIVATE PostgreSQL::PostgreSQL) + target_link_libraries(Shasha PRIVATE PostgreSQL::PostgreSQL) # submodules target_include_directories(Shasha PRIVATE diff --git a/include/musicat/server.h b/include/musicat/server.h index cd077bd5..28fd5bc9 100644 --- a/include/musicat/server.h +++ b/include/musicat/server.h @@ -8,9 +8,12 @@ #define SERVER_WITH_SSL false #define BOT_AVATAR_SIZE 480 +#define MUSICAT_NO_SERVER + namespace musicat::server { +#ifndef MUSICAT_NO_SERVER #if SERVER_WITH_SSL == true using APIApp = uWS::SSLApp; #else @@ -19,6 +22,7 @@ using APIApp = uWS::App; using APIResponse = uWS::HttpResponse; using APIRequest = uWS::HttpRequest; +#endif inline constexpr const struct { diff --git a/include/musicat/server/middlewares.h b/include/musicat/server/middlewares.h index 5bdcbd85..55b28b44 100644 --- a/include/musicat/server/middlewares.h +++ b/include/musicat/server/middlewares.h @@ -7,6 +7,7 @@ namespace musicat::server::middlewares { +#ifndef MUSICAT_NO_SERVER using header_v_t = std::vector >; void load_cors_enabled_origin (); @@ -30,7 +31,7 @@ process_curlpp_response_t (const services::curlpp_response_t &resp, const char *callee); void set_guild_is_mutual (const std::string &user_id, nlohmann::json &guild); - +#endif } // musicat::server::middlewares #endif // MUSICAT_SERVER_MIDDLEWARES_H diff --git a/include/musicat/server/routes.h b/include/musicat/server/routes.h index 84894c0e..4ca8756e 100644 --- a/include/musicat/server/routes.h +++ b/include/musicat/server/routes.h @@ -6,6 +6,7 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER enum route_method_e { ROUTE_METHOD_NULL, @@ -23,6 +24,7 @@ struct route_handler_t }; void define_routes (APIApp *app); +#endif } // musicat::server::ws diff --git a/include/musicat/server/routes/get_guilds.h b/include/musicat/server/routes/get_guilds.h index ed516e99..33f03d42 100644 --- a/include/musicat/server/routes/get_guilds.h +++ b/include/musicat/server/routes/get_guilds.h @@ -6,7 +6,9 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void get_guilds (APIResponse *res, APIRequest *req); +#endif } // musicat::server::routes diff --git a/include/musicat/server/routes/get_login.h b/include/musicat/server/routes/get_login.h index 8b9fa3a4..9c56ca87 100644 --- a/include/musicat/server/routes/get_login.h +++ b/include/musicat/server/routes/get_login.h @@ -6,7 +6,9 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void get_login (APIResponse *res, APIRequest *req); +#endif } // musicat::server::routes diff --git a/include/musicat/server/routes/get_root.h b/include/musicat/server/routes/get_root.h index 679a5558..6d997b8c 100644 --- a/include/musicat/server/routes/get_root.h +++ b/include/musicat/server/routes/get_root.h @@ -6,7 +6,9 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void get_root (APIResponse *res, APIRequest *req); +#endif } // musicat::server::routes diff --git a/include/musicat/server/routes/post_login.h b/include/musicat/server/routes/post_login.h index a9cecc47..57919d64 100644 --- a/include/musicat/server/routes/post_login.h +++ b/include/musicat/server/routes/post_login.h @@ -6,7 +6,9 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void post_login (APIResponse *res, APIRequest *req); +#endif } // musicat::server::routes diff --git a/include/musicat/server/service_cache.h b/include/musicat/server/service_cache.h index d5cb821b..f2bb3be1 100644 --- a/include/musicat/server/service_cache.h +++ b/include/musicat/server/service_cache.h @@ -1,6 +1,7 @@ #ifndef MUSICAT_SERVER_SERVICE_CACHE_H #define MUSICAT_SERVER_SERVICE_CACHE_H +#include "musicat/server.h" #include "nlohmann/json.hpp" #include #include @@ -8,6 +9,7 @@ namespace musicat::server::service_cache { +#ifndef MUSICAT_NO_SERVER /* extern std::mutex cache_m; // EXTERN_VARIABLE */ void set (const std::string &key, const nlohmann::json &value); @@ -33,6 +35,7 @@ void set_cached_user_guilds (const std::string &user_id, void handle_guild_create (const dpp::guild_create_t &e); void handle_guild_delete (const dpp::guild_delete_t &e); +#endif } // musicat::server::service_cache diff --git a/include/musicat/server/states.h b/include/musicat/server/states.h index 6cfe6a3c..63fd16ef 100644 --- a/include/musicat/server/states.h +++ b/include/musicat/server/states.h @@ -9,6 +9,7 @@ namespace musicat::server::states { +#ifndef MUSICAT_NO_SERVER struct recv_body_t { long long ts; @@ -67,6 +68,7 @@ int remove_timer (const oauth_timer_t &t); int check_timers (); int remove_all_timers (); oauth_timer_t get_oauth_timer (const std::string &val); +#endif } // musicat::server::states diff --git a/include/musicat/server/ws.h b/include/musicat/server/ws.h index f5cfc395..668f875a 100644 --- a/include/musicat/server/ws.h +++ b/include/musicat/server/ws.h @@ -7,7 +7,9 @@ namespace musicat::server::ws { +#ifndef MUSICAT_NO_SERVER void define_ws_routes (APIApp *app); +#endif } // musicat::server::ws diff --git a/include/musicat/server/ws/player.h b/include/musicat/server/ws/player.h index 85a38135..1f875696 100644 --- a/include/musicat/server/ws/player.h +++ b/include/musicat/server/ws/player.h @@ -23,6 +23,7 @@ namespace musicat::server::ws::player { +#ifndef MUSICAT_NO_SERVER struct SocketData { dpp::snowflake server_id; @@ -53,6 +54,7 @@ nlohmann::json create_error_data (const socket_err_code_e code, // utils to create json payload nlohmann::json create (const socket_event_e event, const nlohmann::json &data); */ +#endif } // musicat::server::ws::player #endif // MUSICAT_SERVER_WS_PLAYER_H diff --git a/include/musicat/server/ws/player_events.h b/include/musicat/server/ws/player_events.h index aa720508..ec947040 100644 --- a/include/musicat/server/ws/player_events.h +++ b/include/musicat/server/ws/player_events.h @@ -7,6 +7,7 @@ namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER void upgrade (APIResponse *res, APIRequest *req, struct us_socket_context_t *sock); @@ -23,6 +24,7 @@ void pong (uws_ws_t *ws, std::string_view msg); void subscription (uws_ws_t *ws, std::string_view topic, int idk1, int idk2); void close (uws_ws_t *ws, int code, std::string_view message); +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/events/on_guild_create.cpp b/src/musicat/events/on_guild_create.cpp index 334d3d0d..65c33554 100644 --- a/src/musicat/events/on_guild_create.cpp +++ b/src/musicat/events/on_guild_create.cpp @@ -7,9 +7,11 @@ namespace musicat::events void on_guild_create (dpp::cluster *client) { +#ifndef MUSICAT_NO_SERVER client->on_guild_create ([] (const dpp::guild_create_t &e) { server::service_cache::handle_guild_create (e); }); +#endif } } // musicat::events diff --git a/src/musicat/events/on_guild_delete.cpp b/src/musicat/events/on_guild_delete.cpp index a15b6295..5663a504 100644 --- a/src/musicat/events/on_guild_delete.cpp +++ b/src/musicat/events/on_guild_delete.cpp @@ -7,9 +7,11 @@ namespace musicat::events void on_guild_delete (dpp::cluster *client) { +#ifndef MUSICAT_NO_SERVER client->on_guild_delete ([] (const dpp::guild_delete_t &e) { server::service_cache::handle_guild_delete (e); }); +#endif } } // musicat::events diff --git a/src/musicat/server.cpp b/src/musicat/server.cpp index 64ee5056..c34faf34 100644 --- a/src/musicat/server.cpp +++ b/src/musicat/server.cpp @@ -19,6 +19,7 @@ namespace musicat::server { +#ifndef MUSICAT_NO_SERVER // SSLApp would be // update accordingly using MCWsApp = uWS::WebSocket; @@ -30,6 +31,7 @@ std::atomic running = false; APIApp *_app_ptr = nullptr; uWS::Loop *_loop_ptr = nullptr; us_listen_socket_t *_listen_socket_ptr = nullptr; +#endif //////////////////////////////////////////////////////////////////////////////// @@ -176,6 +178,7 @@ _handle_res (MCWsApp *ws, const std::string &nonce, nlohmann::json &d) } * } */ +#ifndef MUSICAT_NO_SERVER /** * @brief `d` is guaranteed object */ @@ -260,16 +263,22 @@ _handle_event (MCWsApp *ws, const int64_t event, nlohmann::json &d) /* fprintf (stderr, "%s\n", resd.dump (2).c_str ()); */ /* if (emit) _emit_event (ws, event_name, resd); */ } +#endif bool get_running_state () { +#ifndef MUSICAT_NO_SERVER return running; +#else + return false; +#endif } int run () { +#ifndef MUSICAT_NO_SERVER if (running) { fprintf (stderr, "[server ERROR] Instance already running!\n"); @@ -345,11 +354,15 @@ run () _app_ptr = nullptr; return 0; +#else + return -1; +#endif } int defer (std::function cb) { +#ifndef MUSICAT_NO_SERVER if (!_app_ptr) { return 1; @@ -363,11 +376,15 @@ defer (std::function cb) _loop_ptr->defer (cb); return 0; +#else + return -1; +#endif } int publish (const std::string &topic, const std::string &message) { +#ifndef MUSICAT_NO_SERVER return defer ([topic, message] () { if (!_app_ptr) { @@ -381,11 +398,15 @@ publish (const std::string &topic, const std::string &message) _app_ptr->publish (topic, message, uWS::OpCode::BINARY); }); +#else + return -1; +#endif } int shutdown () { +#ifndef MUSICAT_NO_SERVER if (!_app_ptr) { return 1; @@ -425,13 +446,18 @@ shutdown () fprintf (stderr, "[server] Shutting down callback dispatched\n"); return 0; +#else + return -1; +#endif } void main_loop_routine () { +#ifndef MUSICAT_NO_SERVER states::check_timers (); service_cache::check_timers (); +#endif } } // musicat::server diff --git a/src/musicat/server/middlewares.cpp b/src/musicat/server/middlewares.cpp index a32d8201..048f1105 100644 --- a/src/musicat/server/middlewares.cpp +++ b/src/musicat/server/middlewares.cpp @@ -9,6 +9,7 @@ namespace musicat::server::middlewares { +#ifndef MUSICAT_NO_SERVER static std::vector _cors_enabled_origins = {}; header_v_t @@ -280,5 +281,6 @@ set_guild_is_mutual (const std::string &user_id, nlohmann::json &guild) auto i_member = g->members.find (user_id); guild["is_mutual"] = i_member != g->members.end (); } +#endif } // musicat::server::middlewares diff --git a/src/musicat/server/routes/get_guilds.cpp b/src/musicat/server/routes/get_guilds.cpp index 6ddb6f34..3bf84719 100644 --- a/src/musicat/server/routes/get_guilds.cpp +++ b/src/musicat/server/routes/get_guilds.cpp @@ -6,6 +6,7 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void set_guilds_is_mutual (const std::string &user_id, nlohmann::json &guilds) { @@ -120,5 +121,6 @@ get_guilds (APIResponse *res, APIRequest *req) middlewares::set_content_type_json (res); res->end (response::payload (r).dump ()); } +#endif } // musicat::server::routes diff --git a/src/musicat/server/routes/post_login.cpp b/src/musicat/server/routes/post_login.cpp index bb4c1238..a964fd40 100644 --- a/src/musicat/server/routes/post_login.cpp +++ b/src/musicat/server/routes/post_login.cpp @@ -9,6 +9,7 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void handle_post_login_creds ( APIResponse *res, const std::string &redirect, @@ -472,5 +473,6 @@ post_login (APIResponse *res, APIRequest *req) */ } +#endif } // musicat::server::routes diff --git a/src/musicat/server/service_cache.cpp b/src/musicat/server/service_cache.cpp index d80c9e38..83427b64 100644 --- a/src/musicat/server/service_cache.cpp +++ b/src/musicat/server/service_cache.cpp @@ -7,6 +7,7 @@ namespace musicat::server::service_cache { +#ifndef MUSICAT_NO_SERVER struct invalidate_timer_t { long long ts; @@ -220,5 +221,6 @@ handle_guild_delete (const dpp::guild_delete_t &e) i = _cache.erase (i); } } +#endif } // musicat::server::service_cache diff --git a/src/musicat/server/ws/player.cpp b/src/musicat/server/ws/player.cpp index 9b975739..e265b76c 100644 --- a/src/musicat/server/ws/player.cpp +++ b/src/musicat/server/ws/player.cpp @@ -6,6 +6,7 @@ namespace musicat::server::ws::player { +#ifndef MUSICAT_NO_SERVER uWS::TemplatedApp::WebSocketBehavior get_behavior () { @@ -55,4 +56,5 @@ create (const socket_event_e event, const nlohmann::json &data) } */ +#endif } // musicat::server::ws::player diff --git a/vcpkg.json b/vcpkg.json index 78fbb750..827366ed 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,6 +1,6 @@ { "dependencies": [ - "curlpp", + "curl", "libpq", "uwebsockets" ] From 9d00ba68e19c1308fec974853d8dd27284b98c1b Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 11:32:03 +0700 Subject: [PATCH 08/21] forgot some ifndef --- CMakeLists.txt | 6 +++++- include/musicat/server.h | 5 +++-- src/musicat/server.cpp | 3 +++ src/musicat/server/ws/player.cpp | 2 ++ src/musicat/server/ws/player/close.cpp | 4 ++++ src/musicat/server/ws/player/drain.cpp | 4 ++++ src/musicat/server/ws/player/message.cpp | 4 ++++ src/musicat/server/ws/player/open.cpp | 4 ++++ src/musicat/server/ws/player/ping.cpp | 4 ++++ src/musicat/server/ws/player/pong.cpp | 4 ++++ src/musicat/server/ws/player/subscription.cpp | 4 ++++ src/musicat/server/ws/player/upgrade.cpp | 4 ++++ 12 files changed, 45 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ed5de92..eb8249be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,7 +105,11 @@ if (UNIX) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) - add_dependencies(Shasha deps uWebSockets) + add_dependencies(Shasha deps) + + if (NOT MUSICAT_NO_SERVER) + add_dependencies(Shasha uWebSockets) + endif() add_custom_target(deps DEPENDS ShashaDeps) diff --git a/include/musicat/server.h b/include/musicat/server.h index 28fd5bc9..382ccdd6 100644 --- a/include/musicat/server.h +++ b/include/musicat/server.h @@ -3,13 +3,14 @@ #include #include + +#ifndef MUSICAT_NO_SERVER #include +#endif #define SERVER_WITH_SSL false #define BOT_AVATAR_SIZE 480 -#define MUSICAT_NO_SERVER - namespace musicat::server { diff --git a/src/musicat/server.cpp b/src/musicat/server.cpp index c34faf34..06df91fc 100644 --- a/src/musicat/server.cpp +++ b/src/musicat/server.cpp @@ -12,10 +12,13 @@ #include "yt-search/encode.h" #include #include + +#ifndef MUSICAT_NO_SERVER #include /*#include "uWebSockets/AsyncFileReader.h" #include "uWebSockets/AsyncFileStreamer.h" #include "uWebSockets/Middleware.h"*/ +#endif namespace musicat::server { diff --git a/src/musicat/server/ws/player.cpp b/src/musicat/server/ws/player.cpp index e265b76c..62460053 100644 --- a/src/musicat/server/ws/player.cpp +++ b/src/musicat/server/ws/player.cpp @@ -1,7 +1,9 @@ #include "musicat/musicat.h" #include "musicat/server.h" #include "musicat/server/ws/player_events.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player { diff --git a/src/musicat/server/ws/player/close.cpp b/src/musicat/server/ws/player/close.cpp index 42081b2c..fd5cb3a0 100644 --- a/src/musicat/server/ws/player/close.cpp +++ b/src/musicat/server/ws/player/close.cpp @@ -1,9 +1,12 @@ #include "musicat/musicat.h" #include "musicat/server/ws/player.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER void close (uws_ws_t *ws, int code, std::string_view message) @@ -18,4 +21,5 @@ close (uws_ws_t *ws, int code, std::string_view message) } } +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/server/ws/player/drain.cpp b/src/musicat/server/ws/player/drain.cpp index 9b6c62af..c05bbeca 100644 --- a/src/musicat/server/ws/player/drain.cpp +++ b/src/musicat/server/ws/player/drain.cpp @@ -1,10 +1,13 @@ #include "musicat/musicat.h" #include "musicat/server/ws/player.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER void drain (uws_ws_t *ws) { @@ -16,5 +19,6 @@ drain (uws_ws_t *ws) ws->getBufferedAmount ()); } } +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/server/ws/player/message.cpp b/src/musicat/server/ws/player/message.cpp index 9695319f..30e79cf5 100644 --- a/src/musicat/server/ws/player/message.cpp +++ b/src/musicat/server/ws/player/message.cpp @@ -1,9 +1,12 @@ #include "musicat/musicat.h" #include "musicat/server/ws/player.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER inline constexpr const socket_event_handler_t socket_event_handlers[] = { { SOCKET_EVENT_ERROR, NULL } }; @@ -86,4 +89,5 @@ message (uws_ws_t *ws, std::string_view msg, uWS::OpCode code) } } +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/server/ws/player/open.cpp b/src/musicat/server/ws/player/open.cpp index 60a78b81..d3791c5d 100644 --- a/src/musicat/server/ws/player/open.cpp +++ b/src/musicat/server/ws/player/open.cpp @@ -1,9 +1,12 @@ #include "musicat/musicat.h" #include "musicat/server/ws/player.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER nlohmann::json get_bot_info_payload (dpp::cluster *bot) @@ -100,4 +103,5 @@ open (uws_ws_t *ws) */ } +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/server/ws/player/ping.cpp b/src/musicat/server/ws/player/ping.cpp index 7ec0b30e..7a4cf247 100644 --- a/src/musicat/server/ws/player/ping.cpp +++ b/src/musicat/server/ws/player/ping.cpp @@ -1,10 +1,13 @@ #include "musicat/musicat.h" #include "musicat/server/ws/player.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER void ping (uws_ws_t *ws, std::string_view msg) { @@ -16,5 +19,6 @@ ping (uws_ws_t *ws, std::string_view msg) std::string (msg).c_str ()); } } +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/server/ws/player/pong.cpp b/src/musicat/server/ws/player/pong.cpp index f765551b..e522a31f 100644 --- a/src/musicat/server/ws/player/pong.cpp +++ b/src/musicat/server/ws/player/pong.cpp @@ -1,10 +1,13 @@ #include "musicat/musicat.h" #include "musicat/server/ws/player.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER void pong (uws_ws_t *ws, std::string_view msg) { @@ -16,5 +19,6 @@ pong (uws_ws_t *ws, std::string_view msg) std::string (msg).c_str ()); } } +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/server/ws/player/subscription.cpp b/src/musicat/server/ws/player/subscription.cpp index 9221e01b..1cd444e8 100644 --- a/src/musicat/server/ws/player/subscription.cpp +++ b/src/musicat/server/ws/player/subscription.cpp @@ -1,9 +1,12 @@ #include "musicat/musicat.h" #include "musicat/server/ws/player.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER void subscription (uws_ws_t *ws, std::string_view topic, int idk1, int idk2) @@ -17,4 +20,5 @@ subscription (uws_ws_t *ws, std::string_view topic, int idk1, int idk2) } } +#endif } // musicat::server::ws::player::events diff --git a/src/musicat/server/ws/player/upgrade.cpp b/src/musicat/server/ws/player/upgrade.cpp index 8b2ab2ab..549d2e2d 100644 --- a/src/musicat/server/ws/player/upgrade.cpp +++ b/src/musicat/server/ws/player/upgrade.cpp @@ -1,10 +1,13 @@ #include "musicat/server/middlewares.h" #include "musicat/server/ws/player.h" #include "musicat/util.h" +#ifndef MUSICAT_NO_SERVER #include +#endif namespace musicat::server::ws::player::events { +#ifndef MUSICAT_NO_SERVER void upgrade (APIResponse *res, APIRequest *req, struct us_socket_context_t *ctx) @@ -42,4 +45,5 @@ upgrade (APIResponse *res, APIRequest *req, struct us_socket_context_t *ctx) req->getHeader ("sec-websocket-extensions"), ctx); } +#endif } // musicat::server::ws::player::events From 1e70de6cb1edc9b6b24947f7ea462f1b87451136 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 11:57:09 +0700 Subject: [PATCH 09/21] finish disabling server --- CMakeLists.txt | 63 ++++++++++++------------- src/musicat/server/auth.cpp | 2 + src/musicat/server/response.cpp | 2 + src/musicat/server/routes.cpp | 2 + src/musicat/server/routes/get_login.cpp | 2 + src/musicat/server/routes/get_root.cpp | 2 + src/musicat/server/states.cpp | 2 + src/musicat/server/ws.cpp | 2 + 8 files changed, 45 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb8249be..90e3c7ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,46 +78,45 @@ add_executable(Shasha # uWebSockets if (UNIX) - set(USOCKETS_OBJECT_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/bsd.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/context.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/epoll_kqueue.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/gcd.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/libuv.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/loop.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/openssl.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/quic.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/sni_tree.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/socket.o - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/udp.o) - - file(GLOB_RECURSE USOCKETS_SOURCE_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/src/*.c) - - file(GLOB_RECURSE UWEBSOCKETS_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/src/*.h) - - add_custom_target(uWebSockets - DEPENDS ${USOCKETS_OBJECT_FILES}) - - add_custom_command(OUTPUT ${USOCKETS_OBJECT_FILES} - COMMAND WITH_OPENSSL=1 WITH_ZLIB=1 make - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets - DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) - - add_dependencies(Shasha deps) - if (NOT MUSICAT_NO_SERVER) + set(USOCKETS_OBJECT_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/bsd.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/context.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/epoll_kqueue.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/gcd.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/libuv.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/loop.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/openssl.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/quic.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/sni_tree.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/socket.o + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/udp.o) + + file(GLOB_RECURSE USOCKETS_SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/src/*.c) + + file(GLOB_RECURSE UWEBSOCKETS_HEADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/src/*.h) + + add_custom_target(uWebSockets + DEPENDS ${USOCKETS_OBJECT_FILES}) + + add_custom_command(OUTPUT ${USOCKETS_OBJECT_FILES} + COMMAND WITH_OPENSSL=1 WITH_ZLIB=1 make + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets + DEPENDS ${USOCKETS_SOURCE_FILES} ${UWEBSOCKETS_HEADER_FILES}) + add_dependencies(Shasha uWebSockets) endif() - add_custom_target(deps - DEPENDS ShashaDeps) - add_custom_command(OUTPUT ShashaDeps COMMAND COMPILE_GNUPLOT=${WITH_COMPILE_GNUPLOT} GNUPLOT_VERSION=${GNUPLOT_VERSION} make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) + add_custom_target(deps + DEPENDS ShashaDeps) + add_dependencies(Shasha deps) + add_custom_target(archlinux-dist-folder COMMAND mkdir -p archlinux-dist WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/musicat/server/auth.cpp b/src/musicat/server/auth.cpp index 2f84c4df..be02f7a1 100644 --- a/src/musicat/server/auth.cpp +++ b/src/musicat/server/auth.cpp @@ -5,6 +5,7 @@ namespace musicat::server::auth { +#ifndef MUSICAT_NO_SERVER std::string create_jwt_token (const std::string &user_id) { @@ -63,5 +64,6 @@ verify_jwt_token (const std::string &token) return uid; } +#endif } // musicat::server::auth diff --git a/src/musicat/server/response.cpp b/src/musicat/server/response.cpp index 0284c62a..8cf21576 100644 --- a/src/musicat/server/response.cpp +++ b/src/musicat/server/response.cpp @@ -2,6 +2,7 @@ namespace musicat::server::response { +#ifndef MUSICAT_NO_SERVER nlohmann::json payload (const nlohmann::json &data) @@ -16,4 +17,5 @@ error (error_code_e code, const std::string &message) { "data", { { "code", code }, { "message", message } } } }; } +#endif } // musicat::server::response diff --git a/src/musicat/server/routes.cpp b/src/musicat/server/routes.cpp index bbb15324..f81f93f4 100644 --- a/src/musicat/server/routes.cpp +++ b/src/musicat/server/routes.cpp @@ -11,6 +11,7 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER // any route void @@ -84,4 +85,5 @@ define_routes (APIApp *app) } } +#endif } // musicat::server::routes diff --git a/src/musicat/server/routes/get_login.cpp b/src/musicat/server/routes/get_login.cpp index 4a07262e..2d152599 100644 --- a/src/musicat/server/routes/get_login.cpp +++ b/src/musicat/server/routes/get_login.cpp @@ -4,6 +4,7 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void get_login (APIResponse *res, APIRequest *req) @@ -38,4 +39,5 @@ get_login (APIResponse *res, APIRequest *req) res->end (r.dump ()); } +#endif } // musicat::server::routes diff --git a/src/musicat/server/routes/get_root.cpp b/src/musicat/server/routes/get_root.cpp index 2efe7c57..410cb334 100644 --- a/src/musicat/server/routes/get_root.cpp +++ b/src/musicat/server/routes/get_root.cpp @@ -3,6 +3,7 @@ namespace musicat::server::routes { +#ifndef MUSICAT_NO_SERVER void get_root (APIResponse *res, APIRequest *req) @@ -36,4 +37,5 @@ get_root (APIResponse *res, APIRequest *req) res->end (r.dump ()); } +#endif } // musicat::server::routes diff --git a/src/musicat/server/states.cpp b/src/musicat/server/states.cpp index bab5cb17..48535e8c 100644 --- a/src/musicat/server/states.cpp +++ b/src/musicat/server/states.cpp @@ -11,6 +11,7 @@ namespace musicat::server::states { +#ifndef MUSICAT_NO_SERVER // this should always be used inside server thread, hence no mutex auth::jwt_verifier_t *_jwt_verifier = nullptr; @@ -298,4 +299,5 @@ get_oauth_timer (const std::string &val) return { 0, 0, "", NULL, NULL }; } +#endif } // musicat::server::states diff --git a/src/musicat/server/ws.cpp b/src/musicat/server/ws.cpp index b2293535..aeaf8bc6 100644 --- a/src/musicat/server/ws.cpp +++ b/src/musicat/server/ws.cpp @@ -2,6 +2,7 @@ namespace musicat::server::ws { +#ifndef MUSICAT_NO_SERVER // inline constexpr const ws_handler_t ws_handlers[] = {}; @@ -12,4 +13,5 @@ define_ws_routes (APIApp *app) ws::player::get_behavior ()); } +#endif } // musicat::server::ws From 49bbe1e157ee030b364df614967e73050513419a Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 12:33:27 +0700 Subject: [PATCH 10/21] dont start server thread when disabled --- src/musicat/run.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/musicat/run.cpp b/src/musicat/run.cpp index 4d52dfe3..30d680bf 100644 --- a/src/musicat/run.cpp +++ b/src/musicat/run.cpp @@ -694,6 +694,7 @@ run (int argc, const char *argv[]) _nekos_best_endpoints = nekos_best::get_available_endpoints (); client.start (true); +#ifndef MUSICAT_NO_SERVER // start server std::thread server_thread ([] () { thread_manager::DoneSetter tmds; @@ -702,6 +703,7 @@ run (int argc, const char *argv[]) }); thread_manager::dispatch (server_thread); +#endif #if RUN_TESTS tests::test_ytdlp (); From 877ad92cebe4b79ff5a9ae089f2327d18c34795d Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 14:46:02 -0700 Subject: [PATCH 11/21] try to not use vcpkg --- CMakeLists.txt | 36 +++++++++++++++++++++--------------- vcpkg.json | 4 +--- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 90e3c7ac..188a3b9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ if (MSVC) # disable server on windows set(MUSICAT_NO_SERVER ON) -elseif (UNIX) +else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic") endif() @@ -76,8 +76,8 @@ add_executable(Shasha ${ELIZA_SOURCE_FILES} src/main.cpp) -# uWebSockets -if (UNIX) +if (NOT MSVC) + # uWebSockets if (NOT MUSICAT_NO_SERVER) set(USOCKETS_OBJECT_FILES ${CMAKE_CURRENT_SOURCE_DIR}/libs/uWebSockets/uSockets/bsd.o @@ -109,6 +109,7 @@ if (UNIX) add_dependencies(Shasha uWebSockets) endif() + # other deps specified in libs/Makefile add_custom_command(OUTPUT ShashaDeps COMMAND COMPILE_GNUPLOT=${WITH_COMPILE_GNUPLOT} GNUPLOT_VERSION=${GNUPLOT_VERSION} make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libs) @@ -148,6 +149,9 @@ if (UNIX) add_dependencies(archlinux-dist archlinux-dist-cp-gnuplot) endif() +else() + # MSVC deps + endif() if (MUSICAT_WITH_CORO) @@ -163,30 +167,32 @@ if (MUSICAT_DEBUG_SYMBOL) message("-- INFO: Will build Musicat with debug symbol") if (MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Debug") - elseif (UNIX) + else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") endif() endif() if (MSVC) - # vcpkg cmake confs - - set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${CMAKE_CURRENT_SOURCE_DIR}/vcpkg_installed/x64-windows) - set(FIND_PATH_HINTS "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg_installed/x64-windows/include") + # vcpkg cmake confs, PLANNED TO BE UNUSED + # set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${CMAKE_CURRENT_SOURCE_DIR}/vcpkg_installed/x64-windows) + # set(FIND_PATH_HINTS "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg_installed/x64-windows/include") # uwebsockets - find_path(UWEBSOCKETS_INCLUDE_DIRS "uwebsockets/App.h" - HINTS ${FIND_PATH_HINTS} - ) - target_include_directories(Shasha PRIVATE ${UWEBSOCKETS_INCLUDE_DIRS}) + # find_path(UWEBSOCKETS_INCLUDE_DIRS "uwebsockets/App.h" + # HINTS ${FIND_PATH_HINTS} + # ) + # target_include_directories(Shasha PRIVATE ${UWEBSOCKETS_INCLUDE_DIRS}) # curlpp # find_package(unofficial-curlpp CONFIG REQUIRED) # target_link_libraries(Shasha PRIVATE unofficial::curlpp::curlpp) # libpq - find_package(PostgreSQL REQUIRED) - target_link_libraries(Shasha PRIVATE PostgreSQL::PostgreSQL) + # find_package(PostgreSQL REQUIRED) + # target_link_libraries(Shasha PRIVATE PostgreSQL::PostgreSQL) + + # manual installation (non-vcpkg) + # submodules target_include_directories(Shasha PRIVATE @@ -201,7 +207,7 @@ if (MSVC) # Remember to add the include directories of any other libraries too ) -elseif (UNIX) +else() # Linking libraries target_link_libraries(Shasha dpp diff --git a/vcpkg.json b/vcpkg.json index 827366ed..bcb4503a 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,7 +1,5 @@ { "dependencies": [ - "curl", - "libpq", - "uwebsockets" + "curl" ] } From c4fe453290368f2bc990d9162bcb0fe483b30f13 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 15:35:29 -0700 Subject: [PATCH 12/21] add postgres submodule --- .gitmodules | 3 +++ windows/libs/postgres | 1 + 2 files changed, 4 insertions(+) create mode 160000 windows/libs/postgres diff --git a/.gitmodules b/.gitmodules index 24c6e028..9df82888 100644 --- a/.gitmodules +++ b/.gitmodules @@ -29,3 +29,6 @@ [submodule "libs/cppcodec"] path = libs/cppcodec url = https://github.com/tplgy/cppcodec.git +[submodule "windows/libs/postgres"] + path = windows/libs/postgres + url = https://github.com/postgres/postgres.git diff --git a/windows/libs/postgres b/windows/libs/postgres new file mode 160000 index 00000000..b78fa854 --- /dev/null +++ b/windows/libs/postgres @@ -0,0 +1 @@ +Subproject commit b78fa8547d02fc72ace679fb4d5289dccdbfc781 From a9774b216d8ab44cdf7d8fb03943b21edbb09669 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 16:00:44 +0700 Subject: [PATCH 13/21] build curlpp, some cmake adjustment --- CMakeLists.txt | 17 ++++++++-------- Dockerfile | 2 +- libs/Makefile | 2 +- libs/make.bat | 53 -------------------------------------------------- 4 files changed, 10 insertions(+), 64 deletions(-) delete mode 100644 libs/make.bat diff --git a/CMakeLists.txt b/CMakeLists.txt index 188a3b9b..bd61333c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,7 +126,7 @@ if (NOT MSVC) COMMAND cp build/Shasha build/libs/DPP/library/libdpp.so* - libs/curlpp/build/libcurlpp.so* + build/libs/curlpp/libcurlpp.so* libs/icu/usr/local/lib/lib* src/yt-dlp/ytdlp.py archlinux-dist @@ -165,11 +165,17 @@ endif() if (MUSICAT_DEBUG_SYMBOL) message("-- INFO: Will build Musicat with debug symbol") + + # Debug, Release, RelWithDebInfo and MinSizeRel + set(CMAKE_BUILD_TYPE "RelWithDebInfo") + if (MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Debug") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") endif() +else() + set(CMAKE_BUILD_TYPE "Release") endif() if (MSVC) @@ -202,7 +208,6 @@ if (MSVC) libs/yt-search.h/include libs/nekos-bestpp/include libs/icu/usr/local/include - libs/jwt-cpp/include libs/ELIZA/src # Remember to add the include directories of any other libraries too ) @@ -248,9 +253,7 @@ else() ) target_link_directories(Shasha PRIVATE - libs/curlpp/build libs/icu/usr/local/lib - # libs/liboggz/build/lib ) endif() @@ -264,11 +267,7 @@ set_target_properties(Shasha PROPERTIES # Add submodule cmake dependency add_subdirectory(libs/DPP) add_subdirectory(libs/cppcodec) - -# windows build -if (MSVC) - add_subdirectory(libs/curlpp) -endif() +add_subdirectory(libs/curlpp) message(WARNING "If you like this bot or wanna suggest smt, say hi in https://discord.gg/ADGcaHnRFs <3") diff --git a/Dockerfile b/Dockerfile index 534f08df..6aac7d16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,7 +37,7 @@ WORKDIR /home/musicat COPY --chown=musicat:musicat --from=build \ /app/build/Shasha \ /app/build/libs/DPP/library/libdpp.so* \ - /app/libs/curlpp/build/libcurlpp.so* \ + /app/build/libs/curlpp/libcurlpp.so* \ /app/libs/icu/usr/local/lib/lib* \ /app/src/yt-dlp/ytdlp.py \ /home/musicat/ diff --git a/libs/Makefile b/libs/Makefile index a57676f6..7a0f2c50 100644 --- a/libs/Makefile +++ b/libs/Makefile @@ -21,7 +21,7 @@ ifeq ($(COMPILE_GNUPLOT),1) override GNUPLOT_TARGET = gnuplot endif -all: icu curlpp $(GNUPLOT_TARGET) # liboggz +all: icu $(GNUPLOT_TARGET) # curlpp liboggz icu: $(ICUDATA_SO) diff --git a/libs/make.bat b/libs/make.bat deleted file mode 100644 index a57676f6..00000000 --- a/libs/make.bat +++ /dev/null @@ -1,53 +0,0 @@ -ICU_TGZ = $(PWD)/icu.tgz -ICUDATA_SO = $(PWD)/icu/usr/local/lib/libicudata.so - -CURLPP_SO = $(PWD)/curlpp/build/libcurlpp.so - -LIBOGGZ_BUILD_DIR = $(PWD)/liboggz/build/ -LIBOGGZ_SO = $(LIBOGGZ_BUILD_DIR)lib/liboggz.so -LIBOGGZ_BUILD_ENVS = CC=gcc LDFLAGS=-flto - -GNUPLOT_DIR = gnuplot-$(GNUPLOT_VERSION) -GNUPLOT_BUILD_DIR = $(PWD)/$(GNUPLOT_DIR)/build/ -GNUPLOT_BIN = $(GNUPLOT_BUILD_DIR)bin/gnuplot -GNUPLOT_CONFIGURE = $(PWD)/$(GNUPLOT_DIR)/configure -GNUPLOT_TARFILE = $(GNUPLOT_DIR).tar.gz -GNUPLOT_BUILD_ENVS = CC=gcc LDFLAGS= CFLAGS= - -curl_dl = curl -L -tar_extract = tar --skip-old-files -xf - -ifeq ($(COMPILE_GNUPLOT),1) - override GNUPLOT_TARGET = gnuplot -endif - -all: icu curlpp $(GNUPLOT_TARGET) # liboggz - -icu: $(ICUDATA_SO) - -$(ICUDATA_SO): $(ICU_TGZ) - $(tar_extract) icu.tgz - -$(ICU_TGZ): - $(curl_dl) https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-Ubuntu22.04-x64.tgz -o icu.tgz - -curlpp: $(CURLPP_SO) - -$(CURLPP_SO): - cd curlpp && mkdir -p build && cd build && cmake .. && make - -liboggz: $(LIBOGGZ_SO) - -$(LIBOGGZ_SO): - cd liboggz && $(LIBOGGZ_BUILD_ENVS) ./autogen.sh && $(LIBOGGZ_BUILD_ENVS) ./configure --prefix=$(LIBOGGZ_BUILD_DIR) && $(LIBOGGZ_BUILD_ENVS) make install - -gnuplot: $(GNUPLOT_BIN) - -$(GNUPLOT_BIN): $(GNUPLOT_CONFIGURE) - cd $(GNUPLOT_DIR) && $(GNUPLOT_BUILD_ENVS) ./configure --prefix=$(GNUPLOT_BUILD_DIR) --with-texdir=$(GNUPLOT_BUILD_DIR)texmf --with-qt=no --with-x=no && $(GNUPLOT_BUILD_ENVS) make install - -$(GNUPLOT_CONFIGURE): $(GNUPLOT_TARFILE) - $(tar_extract) $(GNUPLOT_TARFILE) - -$(GNUPLOT_TARFILE): - $(curl_dl) https://zenlayer.dl.sourceforge.net/project/gnuplot/gnuplot/$(GNUPLOT_VERSION)/$(GNUPLOT_TARFILE) -o $(GNUPLOT_TARFILE) From 822d689e2241ea103536611a17ffe2ab9eb063d1 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 16:16:28 +0700 Subject: [PATCH 14/21] use list --- CMakeLists.txt | 94 +++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 51 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd61333c..78d272ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,6 +178,16 @@ else() set(CMAKE_BUILD_TYPE "Release") endif() +list(APPEND MUSICAT_INC_DIRS + "include" + "libs/DPP/include" + "libs/yt-search.h/include" + "libs/nekos-bestpp/include" + "libs/icu/usr/local/include" + "libs/curlpp/include" + "libs/jwt-cpp/include" + "libs/ELIZA/src") + if (MSVC) # vcpkg cmake confs, PLANNED TO BE UNUSED # set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${CMAKE_CURRENT_SOURCE_DIR}/vcpkg_installed/x64-windows) @@ -198,63 +208,45 @@ if (MSVC) # target_link_libraries(Shasha PRIVATE PostgreSQL::PostgreSQL) # manual installation (non-vcpkg) - - - # submodules - target_include_directories(Shasha PRIVATE - include - libs - libs/DPP/include - libs/yt-search.h/include - libs/nekos-bestpp/include - libs/icu/usr/local/include - libs/ELIZA/src - # Remember to add the include directories of any other libraries too - ) - else() - # Linking libraries - target_link_libraries(Shasha - dpp - # oggz - # ogg - pq - curlpp - curl - cppcodec - icui18n - icuuc - icudata - icuio + list(APPEND MUSICAT_INC_DIRS + # uWebSockets + "libs" + "libs/uWebSockets/uSockets/src" + "/usr/include/postgresql") + + list(APPEND MUSICAT_LN_DIRS + "libs/icu/usr/local/lib") + + list(APPEND MUSICAT_LN_LIBS + "dpp" + "pq" + "curlpp" + "curl" + "cppcodec" + "icui18n" + "icuuc" + "icudata" + "icuio" ${USOCKETS_OBJECT_FILES} - ssl - crypto - z - pthread - # Add any other libs you want to use here + "ssl" + "crypto" + "z" + "pthread" ) +endif() - # Specify includes - target_include_directories(Shasha PRIVATE - include - # uWebSockets - libs - libs/DPP/include - libs/yt-search.h/include - libs/nekos-bestpp/include - libs/uWebSockets/uSockets/src - libs/icu/usr/local/include - libs/curlpp/include - # libs/liboggz/include - libs/jwt-cpp/include - /usr/include/postgresql - libs/ELIZA/src - # Remember to add the include directories of any other libraries too - ) +target_include_directories(Shasha PRIVATE + ${MUSICAT_INC_DIRS}) +if (MUSICAT_LN_DIRS) target_link_directories(Shasha PRIVATE - libs/icu/usr/local/lib - ) + ${MUSICAT_LN_DIRS}) +endif() + +if (MUSICAT_LN_LIBS) + target_link_libraries(Shasha + ${MUSICAT_LN_LIBS}) endif() # Set C++ version From fe845dc26b2f0dae7a61c8b3c6f736b0815bcdd9 Mon Sep 17 00:00:00 2001 From: Neko-Life Date: Fri, 12 Apr 2024 16:40:58 -0700 Subject: [PATCH 15/21] add the whole libcurl dist files --- vcpkg.json | 2 +- .../curl-8.7.1_7-win64-mingw/BUILD-HASHES.txt | 125 + .../BUILD-MANIFEST.txt | 13 + .../curl-8.7.1_7-win64-mingw/BUILD-README.url | 2 + .../libs/curl-8.7.1_7-win64-mingw/CHANGES.txt | 11024 ++++++++++++++++ .../libs/curl-8.7.1_7-win64-mingw/COPYING.txt | 22 + .../libs/curl-8.7.1_7-win64-mingw/README.txt | 55 + .../RELEASE-NOTES.txt | 379 + .../bin/curl-ca-bundle.crt | 3581 +++++ .../curl-8.7.1_7-win64-mingw/bin/curl.exe | Bin 0 -> 3330152 bytes .../bin/libcurl-x64.def | 94 + .../bin/libcurl-x64.dll | Bin 0 -> 3123304 bytes .../dep/brotli/LICENSE.txt | 19 + .../dep/brotli/README.md | 95 + .../dep/cacert/LICENSE.url | 2 + .../dep/libpsl/AUTHORS.txt | 24 + .../dep/libpsl/COPYING.txt | 19 + .../dep/libpsl/NEWS.txt | 237 + .../dep/libressl/COPYING.txt | 133 + .../dep/libressl/ChangeLog.txt | 3014 +++++ .../dep/libressl/README.md | 232 + .../dep/libssh2/COPYING.txt | 43 + .../dep/libssh2/NEWS.txt | 9603 ++++++++++++++ .../dep/libssh2/README.txt | 19 + .../dep/libssh2/RELEASE-NOTES.txt | 75 + .../dep/libssh2/docs/AUTHORS.txt | 80 + .../dep/libssh2/docs/HACKING-CRYPTO.txt | 982 ++ .../dep/libssh2/docs/INSTALL_AUTOTOOLS.txt | 314 + .../dep/libssh2/docs/TODO.txt | 174 + .../dep/nghttp2/AUTHORS.txt | 161 + .../dep/nghttp2/COPYING.txt | 23 + .../dep/nghttp2/ChangeLog.txt | 856 ++ .../dep/nghttp2/README.rst | 1466 ++ .../dep/nghttp3/AUTHORS.txt | 20 + .../dep/nghttp3/COPYING.txt | 22 + .../dep/nghttp3/ChangeLog.txt | 307 + .../dep/nghttp3/README.rst | 58 + .../dep/ngtcp2/AUTHORS.txt | 54 + .../dep/ngtcp2/COPYING.txt | 22 + .../dep/ngtcp2/ChangeLog.txt | 807 ++ .../dep/ngtcp2/README.rst | 324 + .../dep/zlib/ChangeLog.txt | 1618 +++ .../dep/zlib/LICENSE.txt | 22 + .../dep/zstd/CHANGELOG.txt | 837 ++ .../dep/zstd/LICENSE.txt | 30 + .../dep/zstd/README.md | 227 + .../curl-8.7.1_7-win64-mingw/docs/ALTSVC.md | 44 + .../curl-8.7.1_7-win64-mingw/docs/BINDINGS.md | 140 + .../curl-8.7.1_7-win64-mingw/docs/BUFREF.md | 80 + .../docs/BUG-BOUNTY.md | 81 + .../curl-8.7.1_7-win64-mingw/docs/BUGS.md | 264 + .../curl-8.7.1_7-win64-mingw/docs/CHECKSRC.md | 184 + .../curl-8.7.1_7-win64-mingw/docs/CIPHERS.md | 427 + .../docs/CLIENT-READERS.md | 126 + .../docs/CLIENT-WRITERS.md | 117 + .../docs/CODE_OF_CONDUCT.md | 32 + .../docs/CODE_REVIEW.md | 168 + .../docs/CODE_STYLE.md | 310 + .../docs/CONNECTION-FILTERS.md | 302 + .../docs/CONTRIBUTE.md | 317 + .../docs/CURL-DISABLE.md | 168 + .../curl-8.7.1_7-win64-mingw/docs/CURLDOWN.md | 153 + .../docs/DEPRECATE.md | 52 + .../curl-8.7.1_7-win64-mingw/docs/DISTROS.md | 233 + .../curl-8.7.1_7-win64-mingw/docs/DYNBUF.md | 128 + .../docs/EARLY-RELEASE.md | 67 + .../docs/EXPERIMENTAL.md | 24 + .../curl-8.7.1_7-win64-mingw/docs/FAQ.txt | 1561 +++ .../curl-8.7.1_7-win64-mingw/docs/FEATURES.md | 219 + .../docs/GOVERNANCE.md | 196 + .../curl-8.7.1_7-win64-mingw/docs/HELP-US.md | 88 + .../curl-8.7.1_7-win64-mingw/docs/HISTORY.md | 437 + .../curl-8.7.1_7-win64-mingw/docs/HSTS.md | 42 + .../docs/HTTP-COOKIES.md | 165 + .../curl-8.7.1_7-win64-mingw/docs/HTTP2.md | 102 + .../curl-8.7.1_7-win64-mingw/docs/HTTP3.md | 430 + .../curl-8.7.1_7-win64-mingw/docs/HYPER.md | 72 + .../docs/INSTALL-CMAKE.md | 133 + .../curl-8.7.1_7-win64-mingw/docs/INSTALL.md | 578 + .../curl-8.7.1_7-win64-mingw/docs/INSTALL.txt | 9 + .../docs/INTERNALS.md | 55 + .../docs/KNOWN_BUGS.txt | 651 + .../docs/MAIL-ETIQUETTE.txt | 284 + .../curl-8.7.1_7-win64-mingw/docs/MQTT.md | 27 + .../docs/NEW-PROTOCOL.md | 110 + .../docs/PARALLEL-TRANSFERS.md | 50 + .../curl-8.7.1_7-win64-mingw/docs/README.md | 12 + .../docs/RELEASE-PROCEDURE.md | 116 + .../curl-8.7.1_7-win64-mingw/docs/ROADMAP.md | 24 + .../curl-8.7.1_7-win64-mingw/docs/RUSTLS.md | 26 + .../docs/SECURITY-ADVISORY.md | 129 + .../curl-8.7.1_7-win64-mingw/docs/SPONSORS.md | 41 + .../docs/SSL-PROBLEMS.md | 97 + .../curl-8.7.1_7-win64-mingw/docs/SSLCERTS.md | 154 + .../curl-8.7.1_7-win64-mingw/docs/THANKS.txt | 3138 +++++ .../curl-8.7.1_7-win64-mingw/docs/TODO.txt | 1412 ++ .../docs/TheArtOfHttpScripting.md | 704 + .../docs/URL-SYNTAX.md | 389 + .../curl-8.7.1_7-win64-mingw/docs/VERSIONS.md | 57 + .../docs/VULN-DISCLOSURE-POLICY.md | 294 + .../docs/WEBSOCKET.md | 134 + .../docs/curl-config.md | 124 + .../docs/examples/10-at-a-time.c | 156 + .../docs/examples/address-scope.c | 62 + .../docs/examples/altsvc.c | 58 + .../docs/examples/anyauthput.c | 155 + .../docs/examples/certinfo.c | 87 + .../docs/examples/chkspeed.c | 224 + .../docs/examples/connect-to.c | 70 + .../docs/examples/cookie_interface.c | 141 + .../docs/examples/debug.c | 155 + .../docs/examples/default-scheme.c | 57 + .../docs/examples/externalsocket.c | 173 + .../docs/examples/fileupload.c | 89 + .../docs/examples/ftp-wildcard.c | 152 + .../docs/examples/ftpget.c | 94 + .../docs/examples/ftpgetinfo.c | 93 + .../docs/examples/ftpgetresp.c | 79 + .../docs/examples/ftpsget.c | 101 + .../docs/examples/ftpupload.c | 142 + .../docs/examples/ftpuploadfrommem.c | 126 + .../docs/examples/ftpuploadresume.c | 165 + .../docs/examples/getinfo.c | 54 + .../docs/examples/getinmemory.c | 118 + .../docs/examples/getredirect.c | 72 + .../docs/examples/getreferrer.c | 59 + .../docs/examples/headerapi.c | 81 + .../docs/examples/hsts-preload.c | 118 + .../docs/examples/http-options.c | 59 + .../docs/examples/http-post.c | 61 + .../docs/examples/http2-download.c | 234 + .../docs/examples/http2-pushinmemory.c | 190 + .../docs/examples/http2-serverpush.c | 276 + .../docs/examples/http2-upload.c | 303 + .../docs/examples/http3-present.c | 49 + .../docs/examples/http3.c | 55 + .../docs/examples/httpcustomheader.c | 72 + .../docs/examples/httpput-postfields.c | 105 + .../docs/examples/httpput.c | 123 + .../docs/examples/https.c | 83 + .../docs/examples/imap-append.c | 130 + .../docs/examples/imap-authzid.c | 73 + .../docs/examples/imap-copy.c | 73 + .../docs/examples/imap-create.c | 69 + .../docs/examples/imap-delete.c | 69 + .../docs/examples/imap-examine.c | 69 + .../docs/examples/imap-fetch.c | 67 + .../docs/examples/imap-list.c | 68 + .../docs/examples/imap-lsub.c | 70 + .../docs/examples/imap-multi.c | 83 + .../docs/examples/imap-noop.c | 69 + .../docs/examples/imap-search.c | 73 + .../docs/examples/imap-ssl.c | 94 + .../docs/examples/imap-store.c | 84 + .../docs/examples/imap-tls.c | 94 + .../docs/examples/interface.c | 52 + .../docs/examples/ipv6.c | 48 + .../docs/examples/keepalive.c | 55 + .../docs/examples/localport.c | 53 + .../docs/examples/maxconnects.c | 66 + .../docs/examples/multi-app.c | 118 + .../docs/examples/multi-debugcallback.c | 165 + .../docs/examples/multi-double.c | 97 + .../docs/examples/multi-formadd.c | 115 + .../docs/examples/multi-legacy.c | 179 + .../docs/examples/multi-post.c | 105 + .../docs/examples/multi-single.c | 84 + .../docs/examples/netrc.c | 49 + .../docs/examples/parseurl.c | 80 + .../docs/examples/persistent.c | 70 + .../docs/examples/pop3-authzid.c | 72 + .../docs/examples/pop3-dele.c | 72 + .../docs/examples/pop3-list.c | 66 + .../docs/examples/pop3-multi.c | 84 + .../docs/examples/pop3-noop.c | 72 + .../docs/examples/pop3-retr.c | 66 + .../docs/examples/pop3-ssl.c | 93 + .../docs/examples/pop3-stat.c | 72 + .../docs/examples/pop3-tls.c | 93 + .../docs/examples/pop3-top.c | 69 + .../docs/examples/pop3-uidl.c | 69 + .../docs/examples/post-callback.c | 156 + .../docs/examples/postinmemory.c | 113 + .../docs/examples/postit2-formadd.c | 112 + .../docs/examples/postit2.c | 104 + .../docs/examples/progressfunc.c | 97 + .../docs/examples/protofeats.c | 52 + .../docs/examples/range.c | 45 + .../docs/examples/resolve.c | 58 + .../docs/examples/rtsp-options.c | 55 + .../docs/examples/sendrecv.c | 172 + .../docs/examples/sepheaders.c | 96 + .../docs/examples/sftpget.c | 112 + .../docs/examples/sftpuploadresume.c | 137 + .../docs/examples/shared-connection-cache.c | 87 + .../docs/examples/simple.c | 53 + .../docs/examples/simplepost.c | 58 + .../docs/examples/simplessl.c | 143 + .../docs/examples/smtp-authzid.c | 162 + .../docs/examples/smtp-expn.c | 81 + .../docs/examples/smtp-mail.c | 150 + .../docs/examples/smtp-mime.c | 168 + .../docs/examples/smtp-multi.c | 153 + .../docs/examples/smtp-ssl.c | 170 + .../docs/examples/smtp-tls.c | 173 + .../docs/examples/smtp-vrfy.c | 81 + .../docs/examples/sslbackend.c | 79 + .../docs/examples/unixsocket.c | 67 + .../docs/examples/url2file.c | 88 + .../docs/examples/urlapi.c | 77 + .../docs/examples/websocket-cb.c | 68 + .../docs/examples/websocket.c | 131 + .../docs/libcurl/symbols-in-versions.txt | 1148 ++ .../docs/mk-ca-bundle.md | 126 + .../docs/options-in-versions.txt | 270 + .../include/brotli/decode.h | 409 + .../include/brotli/encode.h | 501 + .../include/brotli/port.h | 305 + .../include/brotli/shared_dictionary.h | 100 + .../include/brotli/types.h | 83 + .../include/curl/curl.h | 3240 +++++ .../include/curl/curlver.h | 79 + .../include/curl/easy.h | 125 + .../include/curl/header.h | 74 + .../include/curl/mprintf.h | 78 + .../include/curl/multi.h | 471 + .../include/curl/options.h | 70 + .../include/curl/stdcheaders.h | 35 + .../include/curl/system.h | 496 + .../include/curl/typecheck-gcc.h | 717 + .../include/curl/urlapi.h | 151 + .../include/curl/websockets.h | 84 + .../curl-8.7.1_7-win64-mingw/include/libpsl.h | 210 + .../include/libssh2.h | 1463 ++ .../include/libssh2_publickey.h | 126 + .../include/libssh2_sftp.h | 371 + .../include/nghttp2/nghttp2.h | 7007 ++++++++++ .../include/nghttp2/nghttp2ver.h | 42 + .../include/nghttp3/nghttp3.h | 2939 ++++ .../include/nghttp3/version.h | 46 + .../include/ngtcp2/ngtcp2.h | 5912 +++++++++ .../include/ngtcp2/ngtcp2_crypto.h | 841 ++ .../include/ngtcp2/ngtcp2_crypto_quictls.h | 147 + .../include/ngtcp2/version.h | 51 + .../include/openssl/aes.h | 124 + .../include/openssl/asn1.h | 1130 ++ .../include/openssl/asn1t.h | 907 ++ .../include/openssl/bio.h | 726 + .../include/openssl/blowfish.h | 110 + .../include/openssl/bn.h | 527 + .../include/openssl/buffer.h | 102 + .../include/openssl/camellia.h | 125 + .../include/openssl/cast.h | 103 + .../include/openssl/chacha.h | 58 + .../include/openssl/cmac.h | 81 + .../include/openssl/cms.h | 535 + .../include/openssl/comp.h | 7 + .../include/openssl/conf.h | 246 + .../include/openssl/conf_api.h | 88 + .../include/openssl/crypto.h | 462 + .../include/openssl/ct.h | 567 + .../include/openssl/curve25519.h | 104 + .../include/openssl/des.h | 215 + .../include/openssl/dh.h | 249 + .../include/openssl/dsa.h | 276 + .../include/openssl/dtls1.h | 107 + .../include/openssl/ec.h | 722 + .../include/openssl/ecdh.h | 6 + .../include/openssl/ecdsa.h | 6 + .../include/openssl/engine.h | 215 + .../include/openssl/err.h | 400 + .../include/openssl/evp.h | 1327 ++ .../include/openssl/hkdf.h | 65 + .../include/openssl/hmac.h | 98 + .../include/openssl/idea.h | 99 + .../include/openssl/kdf.h | 111 + .../include/openssl/lhash.h | 179 + .../include/openssl/md4.h | 102 + .../include/openssl/md5.h | 107 + .../include/openssl/modes.h | 118 + .../include/openssl/obj_mac.h | 4639 +++++++ .../include/openssl/objects.h | 137 + .../include/openssl/ocsp.h | 484 + .../include/openssl/opensslconf.h | 149 + .../include/openssl/opensslfeatures.h | 153 + .../include/openssl/opensslv.h | 18 + .../include/openssl/ossl_typ.h | 203 + .../include/openssl/pem.h | 596 + .../include/openssl/pem2.h | 71 + .../include/openssl/pkcs12.h | 281 + .../include/openssl/pkcs7.h | 524 + .../include/openssl/poly1305.h | 49 + .../include/openssl/posix_time.h | 54 + .../include/openssl/rand.h | 120 + .../include/openssl/rc2.h | 100 + .../include/openssl/rc4.h | 88 + .../include/openssl/ripemd.h | 104 + .../include/openssl/rsa.h | 609 + .../include/openssl/safestack.h | 1739 +++ .../include/openssl/sha.h | 189 + .../include/openssl/sm3.h | 53 + .../include/openssl/sm4.h | 51 + .../include/openssl/srtp.h | 146 + .../include/openssl/ssl.h | 2342 ++++ .../include/openssl/ssl2.h | 153 + .../include/openssl/ssl23.h | 82 + .../include/openssl/ssl3.h | 441 + .../include/openssl/stack.h | 99 + .../include/openssl/tls1.h | 766 ++ .../include/openssl/ts.h | 660 + .../include/openssl/txt_db.h | 112 + .../include/openssl/ui.h | 403 + .../include/openssl/ui_compat.h | 65 + .../include/openssl/whrlpool.h | 41 + .../include/openssl/x509.h | 1109 ++ .../include/openssl/x509_vfy.h | 464 + .../include/openssl/x509v3.h | 1101 ++ .../curl-8.7.1_7-win64-mingw/include/zconf.h | 545 + .../curl-8.7.1_7-win64-mingw/include/zdict.h | 474 + .../curl-8.7.1_7-win64-mingw/include/zlib.h | 1938 +++ .../curl-8.7.1_7-win64-mingw/include/zstd.h | 3089 +++++ .../include/zstd_errors.h | 114 + .../lib/libbrotlicommon.a | Bin 0 -> 134444 bytes .../lib/libbrotlidec.a | Bin 0 -> 56184 bytes .../curl-8.7.1_7-win64-mingw/lib/libcrypto.a | Bin 0 -> 3388430 bytes .../curl-8.7.1_7-win64-mingw/lib/libcurl.a | Bin 0 -> 1570682 bytes .../lib/libcurl.dll.a | Bin 0 -> 16058 bytes .../curl-8.7.1_7-win64-mingw/lib/libnghttp2.a | Bin 0 -> 300964 bytes .../curl-8.7.1_7-win64-mingw/lib/libnghttp3.a | Bin 0 -> 251192 bytes .../curl-8.7.1_7-win64-mingw/lib/libngtcp2.a | Bin 0 -> 459084 bytes .../lib/libngtcp2_crypto_quictls.a | Bin 0 -> 41018 bytes .../curl-8.7.1_7-win64-mingw/lib/libpsl.a | Bin 0 -> 68380 bytes .../curl-8.7.1_7-win64-mingw/lib/libssh2.a | Bin 0 -> 418108 bytes .../curl-8.7.1_7-win64-mingw/lib/libssl.a | Bin 0 -> 681820 bytes .../libs/curl-8.7.1_7-win64-mingw/lib/libz.a | Bin 0 -> 123150 bytes .../curl-8.7.1_7-win64-mingw/lib/libzstd.a | Bin 0 -> 885566 bytes .../curl-8.7.1_7-win64-mingw/mk-ca-bundle.pl | 713 + 337 files changed, 127219 insertions(+), 1 deletion(-) create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/BUILD-HASHES.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/BUILD-MANIFEST.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/BUILD-README.url create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/CHANGES.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/COPYING.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/README.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/RELEASE-NOTES.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/bin/curl-ca-bundle.crt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/bin/curl.exe create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/bin/libcurl-x64.def create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/bin/libcurl-x64.dll create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/brotli/LICENSE.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/brotli/README.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/cacert/LICENSE.url create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libpsl/AUTHORS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libpsl/COPYING.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libpsl/NEWS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libressl/COPYING.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libressl/ChangeLog.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libressl/README.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/COPYING.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/NEWS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/README.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/RELEASE-NOTES.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/docs/AUTHORS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/docs/HACKING-CRYPTO.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/docs/INSTALL_AUTOTOOLS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/libssh2/docs/TODO.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp2/AUTHORS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp2/COPYING.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp2/ChangeLog.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp2/README.rst create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp3/AUTHORS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp3/COPYING.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp3/ChangeLog.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/nghttp3/README.rst create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/ngtcp2/AUTHORS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/ngtcp2/COPYING.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/ngtcp2/ChangeLog.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/ngtcp2/README.rst create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/zlib/ChangeLog.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/zlib/LICENSE.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/zstd/CHANGELOG.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/zstd/LICENSE.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/dep/zstd/README.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/ALTSVC.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/BINDINGS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/BUFREF.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/BUG-BOUNTY.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/BUGS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CHECKSRC.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CIPHERS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CLIENT-READERS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CLIENT-WRITERS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CODE_OF_CONDUCT.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CODE_REVIEW.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CODE_STYLE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CONNECTION-FILTERS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CONTRIBUTE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CURL-DISABLE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/CURLDOWN.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/DEPRECATE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/DISTROS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/DYNBUF.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/EARLY-RELEASE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/EXPERIMENTAL.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/FAQ.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/FEATURES.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/GOVERNANCE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/HELP-US.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/HISTORY.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/HSTS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/HTTP-COOKIES.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/HTTP2.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/HTTP3.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/HYPER.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/INSTALL-CMAKE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/INSTALL.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/INSTALL.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/INTERNALS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/KNOWN_BUGS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/MAIL-ETIQUETTE.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/MQTT.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/NEW-PROTOCOL.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/PARALLEL-TRANSFERS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/README.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/RELEASE-PROCEDURE.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/ROADMAP.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/RUSTLS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/SECURITY-ADVISORY.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/SPONSORS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/SSL-PROBLEMS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/SSLCERTS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/THANKS.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/TODO.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/TheArtOfHttpScripting.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/URL-SYNTAX.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/VERSIONS.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/VULN-DISCLOSURE-POLICY.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/WEBSOCKET.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/curl-config.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/10-at-a-time.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/address-scope.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/altsvc.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/anyauthput.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/certinfo.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/chkspeed.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/connect-to.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/cookie_interface.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/debug.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/default-scheme.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/externalsocket.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/fileupload.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftp-wildcard.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftpget.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftpgetinfo.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftpgetresp.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftpsget.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftpupload.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftpuploadfrommem.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ftpuploadresume.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/getinfo.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/getinmemory.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/getredirect.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/getreferrer.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/headerapi.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/hsts-preload.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http-options.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http-post.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http2-download.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http2-pushinmemory.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http2-serverpush.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http2-upload.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http3-present.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/http3.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/httpcustomheader.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/httpput-postfields.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/httpput.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/https.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-append.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-authzid.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-copy.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-create.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-delete.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-examine.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-fetch.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-list.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-lsub.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-multi.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-noop.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-search.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-ssl.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-store.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/imap-tls.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/interface.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/ipv6.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/keepalive.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/localport.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/maxconnects.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/multi-app.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/multi-debugcallback.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/multi-double.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/multi-formadd.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/multi-legacy.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/multi-post.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/multi-single.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/netrc.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/parseurl.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/persistent.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-authzid.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-dele.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-list.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-multi.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-noop.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-retr.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-ssl.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-stat.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-tls.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-top.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/pop3-uidl.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/post-callback.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/postinmemory.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/postit2-formadd.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/postit2.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/progressfunc.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/protofeats.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/range.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/resolve.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/rtsp-options.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/sendrecv.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/sepheaders.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/sftpget.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/sftpuploadresume.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/shared-connection-cache.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/simple.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/simplepost.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/simplessl.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-authzid.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-expn.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-mail.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-mime.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-multi.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-ssl.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-tls.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/smtp-vrfy.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/sslbackend.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/unixsocket.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/url2file.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/urlapi.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/websocket-cb.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/examples/websocket.c create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/libcurl/symbols-in-versions.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/mk-ca-bundle.md create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/docs/options-in-versions.txt create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/brotli/decode.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/brotli/encode.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/brotli/port.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/brotli/shared_dictionary.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/brotli/types.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/curl.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/curlver.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/easy.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/header.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/mprintf.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/multi.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/options.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/stdcheaders.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/system.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/typecheck-gcc.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/urlapi.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/curl/websockets.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/libpsl.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/libssh2.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/libssh2_publickey.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/libssh2_sftp.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/nghttp2/nghttp2.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/nghttp2/nghttp2ver.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/nghttp3/nghttp3.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/nghttp3/version.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/ngtcp2/ngtcp2.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/ngtcp2/ngtcp2_crypto.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/ngtcp2/ngtcp2_crypto_quictls.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/ngtcp2/version.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/aes.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/asn1.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/asn1t.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/bio.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/blowfish.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/bn.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/buffer.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/camellia.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/cast.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/chacha.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/cmac.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/cms.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/comp.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/conf.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/conf_api.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/crypto.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ct.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/curve25519.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/des.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/dh.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/dsa.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/dtls1.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ec.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ecdh.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ecdsa.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/engine.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/err.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/evp.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/hkdf.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/hmac.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/idea.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/kdf.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/lhash.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/md4.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/md5.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/modes.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/obj_mac.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/objects.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ocsp.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/opensslconf.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/opensslfeatures.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/opensslv.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ossl_typ.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/pem.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/pem2.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/pkcs12.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/pkcs7.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/poly1305.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/posix_time.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/rand.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/rc2.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/rc4.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ripemd.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/rsa.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/safestack.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/sha.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/sm3.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/sm4.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/srtp.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ssl.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ssl2.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ssl23.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ssl3.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/stack.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/tls1.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ts.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/txt_db.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ui.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/ui_compat.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/whrlpool.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/x509.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/x509_vfy.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/openssl/x509v3.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/zconf.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/zdict.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/zlib.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/zstd.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/include/zstd_errors.h create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libbrotlicommon.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libbrotlidec.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libcrypto.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libcurl.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libcurl.dll.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libnghttp2.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libnghttp3.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libngtcp2.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libngtcp2_crypto_quictls.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libpsl.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libssh2.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libssl.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libz.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/lib/libzstd.a create mode 100644 windows/libs/curl-8.7.1_7-win64-mingw/mk-ca-bundle.pl diff --git a/vcpkg.json b/vcpkg.json index bcb4503a..e15e58b8 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,5 +1,5 @@ { "dependencies": [ - "curl" + "libpq" ] } diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-HASHES.txt b/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-HASHES.txt new file mode 100644 index 00000000..b3b78ff6 --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-HASHES.txt @@ -0,0 +1,125 @@ +SHA2-256(./bin/curl-ca-bundle.crt)= 1794c1d4f7055b7d02c2170337b61b48a2ef6c90d77e95444fd2596f4cac609f +SHA2-256(./bin/curl.exe)= a02d8551330fdb931589a06b144139657447c6708fa0f3dfdc377330b728fa84 +SHA2-256(./bin/libcurl-x64.def)= db95b78d9512ba036e42b296a5f9ea6882b054ad37a050db8eecd527608d223b +SHA2-256(./bin/libcurl-x64.dll)= 50366af9f6920235edf58304086a21042017ab15d6d31c598e127d09d5a294f2 +SHA2-256(./include/brotli/decode.h)= 20d0a87a96bc25a3af7557075be87be4393e88a5fb564db08e92884dee17d841 +SHA2-256(./include/brotli/encode.h)= 3403a597eff24ff45903128feb471e4dd5138f624104ebe058a9d90ed905550c +SHA2-256(./include/brotli/port.h)= d87dae6cce00aff76192a1db4fedc2a817967e14e652829349b8a75088f9e467 +SHA2-256(./include/brotli/shared_dictionary.h)= 86230f0aaf533044d85d92f84b5aec8b7e4e231d4b64b098604083e7866e8097 +SHA2-256(./include/brotli/types.h)= 96c9330e790aa6fe53f4cdd328d0a4b98e361b82913baa3219db73aadb11272c +SHA2-256(./include/curl/curl.h)= 63be5ca2cfb8f57e23956f7c84657e700b40c8fbd713c893d896b73dcb66af3b +SHA2-256(./include/curl/curlver.h)= 454e77732340eeb1119d47f501fa448a3577ea613d9e98d81b36d5bb72c242df +SHA2-256(./include/curl/easy.h)= 0890e063d2bea8ba815d747d4f665994e263e1043f0e14a85733c9445cb83a6d +SHA2-256(./include/curl/header.h)= 614be48a86f4e5d304c5aa40ef1c85245e25b97732921c3631840146669d992f +SHA2-256(./include/curl/mprintf.h)= 0fbaa71216afdd6ca44af67e3d1fae18087f635e5291136fce6294ff81322e63 +SHA2-256(./include/curl/multi.h)= 4a4dd7ed318808dceab8ab7b105357821b9032ba6d05898c14b4fc891881ff57 +SHA2-256(./include/curl/options.h)= 5716018d27e783283825bed2a8a051190487722fdeb64b7aa2d03a997e99b8d1 +SHA2-256(./include/curl/stdcheaders.h)= d7588b86814a35ffc3766ff6242e6f6705e04401fc9c208a195caff3503af81c +SHA2-256(./include/curl/system.h)= 8933eee495010267862744096910914211e40d43935a81864a3780a61299e44f +SHA2-256(./include/curl/typecheck-gcc.h)= 1b6f728317c451c0debdf0f244c9e85bd985566717e32c44417a9fabe71699f7 +SHA2-256(./include/curl/urlapi.h)= 99736f84dc62afd76ac60e0c80a285527d72b7b1d164d3e43f1abaa931b25563 +SHA2-256(./include/curl/websockets.h)= b58bb1d7eda3fd2372feb4d856c256897d83006dfe7933d69be54bc4a2ba5a3f +SHA2-256(./include/libpsl.h)= c18414f8fbcf2c16ce4cf4038dd27a0e8b64d8dc9c117d5b982016d830852f4e +SHA2-256(./include/libssh2.h)= b5441e1b4f491ce6b31de50fdc38cbefa63b26e2d9e2fd3497031a7975bfbf06 +SHA2-256(./include/libssh2_publickey.h)= d8f24d3166835b6598e5a962058046207edabaa646548d453056f7b3319d0ee8 +SHA2-256(./include/libssh2_sftp.h)= 2b9960c388e213113781bb3b8287098339cffaf42f8933fa5ec88dc86e2ff24d +SHA2-256(./include/nghttp2/nghttp2.h)= 791f9312ce1239e376aea80c41b6ce2adc5a971c44b326caf095000ecba0c1af +SHA2-256(./include/nghttp2/nghttp2ver.h)= fdd18bee1179f59d02fbea6a6a5727f1a9bbe0d67aa476e6b4342466383d10e0 +SHA2-256(./include/nghttp3/nghttp3.h)= 710ee8a674c00bd56beef080a51f088da45cf1a858f4d2824cd15f610b87c395 +SHA2-256(./include/nghttp3/version.h)= 123301570033d7b09ca13c9441fe0cd098bfc85c8c886e5c303e898ccad26f54 +SHA2-256(./include/ngtcp2/ngtcp2.h)= aacf3eef064e7676a49ab91659e7ccba17000ee7e9243ab3c1f2947953cefa5f +SHA2-256(./include/ngtcp2/ngtcp2_crypto.h)= 987d951e0369dc51ddc405c19d469a325ee427f1a958eeba2cf11d4cf7c12bda +SHA2-256(./include/ngtcp2/ngtcp2_crypto_quictls.h)= 05fb731998097c44941e4d728a2fb187424f9c74525b2f684cf2ecb1a740edd9 +SHA2-256(./include/ngtcp2/version.h)= 5b2ff5c76893119bb6e0277cfc87e57523fcf6c40aed0316d9dacce2bd817ab6 +SHA2-256(./include/openssl/aes.h)= a2f5a390cf7bebbe9663a57cf3ba921f486ffdcaa9a08bae3d7488904e331d58 +SHA2-256(./include/openssl/asn1.h)= 13d5129d764359a91c586654210de41fc091135db4525965f452156f1daaf75c +SHA2-256(./include/openssl/asn1t.h)= c92948cd1283528d3c66442f87f1429c7cdea40fd7e26cabcfe90d27a0d817b8 +SHA2-256(./include/openssl/bio.h)= b5087131b8ad711c1f85643e095844c0be20a39a156514ac6c9ca9e9a9fb7fa6 +SHA2-256(./include/openssl/blowfish.h)= 1331f14c97bb42bfc68c2915ba7983be927152c9651ee16348514f4a29277ecd +SHA2-256(./include/openssl/bn.h)= 9c076f515ef4f0cef720910d8d3958fde0999b8feda9d0e6add963f236859316 +SHA2-256(./include/openssl/buffer.h)= a60e861037ec534a80289dce8a5fda46ef72cb3248a29fdc86bd12559c0dfb93 +SHA2-256(./include/openssl/camellia.h)= 7c493b1665915dfe9901cbe0e4d0289c16aef34df5369e5594fd407aee46baa6 +SHA2-256(./include/openssl/cast.h)= 231fe48b423a155d6475bf5546b3d4e0673c5943a0b7f3fd28aff9be955c8153 +SHA2-256(./include/openssl/chacha.h)= 1249f724f0d2b8a9c042302ee2f0dfb233a96c3b169542825abbdabd7c54c732 +SHA2-256(./include/openssl/cmac.h)= 1e298a02b96233ae382ff8fad42ec6b7e04bdbc62ee7faab3479dbe7c7962c7e +SHA2-256(./include/openssl/cms.h)= 96d0d8733b1a880307a8458b366a88582671aae6a7d735bea92fadf3aa459a21 +SHA2-256(./include/openssl/comp.h)= 827b2d6d9ddebb4345aef8ff92e4a350e7bfa01de0f684fadf354ff891389f97 +SHA2-256(./include/openssl/conf.h)= 7bbd514456e1ffad596a0ce4793a977f7f17dd8f07b17276977379995c25f5c3 +SHA2-256(./include/openssl/conf_api.h)= d4ca31b4a952302c58fc0df2e58d1f4bfdb855f910c58a9d3502c3acb36ece27 +SHA2-256(./include/openssl/crypto.h)= 95d43e9f125426f8f873a1138d05c320c0e8923b77183c2fc1acffef5f914f4b +SHA2-256(./include/openssl/ct.h)= 8cabf713866f41bd26885537fe230317b47f63b2febd43cfd05a9490040975af +SHA2-256(./include/openssl/curve25519.h)= d7534da0a98ef1827761beae60ca00d67b1acc0c6977e919591401f2777dd4d2 +SHA2-256(./include/openssl/des.h)= fda7f2142083b03b1e11eb543d6a62565511f55b6a06b227ccf5263211855996 +SHA2-256(./include/openssl/dh.h)= f094394d4f93e6ef46af9ed1cb6a0d67a7224c84f9637b6d365289633cd96cdb +SHA2-256(./include/openssl/dsa.h)= c0af866a797554addd91ac24e1b3b9e28e9b6c2e588a3f18642907fc09e1b311 +SHA2-256(./include/openssl/dtls1.h)= 9c9837a45861f79f4ecd54761bc74aa503265778be1dd76c68433d7994fabb3b +SHA2-256(./include/openssl/ec.h)= 2db1b5979235577bc29c1bb873bdf3ed6a4961898f3aa10b91a743b5feb36f12 +SHA2-256(./include/openssl/ecdh.h)= bfef80e1a0152c23c29a04323302c6a592e55104a5add4c458301ef1da45bade +SHA2-256(./include/openssl/ecdsa.h)= 298d675ce2985b1ba12d7da1245fbc5327f193dc3a477a9aada2208162fdd542 +SHA2-256(./include/openssl/engine.h)= e8bfa460b4ab7f443e1e43151f814db001d0c6c2a6f5d692b1d4ec8e9035ca76 +SHA2-256(./include/openssl/err.h)= fbcf7740a29a16833e4d782ebb16a9d0c2a0c531cb74c3219abd55960a5a2a68 +SHA2-256(./include/openssl/evp.h)= c4a061034ac1721c2d44c51f5995735c25325bfc66a5e860739575d3fb07206d +SHA2-256(./include/openssl/hkdf.h)= 47294d3c2c3df67590090a7262032d2ed83a249d053f9c81be01878faffdc4d2 +SHA2-256(./include/openssl/hmac.h)= dd817565d707c01c2c3b42ef0da1bb50b92a15cfe10688c0767a8963b407980e +SHA2-256(./include/openssl/idea.h)= 6a088c84c3e5776f11c4ad7e2d3d6ea228681305a060e565abe6dbd7554b496a +SHA2-256(./include/openssl/kdf.h)= 7d50830c5294df492f342ada41dea939a7fcf3fa3539b718b1cca62478bf3118 +SHA2-256(./include/openssl/lhash.h)= 053f21efa3da78055e2763b90fd69a4b810606c91b36bbc055290685eeee6f71 +SHA2-256(./include/openssl/md4.h)= 8562b2dbb54723da36da938b7214b495c069bebce6d6038acf539c95098df1a8 +SHA2-256(./include/openssl/md5.h)= 863a8363ca25183c21517bca7c1361298addb0d24f4d256de001f3870fb2a935 +SHA2-256(./include/openssl/modes.h)= a8993a5bdfad225b207971039657000250b3239d7ca095238fabb895d73bafc6 +SHA2-256(./include/openssl/obj_mac.h)= 06888e174ef29efe638844a12178908f11b7a284cb7ea31b5124d3fcdd8972f3 +SHA2-256(./include/openssl/objects.h)= dcf127aedcc6a9fbf4abc6dfacbf6d234a003d5c390025f4785c3407cbe99cf2 +SHA2-256(./include/openssl/ocsp.h)= 74bf587344a632fee6721e93a3991de1c5cdafe762fc7ff3d22ea614ea8505f7 +SHA2-256(./include/openssl/opensslconf.h)= 324f039d90f6c8bba782e5c46ea83ddd7a0ccbb99572ea706be895bb59c6be32 +SHA2-256(./include/openssl/opensslfeatures.h)= 4877960bd5ffb8d0f5ae82f3d473439aa6d9736011d1a6c468f29f0547a719b8 +SHA2-256(./include/openssl/opensslv.h)= a8ff335e5a179818e56e06b740706681d202b88e6f26e261ca070db56ca92842 +SHA2-256(./include/openssl/ossl_typ.h)= 0f6caab563bc7312251c9e1d10d001ccc6090aa3ce3ef527e1447c387e0cc723 +SHA2-256(./include/openssl/pem.h)= 8e8f20a5ba9171ae52e691de2314e803cd0735d5baa84b7d7ae832433a830c40 +SHA2-256(./include/openssl/pem2.h)= 1e1113962bfef5a07dbc9189378723694f7fcf7af865efb6bc1e32c34fb3829b +SHA2-256(./include/openssl/pkcs12.h)= 78792595b289ae1589334e1e1b6d6da7b6049d01b5bf27a86099d659437b04fd +SHA2-256(./include/openssl/pkcs7.h)= 7ff2f0a960a85a579b434fc76639ca706608b5d50c99e0fb7863026a344e1a76 +SHA2-256(./include/openssl/poly1305.h)= 92bea3cd25aa9b4cf58e9b42c0a5cc4cfc0bd7bd06c156774f1642f80bb4b20e +SHA2-256(./include/openssl/posix_time.h)= 9b403139b6e0a2212b5c3ad5d387631f19f5bec74d8831d3fc4c3ab34f58840b +SHA2-256(./include/openssl/rand.h)= 703c3447b3d14744f323392a1b539ea1ee0262367fdccf47b5dadd28c3503476 +SHA2-256(./include/openssl/rc2.h)= 7c153296607eedfc16eccdd0a1900e68346bebce293529f83cd8e5c5239369cc +SHA2-256(./include/openssl/rc4.h)= 9914eaaeb3ab996843a8f7e11124d1de25aa07b2509c8321bfbb39446ff4958c +SHA2-256(./include/openssl/ripemd.h)= beec00230acfe4e0283e792157cd637df709b5e213fe7de52de95929aa524ee8 +SHA2-256(./include/openssl/rsa.h)= dfef73b5dd2041ef56077067c05d79be5669d16485e120de6624191006122ca9 +SHA2-256(./include/openssl/safestack.h)= 3ba8e3cf36e174528a5d581dfa897012dba82d820d2da07b2e4705ec6547ad22 +SHA2-256(./include/openssl/sha.h)= eb6c830b8ec20e6b67e7c509e7b38254db70f55093b47741de8466fefcf81a2f +SHA2-256(./include/openssl/sm3.h)= a420f39df38323fb7277e800f605feee4d9f75610bb62d70083a224b9f828b02 +SHA2-256(./include/openssl/sm4.h)= 7b514cc849480210d447cc81fc71eae100c1f7f87f902589ea862e152ee26d18 +SHA2-256(./include/openssl/srtp.h)= cc3c3de38996738740e6624d58b4c5b40cad4486b344a9e6444a2c5fc02bd0aa +SHA2-256(./include/openssl/ssl.h)= 3a4c36d74cb845d59475208602ecf271e3f43c512a23b9cbc3491960b2c8568a +SHA2-256(./include/openssl/ssl2.h)= bc0ddab2acb054786a022f44fb08ff602239419a335ea791ebd1a970ff9550f8 +SHA2-256(./include/openssl/ssl23.h)= 315850df7444466b9f49e715f244a66670936f6a4a83a7a63fc51477bde57c76 +SHA2-256(./include/openssl/ssl3.h)= 1b874f840ab4a34ff78de5009bf432e42d088716c17c43b6e45bbfde58d6c30a +SHA2-256(./include/openssl/stack.h)= cec4d77b15c66fcbadc05d6946ad6fb8a77430472302798ac25b52aeaa990b92 +SHA2-256(./include/openssl/tls1.h)= 901f42b3ac662aa00253e879723d7ffd24c207e35fcb700bdedab0ba1171f7fa +SHA2-256(./include/openssl/ts.h)= 2c17457bdc6185eb8bbe0654dc187587b6950d1353ed122037cc7e63073f0812 +SHA2-256(./include/openssl/txt_db.h)= 7c50364dd59d167b14db35ff210327d57cabfb14be2ae40e440de2aad14d5b27 +SHA2-256(./include/openssl/ui.h)= 6ef6c823c8b216f72ddfa733d2c8763637e5851f76b3ae208c26470a59f45bf9 +SHA2-256(./include/openssl/ui_compat.h)= 70036eeef16868b03cdcb7e9d302bdc916495cd1278dd1b68f8f2899d0b5f888 +SHA2-256(./include/openssl/whrlpool.h)= 1bd1b6462525e022f0d7b30a1dd8326ca1fe96d3d829ee064458eb0ddf1d47fb +SHA2-256(./include/openssl/x509.h)= fe4c3c9ecb0fd27e1869871095c10b7aea383763ccde3df752de636dd63d199a +SHA2-256(./include/openssl/x509_vfy.h)= a6a05e7ab9e4c3e027d4033f3733cae7ad150c6447cce512042a3f08af7b1b50 +SHA2-256(./include/openssl/x509v3.h)= 578e6f1347aad430fd7373b999298cab449ebb669a945f198f5bd6bc211b488e +SHA2-256(./include/zconf.h)= 4824af6045d35a80f6bf61d218073ffaff3e8638de7ed2e05303457a7c99340d +SHA2-256(./include/zdict.h)= 02a34169467501fcc665cccb33f5bd455fdb665e9806851777dc8a6c4d5a75e3 +SHA2-256(./include/zlib.h)= 8a5579af72ea4f427ff00a4150f0ccb3fc5c1e4379f726e101133b1ab9fc600c +SHA2-256(./include/zstd.h)= 4fab9cf39160cd15fbd9fbc2fd637ee300002fa70e307f85e8a7e45c1e057906 +SHA2-256(./include/zstd_errors.h)= 36dbd0a595852e10ff5b52992294f610055b8781101f4634036e05cf7d4bb506 +SHA2-256(./lib/libbrotlicommon.a)= 4624550c2904681e436780029dc44ac5e892cc0a1d616d4e4b7ececaf533dceb +SHA2-256(./lib/libbrotlidec.a)= 11eff9b3a5c620eda56256d8c5787d902b76a696d5cb8b3e069f37478cadf2a8 +SHA2-256(./lib/libcrypto.a)= 0da1bf854f339f4ac17008c6dbbf56c0987d7806d8de346524d09e5cee2bdb3e +SHA2-256(./lib/libcurl.a)= 206b1f6629e45bfa24e4cc2ddb20ddf9eb83355b9380515b541945575283e638 +SHA2-256(./lib/libcurl.dll.a)= 9587d2e4f88529fddb239790d58a910af903fdf23eb10a6dac02fafca3864ec5 +SHA2-256(./lib/libnghttp2.a)= 5ff135b70186e91f7f9008bd58878b6b883e41526855120002690ba97a780535 +SHA2-256(./lib/libnghttp3.a)= f89d49c9e48acd5d79af13d4af70590320359849616d87c681ef3ab1cb965fe3 +SHA2-256(./lib/libngtcp2.a)= a2f62c50322c7ff638b1b143a91c530499f7a80abcedfb1816880194059ce9e5 +SHA2-256(./lib/libngtcp2_crypto_quictls.a)= eafb0a78550bc66f7bb93ced9caf8c6712379a82d5b502c7fc236881db383f95 +SHA2-256(./lib/libpsl.a)= 2a1d798c37876f1b77cce2d2b2d4c45d33321fbcbe8131668f92c781fbd7f2ba +SHA2-256(./lib/libssh2.a)= 6934e911d77e27868c9f5a0f3df3596fc33ce27ed0974c9c80376b7bddd3ac25 +SHA2-256(./lib/libssl.a)= 870fdbd2e6e47dac5659c4031a16d209cc9ff8d4bbaa315dbc994ae6702ed877 +SHA2-256(./lib/libz.a)= 2497d58a176a88a1341fac41f5c24d7733d20ea875540611d6082fb93208ba2f +SHA2-256(./lib/libzstd.a)= f25ed7e7b537c5b81212ee6b3df60add003113cefe78a71876a91d80dfb071c5 diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-MANIFEST.txt b/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-MANIFEST.txt new file mode 100644 index 00000000..e294ba18 --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-MANIFEST.txt @@ -0,0 +1,13 @@ +.clang 17.0.6 +.mingw-w64 11.0.1-3 +zlib 1.3.1 https://zlib.net/zlib-1.3.1.tar.xz +zstd 1.5.6 https://github.com/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gz +brotli 1.1.0 https://github.com/google/brotli/archive/v1.1.0.tar.gz +libpsl 0.21.5 https://github.com/rockdaboot/libpsl/releases/download/0.21.5/libpsl-0.21.5.tar.gz +nghttp3 1.2.0 https://github.com/ngtcp2/nghttp3/releases/download/v1.2.0/nghttp3-1.2.0.tar.xz +libressl 3.9.1 https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.9.1.tar.gz +ngtcp2 1.4.0 https://github.com/ngtcp2/ngtcp2/releases/download/v1.4.0/ngtcp2-1.4.0.tar.xz +nghttp2 1.61.0 https://github.com/nghttp2/nghttp2/releases/download/v1.61.0/nghttp2-1.61.0.tar.xz +libssh2 1.11.0 https://libssh2.org/download/libssh2-1.11.0.tar.xz +cacert 2024-03-11 https://curl.se/ca/cacert-2024-03-11.pem +curl 8.7.1 https://curl.se/download/curl-8.7.1.tar.xz diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-README.url b/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-README.url new file mode 100644 index 00000000..36278f89 --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/BUILD-README.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://github.com/curl/curl-for-win diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/CHANGES.txt b/windows/libs/curl-8.7.1_7-win64-mingw/CHANGES.txt new file mode 100644 index 00000000..fa9f6873 --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/CHANGES.txt @@ -0,0 +1,11024 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + + Changelog + +Version 8.7.1 (27 Mar 2024) + +Daniel Stenberg (27 Mar 2024) + +- RELEASE-PROCEDURE: remove old release dates, add new pending ones + +Version 8.7.0 (27 Mar 2024) + +Daniel Stenberg (27 Mar 2024) + +- RELEASE-NOTES: synced + + curl 8.7.0 release + +- THANKS: new contributors from the 8.7.0 release + +- CURLOPT_POSTFIELDS.md: used for MQTT as well + + Closes #13189 + +- http: remove stale comment about rewindbeforesend + + ... because that struct field exists no more. + + Follow-up to 14bcea074a782272. + + Closes #13187 + +- DISTROS: add document with distro pointers + + Lots of organizations distribute curl packages to end users. This is a + collection of pointers to where to learn more about curl on and with + each distro. + + Assisted-by: Alan Coopersmith + Assisted-by: Andrew Kaster + Assisted-by: Andy Fiddaman + Assisted-by: Arjan van de Ven + Assisted-by: Brian Clemens + Assisted-by: chrysos349 on github + Assisted-by: Dan Fandrich + Assisted-by: Dan McDonald + Assisted-by: Gaelan Steele + Assisted-by: graywolf on github + Assisted-by: Jan Macku + Assisted-by: John Marshall + Assisted-by: Jonathan Perkin + Assisted-by: Kevin Daudt + Assisted-by: Marcus Müller + Assisted-by: MichaÅ‚ Górny + Assisted-by: Outvi V + Assisted-by: Ross Burton + Assisted-by: Sean Molenaar + Assisted-by: Till Wegmüller + Assisted-by: Viktor Szakats + Assisted-by: Winni Neessen + + Closes #13178 + +Fabian Keil (25 Mar 2024) + +- wolfSSL: do not call the stub function wolfSSL_BIO_set_init() + + Calling the function isn't necessary and causes the build + to fail when wolfSSL has been compiled with NO_WOLFSSL_STUB: + + Making all in opts + CCLD curl + ld: error: undefined symbol: wolfSSL_BIO_set_init + >>> referenced by wolfssl.c:235 (vtls/wolfssl.c:235) + >>> libcurl_la-wolfssl.o:(wolfssl_bio_cf_create) in archiv + e ../lib/.libs/libcurl.a + cc: error: linker command failed with exit code 1 (use -v to see invocat + ion) + *** Error code 1 + + Closes #13164 + +Daniel Stenberg (25 Mar 2024) + +- cmdline-opts: shorter help texts + + In an effort to increase the readability of the "--help all" output on + narrow (80 column) terminals. + + Co-authored-by: Jay Satiro + + Closes #13169 + +Matt Jolly (25 Mar 2024) + +- curl-rustls.m4: add pkg-config support to rustls detection + + Based on the existing openssl pkg-config detection, this commit tries to + use pkg-config to find `rustls` then falls back to the current approach + if that fails. + + We use the following logic: + + - if no path is provided, just use pkg-config, if it's not there we have + a problem! + - if a path is provided, try pkg-config + + if pkg-config fails, try and find rustls directly + + Closes #13179 + +Mohammadreza Hendiani (25 Mar 2024) + +- TODO: update 13.11 with more information + + Closes #13173 + +Daniel Stenberg (23 Mar 2024) + +- docs/libcurl: generate PROTOCOLS from meta-data + + Remove the PROTOCOLS section from the source files completely and + instead generate them based on the header data in the curldown files. + + It also generates TLS backend information for options marked for TLS as + protocol. + + Closes #13175 + +- CURLMOPT_MAX*: mention what happens if changed mid-transfer + + For CURLMOPT_MAXCONNECTS and CURLMOPT_MAX_HOST_CONNECTIONS + + Ref: #13158 + Closes #13176 + +- docs/libcurl: add TLS backend info for all TLS options + + All man pages that are listed to be for TLS now must also specify + exactly what TLS backends the option works for, or use All if they all + work. + + cd2nroff makes sure this is done and that the listed backends exist. + + Closes #13168 + +- docs/libcurl: cleanups + + - CURLINFO_TLS_SESSION.md: remove mention of NSS + - CURLINFO_TLS_SSL_PTR.md: remove NSS leftover + - CURLOPT_CAINFO.md: drop mention of backends not supporting this + - CURLOPT_CAPATH.md: wolfSSL also supports this + + Closes #13166 + +- docs: make each libcurl man specify protocol(s) + + The mandatory header now has a mandatory list of protocols for which the + manpage is relevant. + + Most man pages already has a "PROTOCOLS" section, but this introduces a + stricter way to specify the relevant protocols. + + cd2nroff verifies that at least one protocol is mentioned (which can be + `*`). + + This information is not used just yet, but A) the PROTOCOLS section can + now instead get generated and get a unified wording across all manpages + and B) this allows us to more reliably filter/search for protocol + specific manpages/options. + + Closes #13166 + +Stefan Eissing (21 Mar 2024) + +- http2, http3: only return CURLE_PARTIAL_FILE when bytes were received + + - should resolve spurious pytest failures when stream were reset + right after response header were received + + Clsoes #13151 + +- http: separate response parsing from response action + + - move code that triggers on end-of-response into separate function from + parsing + - simplify some headp/headerlen usage + - add `httpversion` to SingleRequest to indicate the version of the + current response + + Closes #13134 + +Daniel Stenberg (21 Mar 2024) + +- http2: remove the third (unused) argument from http2_data_done() + + Closes #13154 + +- RELEASE-NOTES: synced + +Evgeny Grin (Karlson2k) (21 Mar 2024) + +- RELEASE-NOTES: corrected + + Corrected link for item 118 + + Closes #13157 + +Daniel Stenberg (19 Mar 2024) + +- CURLOPT_INTERFACE.md: remove spurious amp, add see-also + + Closes #13149 + +Stefan Eissing (19 Mar 2024) + +- http: improve response header handling, save cpu cycles + + Saving some cpu cycles in http response header processing: + - pass the length of the header line along + - use string constant sizeof() instead of strlen() + - check line length if prefix is possible + - switch on first header char to limit checks + + Closes #13143 + +Daniel Stenberg (19 Mar 2024) + +- tool_getparam: accept a blank -w "" + + Added test 468 to verify. + + Regression from 07bcae89d5d00 (shipped in 8.6.0) + Reported-by: Thomas Pyle + Fixes #13144 + Closes #13145 + +Evgeny Grin (Karlson2k) (18 Mar 2024) + +- curl_sha512_256: work around a NetBSD bug + + Based on Michael Kaufmann analysis and suggestion + + Closes #13133 + +Stefan Eissing (18 Mar 2024) + +- http: expect 100 rework + + Move all handling of HTTP's `Expect: 100-continue` feature into a client + reader. Add sending flag `KEEP_SEND_TIMED` that triggers transfer + sending on general events like a timer. + + HTTP installs a `CURL_CR_PROTOCOL` reader when announcing `Expect: + 100-continue`. That reader works as follows: + + - on first invocation, records time, starts the `EXPIRE_100_TIMEOUT` + timer, disables `KEEP_SEND`, enables `KEEP_SEND_TIMER` and returns 0, + eos=FALSE like a paused upload. + + - on subsequent invocation it checks if the timer has expired. If so, it + enables `KEEP_SEND` and switches to passing through reads to the + underlying readers. + + Transfer handling's `readwrite()` will be invoked when a timer expires + (like `EXPIRE_100_TIMEOUT`) or when data from the server arrives. Seeing + `KEEP_SEND_TIMER`, it will try to upload more data, which triggers + reading from the client readers again. Which then may lead to a new + pausing or cause the upload to start. + + Flags and timestamps connected to this have been moved from + `SingleRequest` into the reader's context. + + Closes #13110 + +- mbedtls: fix pytest for newer versions + + Fix the expectations in pytest for newer versions of mbedtls + + Closes #13132 + +Daniel Stenberg (15 Mar 2024) + +- ipv6.md: mention IPv4 mapped addresses + + Reported-by: Josh Soref + Assisted-by: Jay Satiro + Fixes #13112 + Closes #13131 + +Stefan Eissing (15 Mar 2024) + +- http: revisit http_perhapsrewind() + + - use facilities provided by client readers better + - work also for non-uploading requests like GET/HEAD + - update documentation + + Closes #13117 + +- test 1541: verify getinfo values on first header callback + + Reported-by: chensong1211 on github + Ref: #13125 + Closes #13128 + +- TLS: start shutdown only when peer did not already close + + - When curl sees a TCP close from the peer, do not start a TLS shutdown. + TLS shutdown is a handshake and if the peer already closed the + connection, it is not interested in participating. + + Reported-by: dfdity on github + Assisted-by: Jiří Bok + Assisted-by: PÄ“teris Caune + Fixes #10290 + Closes #13087 + +Daniel Stenberg (14 Mar 2024) + +- RELEASE-NOTES: synced + +- curl: make --libcurl output better CURLOPT_*SSLVERSION + + The option is really two enums ORed together, so it needs special + attention to make the code output nice. + + Added test 1481 to verify. Both the server and the proxy versions. + + Reported-by: Boris Verkhovskiy + Fixes #13127 + Closes #13129 + +- GHA/linux: add sysctl trick to work-around GitHub runner issue + + The GitHub image runner update from 20240304.1.0 to 20240310.1 + introduces a problem for clang-14. The issue is caused by + incompatibility between llvm 14 provided in ubuntu-22.04 image and the + much newer kernel configured with high-entropy ASLR. + + As a work-around, we issue a sysctl command to lower the entropy and get + clang-14 to work again. + + URL: https://github.com/actions/runner-images/issues/9491 + + Closes #13124 + +- SPONSORS: describe the basics + + Closes #13119 + +- GOVERNANCE: document the core team + + Closes #13118 + +Jay Satiro (13 Mar 2024) + +- vquic-tls: fix the error code returned for bad CA file + + - Return CURLE_SSL_CACERT_BADFILE if wolfSSL encounters a problem + reading the cert file or path. + + This is a follow-up to the parent commit aedbbdf1. + + Reported-by: Karthikdasari0423@users.noreply.github.com + + Fixes https://github.com/curl/curl/issues/13115 + +Daniel Stenberg (12 Mar 2024) + +- vquic-tls: return appropirate errors on wolfSSL errors + + Reported-by: Dexter Gerig + Closes #13107 + +Viktor Szakats (12 Mar 2024) + +- tidy-up: one comment and EOF newlines + + Reviewed-by: Daniel Stenberg + Closes #13108 + +Daniel Stenberg (12 Mar 2024) + +- cmdline-opts: language cleanups + + Use imperative mood consistently for the first sentence describing an + option. + + "Set this" instead "tell curl to set" or "this sets..." + + Plus some extra cleanups and rephrasing. + + Closes #13106 + +- managen: remove space before protocols + + For options that are listed for specific protocols, the protocols (shown + first within parentheses) are now output without the leading space in the + manpage output. + + Closes #13105 + +Jay Satiro (12 Mar 2024) + +- mbedtls: properly cleanup the thread-shared entropy + + - Store the state of the thread-shared entropy for global init/cleanup. + + - Use curl's thread support of mbedtls for all Windows builds instead of + just when the threaded resolver is used via USE_THREADS_WIN32. + + Prior to this change on global cleanup curl builds that have curl thread + support for mbedtls freed the entropy (8b1d2298) but failed to mark that + it had been freed, which caused problems on subsequent init + transfer. + + Bug: https://github.com/curl/curl/discussions/11919#discussioncomment-8687105 + Reported-by: awesomekosm@users.noreply.github.com + + Closes https://github.com/curl/curl/pull/13071 + +Daniel Stenberg (12 Mar 2024) + +- tool_getparam: handle non-existing (out of range) short-options + + ... correctly, even when they follow an existing one without a space in + between. + + Verify with test 467 + + Follow-up to 07dd60c05b + Reported-by: Geeknik Labs + Fixes #13101 + Closes #13102 + +Stefan Eissing (11 Mar 2024) + +- lib: move 'done' parameter to SingleRequests + + A transfer may do several `SingleRequest`s for its success. This happens + regularly for authentication, follows and retries on failed connections. + The "readwrite()" calls and functions connected to those carried a `bool + *done` parameter to indicate that the current `SingleRequest` is over. + This may happen before `upload_done` or `download_done` bits of + `SingleRequest` are set. + + The problem with that is now `write_resp()` protocol handlers are + invoked in places where the `bool *done` cannot be passed up to the + caller. Instead of being a bool in the call chain, it needs to become a + member of `SingleRequest`, reflecting its state. + + This removes the `bool *done` parameter and adds the `done` bit to + `SingleRequest` instead. It adds `Curl_req_soft_reset()` for using a + `SingleRequest` in a follow up, clearing `done` and other + flags/counters. + + Closes #13096 + +- request: clarify message when request has been sent off + + Change the "uploaded and fine" message for requests without a body + + Reported-by: Karthikdasari0423 on github + Fixes #13093 + Closes #13095 + +Daniel Stenberg (11 Mar 2024) + +- RELEASE-NOTES: synced + +Stefan Eissing (9 Mar 2024) + +- lib: keep conn IP information together + + new struct ip_quadruple for holding local/remote addr+port + + - used in data->info and conn and cf-socket.c + - copy back and forth complete struct + - add 'secondary' to conn + - use secondary in reporting success for ftp 2nd connection + + Reported-by: DasKutti on github + Fixes #13084 + Closes #13090 + +Daniel Stenberg (8 Mar 2024) + +- scripts/managen: the new name and home for the manpage generator + + It was previously docs/cmdline-opts/gen.pl + + Closes #13089 + +- VULN-DISCLOSURE-POLICY.md: update detail about CVE requests + + curl is a CNA now + + Closes #13088 + +Stefan Eissing (8 Mar 2024) + +- lib: client reader polish + + - seek_func/seek_client, use transfer values only + - remove copies held in `struct connectdata`, use only + ever `data->set.seek_func` + - resolves possible issues in multiuse connections + - new mime post reader eliminates need to ever overwriting this + + - websockets, remove empty Curl_ws_done() function + + Closes #13079 + +Marcel Raad (8 Mar 2024) + +- lib1598: fix `CURLOPT_POSTFIELDSIZE` usage + + It requires a `long` argument. + + Closes https://github.com/curl/curl/pull/13085 + +Daniel Stenberg (8 Mar 2024) + +- docs/cmdline-opts: drop the curl.1 from the dist tarball + + Since it is no longer needed for building tool_hugehelp.c and all the + docs is available in readable markdown format in the tarball, the peeps + that don't want to build the manpage still do good. + + Removing it also fixes the complexity of out-of-tree builds when the + curl.1 exists in the source tree. + +- test1140/1173: extend wildcards to find curl.1 + + ... in its new build path. + + Also update the test scripts to be more precise in error messages to + help us understand CI errors better. + + Follow-up to f03c85635f35269f1 + Ref: #13029 + Closes #13083 + +- http2: minor tweaks to optimize two struct sizes + + - use BIT() instead of bool + - place the struct fields in (roughly) size order + + Closes #13082 + +- buildconf.bat: remove outdated groff/nroff use + + - don't try to generate the real hugehelp file, because it requires + curl.txt which needs a build + - don't attempt to do anything in a c-ares subdirectory + + Follow-up to f03c85635f35269 + Closes #13078 + +- http2: memory errors in the push callbacks are fatal + + Use the correct nghttp2 error code accordingly. + + Closes #13081 + +Viktor Szakats (7 Mar 2024) + +- mkhelp: rename variable to fix compiler warnings + + ``` + src\tool_operate.c(541,33): warning C4459: declaration of 'm' hides global de + claration [_bld\src\curl.vcxproj] + _bld\src\tool_hugehelp.c(8,27): + see declaration of 'm' + src\tool_paramhlp.c(307,14): warning C4459: declaration of 'm' hides global d + eclaration [_bld\src\curl.vcxproj] + src\tool_progress.c(118,16): warning C4459: declaration of 'm' hides global d + eclaration [_bld\src\curl.vcxproj] + src\tool_writeout.c(288,31): warning C4459: declaration of 'm' hides global d + eclaration [_bld\src\curl.vcxproj] + ``` + Ref: https://ci.appveyor.com/project/curlorg/curl/builds/49348159/job/51ee75c + d2n0wj6lc#L614 + + Reviewed-by: Daniel Stenberg + Closes #13077 + +Daniel Stenberg (7 Mar 2024) + +- KNOWN_BUGS: POP3 issue when reading small chunks + + Closes #12063 + +- RELEASE-NOTES: synced + +Robert Moreton (7 Mar 2024) + +- asyn-ares: fix data race warning + + - Store the c-ares version during global init. + + Prior to this change several threads could write the same data to a + static int variable at the same time. Though in practice it's not a + problem ThreadSanitizer may warn. + + Reported-by: Nikita Taranov + Assisted-by: Jay Satiro + + Fixes #13065 + Closes #13000 + +Stefan Eissing (7 Mar 2024) + +- hyper: implement unpausing via client reader + + Just a tidy up to contain 'ifdef' pollution of common + code parts with implementation specifics. + + - remove the ifdef hyper unpausing in easy.c + - add hyper client reader for CURL_CR_PROTOCOL phase + that implements the unpause method for calling + the hyper waker if it is set + + Closes #13075 + +- ngtcp2: no recvbuf for stream + + - write response data directly to the transfer via + `Curl_xfer_write_resp()` like we do in HTTP/2. + + Closes #13073 + +- docs/cmdline-opts/.gitignore: ignore curl.txt + + Closes #13076 + +Evgeny Grin (Karlson2k) (7 Mar 2024) + +- sha512_256: add support for GnuTLS and OpenSSL + + This is a follow-up for PR #12897. + + Add support for SHA-512/256 digest calculation by TLS backends. + Currently only OpenSSL and GnuTLS (actually, nettle) support + SHA-512/256. + + Closes #13070 + +- digest: add check for hashing error + + Closes #13072 + +Viktor Szakats (7 Mar 2024) + +- cmake: enable `ENABLE_CURL_MANUAL` by default + + Meaning `curl.1` and `src/tool_hugehelp.c` are built by default, + and `--manual` in curl tool is also enabled by default. + + This syncs behaviour with autotools. + + For a reproducible `curl.1`, `SOURCE_DATE_EPOCH` needs to be set + to a consistent date, e.g. the timestamp of `CHANGES`. + + A pre-built manual (e.g. the one distributed in the official source + tarball) will be ignored and rebuilt after this patch, unless + explicitly disabling this option. + + Fixes #13028 + Closes #13069 + +Stefan Eissing (7 Mar 2024) + +- http2: push headers better cleanup + + - provide common cleanup method for push headers + + Closes #13054 + +Daniel Stenberg (7 Mar 2024) + +- GIT-INFO: convert to markdown + + Closes #13074 + +Richard Levitte (7 Mar 2024) + +- cmake: fix libcurl.pc and curl-config library specifications + + Letting CMake figure out where libraries are located gives you full + paths. When generating libcurl.pc and curl-config, getting libraries as + full paths is unusual when one expects to get a list of -l. + + To meet expectations, an effort is made to convert the full paths into + -l, possibly with -L before it. + + Fixes #6169 + Fixes #12748 + Closes #12930 + +Daniel Stenberg (7 Mar 2024) + +- test463: HTTP with -d @file with file containing CR, LF and null byte + +- paramhlp: fix CRLF-stripping files with "-d @file" + + All CR and LF bytes should be stripped, as documented, and all other + bytes are inluded in the data. Starting now, it also excludes null bytes + as they would otherwise also cut the data short. + + Reported-by: Simon K + Fixes #13063 + Closes #13064 + +Viktor Szakats (7 Mar 2024) + +- cmake: fix `CURL_WINDOWS_SSPI=ON` with Schannel disabled + + Prior to this change `CURL_WINDOWS_SSPI` was accidentally forced `OFF` + when building without the Schannel TLS backend. + + This in turn may have caused Kerberos, SPNEGO and SSPI features + disappearing even with `CURL_WINDOWS_SSPI=ON` set. + + This patch fixes it by using the `CURL_USE_SCHANNEL` setting as a + default for `CURL_WINDOWS_SSPI`, but allowing a manual override. + + Also update the option text to better tell its purpose. + + Thanks-to: Andreas Loew + Reviewed-by: Daniel Stenberg + Ref: #13056 + Closes #13061 + +Jay Satiro (6 Mar 2024) + +- KNOWN_BUGS: FTPS server compatibility on Windows with Schannel + + - Remove "2.12 FTPS with Schannel times out file list operation" + + - Remove "7.12 FTPS directory listing hangs on Windows with Schannel" + + - Add "7.12 FTPS server compatibility on Windows with Schannel" + + This change adds a more generic bug description that explains FTPS with + the latest curl and Schannel is not widely used and may have more bugs + than other TLS backends. + + The two removed FTPS Schannel bugs can't be reproduced any longer and + were likely fixed by 24d6c288. + + Ref: https://github.com/curl/curl/issues/5284 + Ref: https://github.com/curl/curl/issues/9161 + Ref: https://github.com/curl/curl/issues/12894 + + Closes https://github.com/curl/curl/pull/13032 + +- trace-config.md: remove the mutexed options list + + - Remove the rendered manpage message that says: + "[--trace-config] is mutually exclusive to --trace and -v, --verbose". + + Actually it can be used with either of those options, which are mutually + exclusive to each other but not to --trace-config. + + Ref: https://curl.se/docs/manpage.html#--trace-config + + Closes https://github.com/curl/curl/pull/13031 + +Daniel Stenberg (6 Mar 2024) + +- mkhelp: simplify the generated hugehelp program + + Use a plain array and puts() every line, also allows us to provide the + strings without ending newlines. + + - merge blank lines into the next one as a prefixed newline. + - turn eight consecutive spaces into a tab (since they can only be on the + left side of text) + - the newly generated tool_hugehelp is 3K lines shorter and 50K smaller + - modifies the top logo layout a little by reducing the indent + + Closes #13047 + +- docs: ascii version of manpage without nroff + + Create ASCII version of manpage without nroff + + - build src/tool_hugegelp.c from the ascii manpage + - move the the manpage and the ascii version build to docs/cmdline-opts + - remove all use of nroff from the build process + - should make the build entirely reproducible (by avoiding nroff) + + - partly reverts 2620aa9 to build libcurl option man pages one by one + in cmake because the appveyor builds got all crazy until I did + + The ASCII version of the manpage + + - is built with gen.pl, just like the manpage is + - has a right-justified column making the appearance similar to the previous + version + - uses a 4-space indent per level (instead of the old version's 7) + - does not do hyphenation of words (which nroff does) + + History + + We first made the curl build use nroff for building the hugehelp file in + December 1998, for curl 5.2. + + Closes #13047 + +Stefan Eissing (6 Mar 2024) + +- lib: add `void *ctx` to reader/writer instances + + - `struct Curl_cwriter` and `struct Curl_creader` now carry a + `void *ctx` member that points to the instance as allocated. + - using `r->ctx` and `w->ctx` as pointer to the instance specific + struct that has been allocated + + Reported-by: Rudi Heitbaum + Fixes #13035 + Closes #13059 + +- http: fix dead code in setting post client reader + + - postsize was always 0, thus the check's else never happened + after the mime client reader was introduced + + Follow-up to 0ba47146f7ff3d + Closes #13060 + +- http2: fix push discard + + - fix logic in discarding a failed pushed stream so that + stream context is properly cleaned up + + Closes #13055 + +- transfer.c: break receive loop in speed limited transfers + + - the change breaks looping in transfer.c receive for transfers that are + speed limited on having gotten *some* bytes. + - the overall speed limit timing is done in multi.c + + Reported-by: Dmitry Karpov + Bug: https://curl.se/mail/lib-2024-03/0001.html + Closes #13050 + +- mime: add client reader + + Add `mime` client reader. Encapsulates reading from mime parts, getting + their length, rewinding and unpausing. + + - remove special mime handling from sendf.c and easy.c + - add general "unpause" method to client readers + - use new reader in http/imap/smtp + - make some mime functions static that are now only used internally + + In addition: + - remove flag 'forbidchunk' as no longer needed + + Closes #13039 + +Daniel Stenberg (5 Mar 2024) + +- RELEASE-NOTES: synced + +- TODO: remove "build HTTP/3 with OpenSSL and nghttp3 using cmake" + + Follow-up to 8e741644a229c37 + +Tal Regev (5 Mar 2024) + +- cmake: add USE_OPENSSL_QUIC support + + Closes #13034 + +Stefan Eissing (5 Mar 2024) + +- TIMER_STARTTRANSFER: set the same for everyone + + - set TIMER_STARTTRANSFER on seeing the first response bytes + in the download client writer, not coming from a CONNECT + - initialized the timer the same way for all protocols + - remove explicit setting of TIMER_STARTTRANSFER in file.c + and c-hyper.c + + Closes #13052 + +Michael Kaufmann (5 Mar 2024) + +- http: better error message for HTTP/1.x response without status line + + If a response without a status line is received, and the connection is + known to use HTTP/1.x (not HTTP/0.9), report the error "Invalid status + line" instead of "Received HTTP/0.9 when not allowed". + + Closes #13045 + +Viktor Szakats (5 Mar 2024) + +- KNOWN_BUGS: fix typo + + Reviewed-by: Daniel Stenberg + Closes #13051 + +Sebastian Neubauer (5 Mar 2024) + +- smpt: fix starttls + + In cases where the connection was fast, curl sometimes failed to open a + connection. This fixes a regression of c2d973627bab12abc5486a3f3. + + The regression triggered in these steps: + + 1. Create an smtp connection + 2. Use STARTTLS + 3. Receive the response + 4. We are inside the loop in `smtp_statemachine`, calling + `smtp_state_starttls_resp` + 5. In the good flow, we exit the loop, re-enter `smtp_statemachine` and + run `smtp_perform_upgrade_tls` at the start of the function. + + In the bad flow, we stay in the while loop, calling + `Curl_pp_readresp`, which reads part of the TLS handshake and things + go wrong. + + The reason is that `Curl_pp_moredata` changed behavior and always + returns `true`, so we stay in the loop in `smtp_statemachine`. With a + slow connection `Curl_pp_readresp` cannot read new data and returns + `CURL_AGAIN`, so we leave the loop and re-enter `smtp_statemachine`. + + With a fast connection, `Curl_pp_readresp` reads new data from the tcp + connection, which is part of the TLS handshake. + + The fix is in `Curl_pp_moredata`, which needs to take the final line + into account and return `false` if only the final line is stored. + + Closes #13048 + +Stefan Eissing (5 Mar 2024) + +- lib: enhance client reader resume + rewind + + - update client reader documentation + - client reader, add rewind capabilities + - tell creader to rewind on next start + - Curl_client_reset() will keep reader for future rewind if requested + - add Curl_client_cleanup() for freeing all resources independent of + rewinds + - add Curl_client_start() to trigger rewinds + - move rewind code from multi.c to sendf.c and make part of + "cr-in"'s implementation + - http, move the "resume_from" handling into the client readers + - the setup of a HTTP request is reshuffled to follow: + * determine method, target, auth negotiation + * install the client reader(s) for the request, including crlf + conversions and "chunked" encoding + * apply ranges to client reader + * concat request headers, upgrades, cookies, etc. + * complete request by determining Content-Length of installed + readers in combination with method + * send + - add methods for client readers to + * return the overall length they will generate (or -1 when unknown) + * return the amount of data on the CLIENT level, so that + expect-100 can decide if it want to apply itself + * set a "resume_from" offset or fail if unsupported + - struct HTTP has become largely empty now + - rename `Client_reader_*` to `Curl_creader_*` + + Closes #13026 + +Viktor Szakats (5 Mar 2024) + +- openssl-quic: fix BIO leak and Windows warning + + Caused by an accidentally duplicated line in + d6825df334def106f735ce7e0c1a2ea87bddffb0. + + ``` + .../lib/vquic/curl_osslq.c:1095:30: warning: implicit conversion loses intege + r precision: 'curl_socket_t' (aka 'unsigned long long') to 'int' [-Wshorten-6 + 4-to-32] + 1095 | bio = BIO_new_dgram(ctx->q.sockfd, BIO_NOCLOSE); + | ~~~~~~~~~~~~~ ~~~~~~~^~~~~~ + 1 warning and 2 errors generated. + ``` + + Reviewed-by: Stefan Eissing + Closes #13043 + +- openssl-quic: fix unity build, casing, indentation + + - rename static functions to avoid duplicate symbols in unity mode. + - windows -> Windows/window in error message and comment. + - fix indentation. + + Reviewed-by: Stefan Eissing + Closes #13044 + +Daniel Stenberg (5 Mar 2024) + +- gen.pl: make the "manpageification" faster + + The function that replaces occurances of "--longoption" with "-Z, + --longoption" etc with the proper highlight applied, no longer loops + over the options. + + Closes #13041 + +- CONTRIBUTE: update the section on documentation format + + ... since most of it is markdown now. + + Closes #13046 + +- smtp: free a temp resource + + The returned address needs to be freed. + + Follow-up to e3905de8196d67b89df1602feb84c1f993211b20 + Spotted by Coverity + + Closes #13038 + +- _VARIABLES.md: improve the description + + Closes #13040 + +dependabot[bot] (4 Mar 2024) + +- build(deps): bump fsfe/reuse-action from 2 to 3 + + Bumps [fsfe/reuse-action](https://github.com/fsfe/reuse-action) from 2 to 3. + - [Release notes](https://github.com/fsfe/reuse-action/releases) + - [Commits](https://github.com/fsfe/reuse-action/compare/v2...v3) + + --- + updated-dependencies: + - dependency-name: fsfe/reuse-action + dependency-type: direct:production + update-type: version-update:semver-major + ... + + Signed-off-by: dependabot[bot] + +Stefan Eissing (4 Mar 2024) + +- pytest: adapt to API change + + - pytest has changed the signature of the hook pytest_report_header() + for some obscure reason and that change landed in our CI now + + - remove the changed param that we never used anyway + + Closes #13037 + +Daniel Stenberg (4 Mar 2024) + +- cookie: if psl fails, reject the cookie + + A libpsl install without data and no built-in database is now considered + bad enough to reject all cookies since they cannot be checked. It is + somewhat of a user error, but still. + + Reported-by: Dan Fandrich + Closes #13033 + +Stefan Eissing (4 Mar 2024) + +- lib: further send/upload handling polish + + - Move all the "upload_done" handling to request.c + + - add possibility to abort sending of a request + - add `Curl_req_done_sending()` for checks + - transfer.c: readwrite_upload() now clean + + - removing data->state.ulbuf and data->req.upload_fromhere + + - as well as data->req.upload_present + - set data->req.upload_done on having read all from + the client and completely flushed the send buffer + + - tftp, remove setting of data->req.upload_fromhere + + - serves no purpose as `upload_present` is not set + and the data itself is directly `sendto()` anyway + + - smtp, make upload EOB conversion a client reader + - xfer_ulbuf addition + + - add xfer_ulbuf for borrowing, similar to xfer_buf + - use in file upload + - use in c-hyper body sending + + - h1-proxy, remove init of data->state.uilbuf that is never used + - smb, add own send_buf instead of using data->state.ulbuf + + Closes #13010 + +Daniel Stenberg (4 Mar 2024) + +- RELEASE-NOTES: synced + +kpcyrd (3 Mar 2024) + +- rustls: fix two warnings related to number types + + Reported-by: Gisle Vanem + Follow-up to #12989 + Closes #13017 + +Stefan Eissing (3 Mar 2024) + +- bufq: writing into a softlimit queue cannot be partial + + - when unable to obtain a new chunk on a softlimit bufq, + this is an allocation error and needs to be reported as + such. + - writes into a soflimit bufq never must be partial success + + Reported-by: Dan Fandrich + Fixes #13020 + Closes #13023 + +Dan Fandrich (2 Mar 2024) + +- configure: Don't build shell completions when disabled + + With the recent changes to completion file building, the files were + built always and only installation was selectively disabled. Now, when + they are disabled they aren't even built, avoiding a build-time error in + environments where it's not possible to run the curl binary that was + just created (e.g. if library paths were not set up correctly). + + Follow-up to 0f7aba83c + + Reported-by: av223119 on github + Fixes #13027 + Closes #13030 + +Jay Satiro (2 Mar 2024) + +- cmdline-opts/_EXITCODES: sync with libcurl-errors + + - Add error code 100 (CURLE_TOO_LARGE) to the list of error codes that + can be returned by the curl tool. + + Closes https://github.com/curl/curl/pull/13015 + +Stefan Eissing (1 Mar 2024) + +- hyper: disable test1598 due to lack of trailer support + + Follow-up to 50838095 + + Closes #13016 + +Dan Fandrich (1 Mar 2024) + +- ftp: Mark a const buffer as const + +- appveyor: Properly skip if only CircleCI is changed + +- docs: Update minimal binary size in INSTALL.md + + Include more options to reduce binary size. + +- configure: Don't make shell completions without perl + + The code that attempted to skip building the shell completions didn't + work properly and tried to build them even if perl wasn't available. + This step, as well as the install step, is now properly skipped without + perl. + + Follow-up to 89733e2dd + + Closes #13022 + +RainRat (1 Mar 2024) + +- misc: Fix typos in docs and lib + + This fixes miscellaneous typos and duplicated words in the docs, lib + and test comments and a few user facing errorstrings. + + Author: RainRat on Github + Reviewed-by: Daniel Gustafsson + Reviewed-by: Dan Fandrich + Closes: #13019 + +Dan Fandrich (29 Feb 2024) + +- configure: build & install shell completions when enabled + + The --with-fish-functions-dir and --with-zsh-functions-dir options + currently have no effect on a normal build because the scripts/ directory + where they're used is not built. Add scripts/ to a normal build and + change the completion options to default to off to preserve the existing + behaviour. + + Closes: #12906 + +- github/labeler: improve the match patterns + +Stefan Eissing (28 Feb 2024) + +- tests: add test1598 for POST with trailers + + - test POST fields with trailers and chunked encoding + + Ref: #12938 + Closes #13009 + +Daniel Stenberg (28 Feb 2024) + +- cmdline-opts/_VERSION: provide %VERSION correctly + + ... so that it does not get included verbatim in the output. Fixes a + regression shipped in 8.6.0. + + Also fix a format mistake in form.md + + Closes #13008 + +Stefan Eissing (28 Feb 2024) + +- lib: Curl_read/Curl_write clarifications + + - replace `Curl_read()`, `Curl_write()` and `Curl_nwrite()` to + clarify when and at what level they operate + - send/recv of transfer related data is now done via + `Curl_xfer_send()/Curl_xfer_recv()` which no longer has + socket/socketindex as parameter. It decides on the transfer + setup of `conn->sockfd` and `conn->writesockfd` on which + connection filter chain to operate. + - send/recv on a specific connection filter chain is done via + `Curl_conn_send()/Curl_conn_recv()` which get the socket index + as parameter. + - rename `Curl_setup_transfer()` to `Curl_xfer_setup()` for + naming consistency + - clarify that the special CURLE_AGAIN hangling to return + `CURLE_OK` with length 0 only applies to `Curl_xfer_send()` + and CURLE_AGAIN is returned by all other send() variants. + - fix a bug in websocket `curl_ws_recv()` that mixed up data + when it arrived in more than a single chunk (to be made + into a sperate PR, also) + + Added as documented [in + CLIENT-READER.md](https://github.com/curl/curl/blob/5b1f31dfbab8aef467c419c68 + aa06dc738cb75d4/docs/CLIENT-READERS.md). + + - old `Curl_buffer_send()` completely replaced by new `Curl_req_send()` + - old `Curl_fillreadbuffer()` replaced with `Curl_client_read()` + - HTTP chunked uploads are now formatted in a client reader added when + needed. + - FTP line-end conversions are done in a client reader added when + needed. + - when sending requests headers, remaining buffer space is filled with + body data for sending in "one go". This is independent of the request + body size. Resolves #12938 as now small and large requests have the + same code path. + + Changes done to test cases: + + - test513: now fails before sending request headers as this initial + "client read" triggers the setup fault. Behaves now the same as in + hyper build + - test547, test555, test1620: fix the length check in the lib code to + only fail for reads *smaller* than expected. This was a bug in the + test code that never triggered in the old implementation. + + Closes #12969 + +Daniel Gustafsson (28 Feb 2024) + +- curldown: Fix email address in Copyright + + The curldown conversion accidentally replaced daniel@haxx.se with + just daniel.se. This reverts back to the proper email address in + the curldown docs as well as in a few other stray places where it + was incorrect (while unrelated to curldown). + + Reviewed-by: Daniel Stenberg + Closes: #12997 + +Daniel Stenberg (28 Feb 2024) + +- getparam: make --ftp-ssl work again + + Follow-up to 9e4e527 which accidentally broke it + + Reported-by: Jordan Brown + Fixes #13006 + Closes #13007 + +- KNOWN_BUGS: IMAPS connection fails with rustls error + + Closes #10457 + +- KNOWN_BUGS: FTPS upload, FileZilla, GnuTLS and close_notify + + Closes #11383 + +- KNOWN_BUGS: Implicit FTPS upload timeout + + Closes #11720 + +- KNOWN_BUGS: HTTP/2 prior knowledge over proxy + + Closes #12641 + +- TODO: build HTTP/3 with OpenSSL and nghttp3 using cmake + + Closes #12988 + +- TODO: Select signature algorithms + + Closes #12982 + +- examples: use present tense in comments + + remove "will" and some other word fixes + + Closes #13003 + +- docs: more language cleanups + + - present tense + - avoid bad words + + Closes #13003 + +Daniel Gustafsson (27 Feb 2024) + +- setopt: Fix disabling all protocols + + When disabling all protocols without enabling any, the resulting + set of allowed protocols remained the default set. Clearing the + allowed set before inspecting the passed value from --proto make + the set empty even in the errorpath of no protocols enabled. + + Co-authored-by: Dan Fandrich + Reported-by: Dan Fandrich + Reviewed-by: Daniel Stenberg + Closes: #13004 + +Andreas Kiefer (27 Feb 2024) + +- fopen: fix narrowing conversion warning on 32-bit Android + + This was fixed in commit 06dc599405f, but came back in commit + 03cb1ff4d62. + + When building for 32-bit ARM or x86 Android, `st_mode` is defined as + `unsigned int` instead of `mode_t`, resulting in a + `-Wimplicit-int-conversion` clang warning because `mode_t` is + `unsigned short`. Add a cast to silence the warning, but only for + 32-bit Android builds, because other architectures and platforms are + not affected. + + Ref: https://android.googlesource.com/platform/bionic/+/refs/tags/ndk-r25c/li + bc/include/sys/stat.h#86 + Closes https://github.com/curl/curl/pull/12998 + +Stefan Eissing (27 Feb 2024) + +- lib: Curl_read/Curl_write clarifications + + - replace `Curl_read()`, `Curl_write()` and `Curl_nwrite()` to + clarify when and at what level they operate + - send/recv of transfer related data is now done via + `Curl_xfer_send()/Curl_xfer_recv()` which no longer has + socket/socketindex as parameter. It decides on the transfer + setup of `conn->sockfd` and `conn->writesockfd` on which + connection filter chain to operate. + - send/recv on a specific connection filter chain is done via + `Curl_conn_send()/Curl_conn_recv()` which get the socket index + as parameter. + - rename `Curl_setup_transfer()` to `Curl_xfer_setup()` for + naming consistency + - clarify that the special CURLE_AGAIN hangling to return + `CURLE_OK` with length 0 only applies to `Curl_xfer_send()` + and CURLE_AGAIN is returned by all other send() variants. + - fix a bug in websocket `curl_ws_recv()` that mixed up data + when it arrived in more than a single chunk + + The method for sending not just raw bytes, but bytes that are either + "headers" or "body". The send abstraction stack, to to bottom, now is: + + * `Curl_req_send()`: has parameter to indicate amount of header bytes, + buffers all data. + * `Curl_xfer_send()`: knows on which socket index to send, returns + amount of bytes sent. + * `Curl_conn_send()`: called with socket index, returns amount of bytes + sent. + + In addition there is `Curl_req_flush()` for writing out all buffered + bytes. + + `Curl_req_send()` is active for requests without body, + `Curl_buffer_send()` still being used for others. This is because the + special quirks need to be addressed in future parts: + + * `expect-100` handling + * `Curl_fillreadbuffer()` needs to add directly to the new + `data->req.sendbuf` + * special body handlings, like `chunked` encodings and line end + conversions will be moved into something like a Client Reader. + + In functions of the pattern `CURLcode xxx_send(..., ssize_t *written)`, + replace the `ssize_t` with a `size_t`. It makes no sense to allow for negativ + e + values as the returned `CURLcode` already specifies error conditions. This + allows easier handling of lengths without casting. + + Closes #12964 + +Daniel Stenberg (27 Feb 2024) + +- multi: make add_handle free any multi_easy + + If the easy handle that is being added to a multi handle has previously + been used for curl_easy_perform(), there is a private multi handle here + that we can kill off. While it flushes some caches etc for the easy + handle would it be used for an easy interface transfer again after being + used in the multi stack, this cleanup simplifies behavior and uses less + memory. + + Closes #12992 + +- docs: use present tense + + avoid "will", detect "will" as a bad word in the CI + + Also line wrapped a bunch of paragraphs + + Closes #13001 + +- CURLOPT_SSL_CTX_FUNCTION.md: no promises of lifetime after return + + ... and cleanup other language. + + Closes #12999 + +Stefan Eissing (27 Feb 2024) + +- lib: send rework + + Curl_read/Curl_write clarifications + + - replace `Curl_read()`, `Curl_write()` and `Curl_nwrite()` to 1clarify + when and at what level they operate + + - send/recv of transfer related data is now done via + `Curl_xfer_send()/Curl_xfer_recv()` which no longer has + socket/socketindex as parameter. It decides on the transfer setup of + `conn->sockfd` and `conn->writesockfd` on which connection filter + chain to operate. + + - send/recv on a specific connection filter chain is done via + `Curl_conn_send()/Curl_conn_recv()` which get the socket index as + parameter. + + - rename `Curl_setup_transfer()` to `Curl_xfer_setup()` for naming + consistency + + - clarify that the special CURLE_AGAIN handling to return `CURLE_OK` + with length 0 only applies to `Curl_xfer_send()` and CURLE_AGAIN is + returned by all other send() variants. + + SingleRequest reshuffling + + - move functions into request.[ch] + - differentiate between reset and free + - add Curl_req_done() to perform last actions + - add a send `bufq` to SingleRequest for future use in keeping upload data + + Closes #12963 + +Daniel Stenberg (26 Feb 2024) + +- RELEASE-NOTES: synced + +- http_chunks: remove unused 'endptr' variable + + Closes #12996 + +Louis Solofrizzo (26 Feb 2024) + +- lib: initialize output pointers to NULL before calling strto[ff,l,ul] + + In order to make MSAN happy: + + ==2200945==WARNING: MemorySanitizer: use-of-uninitialized-value + #0 0x596f3b3ed246 in curlx_strtoofft [...]/libcurl/src/lib/strtoofft.c:23 + 9:11 + #1 0x596f3b402156 in Curl_httpchunk_read [...]/libcurl/src/lib/http_chunk + s.c:149:12 + #2 0x596f3b348550 in readwrite_data [...]/libcurl/src/lib/transfer.c:607: + 11 + [...] + + ==2202041==WARNING: MemorySanitizer: use-of-uninitialized-value + #0 0x5a3fab66a72a in Curl_parse_port [...]/libcurl/src/lib/urlapi.c:547:8 + #1 0x5a3fab650645 in parse_authority [...]/libcurl/src/lib/urlapi.c:796:1 + 2 + #2 0x5a3fab6740f6 in parseurl [...]/libcurl/src/lib/urlapi.c:1176:16 + #3 0x5a3fab664fc5 in parseurl_and_replace [...]/libcurl/src/lib/urlapi.c: + 1342:12 + [...] + + ==2202320==WARNING: MemorySanitizer: use-of-uninitialized-value + #0 0x569076a0d6b0 in ipv4_normalize [...]/libcurl/src/lib/urlapi.c:683:12 + #1 0x5690769f2820 in parse_authority [...]/libcurl/src/lib/urlapi.c:803:1 + 0 + #2 0x569076a160f6 in parseurl [...]/libcurl/src/lib/urlapi.c:1176:16 + #3 0x569076a06fc5 in parseurl_and_replace [...]/libcurl/src/lib/urlapi.c: + 1342:12 + [...] + + Signed-off-by: Louis Solofrizzo + Closes #12995 + +Stefan Eissing (26 Feb 2024) + +- lib: move client writer into own source + + Refactoring of the client writer that passes the data to the + client/application's callback functions. + + - split out into own source cw-out.[ch] from sendf.c + + - move tempwrite and tempcount from data->state into the context of the + client writer + + - redesign the 3 tempwrite dynbufs as a linked list of dynbufs. On + paused transfers, this allows to "record" interleaved HEADER/BODY + chunks to be "played back" in the same order on unpausing. + + - keep the overall size limit of all buffered data to DYN_PAUSE_BUFFER. + On exceeding that, return CURLE_TOO_LARGE instead of + CURLE_OUT_OF_MEMORY as before. + + - add method to be called when a transfer is DONE to allow writing of + any data still buffered + + - when paused, record HEADER writes exactly as they come for later + playback. HEADERs are documented to be written one-by-one. + + Closes #12898 + +- urldata: move authneg bit from conn to Curl_easy + + - from `conn->bits.authneg` to `data->req.authneg` + - this is a property of the request about to be made + and not a property of the connection + - in multiuse connections, transfer could step on each others + toes here potentially. + + Closes #12949 + +- c-hyper: add header collection writer in hyper builds + + Closes #12880 + +- http: move headers collecting to writer + + - add a client writer that does "push" response + headers written to the client if the headers api + is enabled + - remove special handling in sendf.c + - needs to be installed very early on connection + setup to catch CONNECT response headers + + Closes #12880 + +- sendf: Curl_client_write(), make passed in buf const + +MichaÅ‚ Antoniak (26 Feb 2024) + +- lib: remove curl_mimepart object when CURL_DISABLE_MIME + + Remove curl_mimepart object from UserDefined structure when + CURL_DISABLE_MIME flag is active. Reduce size of UserDefined structure. + + Also remove unreachable code: when CURL_DISABLE_MIME is set, httpreq can + never have HTTPREQ_POST_MIME value and the same goes for the + CURL_DISABLE_FORM_API flag and the HTTPREQ_POST_FORM value + + Closes #12948 + +kpcyrd (26 Feb 2024) + +- rustls: make curl compile with 0.12.0 + + Closes #12989 + +Daniel Stenberg (26 Feb 2024) + +- strtoofft: fix the overflow check + + ... to not rely on wrapping, since it is an undefined behavior that is + not what always might happen. This is in our private strtoff() parser + function, used only on platforms without a native version. + + Reported-by: vulnerabilityspotter on hackerone + Closes #12990 + +- libssh/libssh2: return error on too big range + + If trying to get the range 0 - 2^63 and the remote file is 2^63 bytes or + larger. + + Fixes #12983 + Closes #12984 + +Scott Talbert (24 Feb 2024) + +- setopt: fix check for CURLOPT_PROXY_TLSAUTH_TYPE value + + Prior to this change CURLOPT_PROXY_TLSAUTH_TYPE would return + CURLE_BAD_FUNCTION_ARGUMENT on any type other than NULL. Since there is + only one type of TLS auth and it is also the default (SRP) the TLS auth + would work anyway. + + Closes https://github.com/curl/curl/pull/12981 + +Jay Satiro (24 Feb 2024) + +- mprintf: fix format prefix I32/I64 for windows compilers + + - Support I32 & I64 (eg: %I64d) for all Win32 builds. + + Prior to this change mprintf support for the I format prefix, which is a + Microsoft extension, was dependent on the compiler used. + + When Borland compiler support was removed in fd7ef00f the prefix was + then no longer supported for that compiler; however since it's still + possible to build with Borland I'm restoring support for the prefix in + this way. + + Reported-by: PaweÅ‚ Witas + + Fixes https://github.com/curl/curl/issues/12944 + Closes https://github.com/curl/curl/pull/12950 + +Daniel Stenberg (23 Feb 2024) + +- cd2nroff: gen: make `\>` in input to render as plain '>' in output + + The same (copy and pasted) fix/mistake as in gen.pl + +- gen: make `\>` in input to render as plain '>' in output + + Reported-by: Gisle Vanem + Fixes #12977 + Closes #12978 + +Fabrice Fontaine (23 Feb 2024) + +- configure.ac: find libpsl with pkg-config + + Find libpsl with pkg-config to avoid static build failures. + + Ref: http://autobuild.buildroot.org/results/1fb15e1a99472c403d0d3b1a688902f32 + e78d002 + + Signed-off-by: Fabrice Fontaine + Closes #12947 + +Daniel Stenberg (23 Feb 2024) + +- BUG-BOUNTY.md: clarify that the curl security team decides + + Closes #12975 + +- THANKS: add bug reporter from #740 + + Ref: https://github.com/curl/curl/issues/740 + +Stefan Eissing (22 Feb 2024) + +- multi: fix multi_sock handling of select_bits + + - OR the event bitmask to data->state.select_bits instead of overwriting + them. They are cleared again on use. + + Reported-by: 5533asdg on github + Fixes #12971 + Closes #12972 + +Daniel Stenberg (22 Feb 2024) + +- curlver: bump to 8.7.0 for next release + +- RELEASE-NOTES: synced + +- write-out: add '%{proxy_used}' + + Returns 1 if the previous transfer used a proxy, otherwise 0. Useful to + for example determine if a `NOPROXY` pattern matched the hostname or + not. + + Extended test 970 and 972 + +- CURLINFO_USED_PROXY: return bool whether the proxy was used + + Adds test536 to verify + + Closes #12719 + +- sha512_256: remove the cast macro, minor language/format edits + + Follow-up to cbe41d151d6a100c + + Closes #12966 + +Stefan Eissing (20 Feb 2024) + +- DoH: add trace configuration + + - refs #12397 where it is dicussed how to en-/disable verbose output + of DoH operations + - introducing `struct curl_trc_feat` to track a curl feature for + tracing + - adding `data->state.feat` optionally pointing to the feature a + transfer belongs to + - adding trace functions and verbosity checks on features + - using trace feature in DoH code + - documenting `doh` as feature for `--trace-config` + + Closes #12411 + +- websocket: fix curl_ws_recv() + + - when data arrived in several chunks, the collection into + the passed buffer always started at offset 0, overwriting + the data already there. + + adding test_20_07 to verify fix + + - debug environment var CURL_WS_CHUNK_SIZE can be used to + influence the buffer chunk size used for en-/decoding. + + Closes #12945 + +Evgeny Grin (Karlson2k) (20 Feb 2024) + +- digest: support SHA-512/256 + + Also fix the tests. New implementation tested with GNU libmicrohttpd. + The new numbers in tests are real SHA-512/256 numbers (not just some + random ;) numbers ). + +- tests: add SHA-512/256 unit test + +- SHA-512/256: implement hash algorithm + + Closes #12897 + +- curl_setup.h: add curl_uint64_t internal type + + The unsigned version of curl_off_t basically + +Daniel Stenberg (20 Feb 2024) + +- docs: dist curl*.1 and install without perl + + Drop docs/mk-ca-bundle.1 from the tarball. It can be generated at will. + + Closes #12959 + Fixes #12921 + Reported-by: Michael Forney + +Stefan Eissing (20 Feb 2024) + +- OpenSSL QUIC: adapt to v3.3.x + + - set our idle timeout as transport parameter + - query negotiated idle timeout for connection alive checks + - query number of available bidi streams on a connection + - use write_ex2 with SSL_WRITE_FLAG_CONCLUDE to signal + EOF on last chunk write, so stream close does not + require an additional QUIC packet + + Closes #12933 + +Ramiro Garcia (19 Feb 2024) + +- MANUAL.md: fix typo + + Closes #12965 + +Daniel Stenberg (19 Feb 2024) + +- BINDINGS: add mcurl, the python binding + + Ref: #12956 + Closes #12962 + +- mk-ca-bundle.md: cleanups and polish + + Closes #12958 + +- spellcheck.yml: remove .1/.3 handling, clean all man page .md files + + Since we generate all .1 and .3 files from markdown now, we can limit + the spellcheck to the markdown versions only. + + Closes #12960 + +- libcurl-docs: cleanups + + CURLMOPT_SOCKETDATA.md: fix typo + CURLMOPT_TIMERDATA.md: fix typo + CURLOPT_COOKIELIST.m: quote strings + CURLOPT_PREREQFUNCTION.md: quote variable names + CURLOPT_TCP_NODELAY.md: rephrased to please spell checker + CURLOPT_WILDCARDMATCH.md: rephrased + libcurl-tutorial.md: use correct option name + curl_global_init_mem.md: quote headers + curl_easy_getinfo.md: use correct symbol names in headers + curl_global_trace.md: quote some headers + curl_ws_meta.md: quote struct field names + libcurl-env.md: quote headers + +- cd2nroff: remove backticks from titles + +- RELEASE-NOTES: synced + +Stefan Eissing (18 Feb 2024) + +- http_chunks: fix the accounting of consumed bytes + + Prior to this change chunks were handled correctly although in verbose + mode libcurl could incorrectly warn of "Leftovers after chunking" even + if there were none. + + Reported-by: Michael Kaufmann + + Fixes https://github.com/curl/curl/issues/12937 + Closes https://github.com/curl/curl/pull/12939 + +- file: use xfer buf for file:// transfers + + - For file:// transfers use the multi handle's transfer buffer for + up- and downloads. + + Prior to this change a6c9a33 (precedes 8.6.0) changed the file:// + transfers to use a smaller stack based buffer, and that caused a + significant performance decrease in Windows. + + Bug: https://github.com/curl/curl/issues/12750#issuecomment-1920103086 + Reported-by: edmcln@users.noreply.github.com + + Closes https://github.com/curl/curl/pull/12932 + +Karthikdasari0423 (18 Feb 2024) + +- HTTP3.md: always run nghttp3 submodule init + + - For consistency change all 'build nghttp3' commands to run submodule + init after cloning, even if the branch does not have submodules. + + Follow-up to 5a4b2f93 and 4f794558. + + Closes https://github.com/curl/curl/pull/12928 + +LeeRiva (18 Feb 2024) + +- CURLOPT_POSTQUOTE.md: fix typo + + Closes https://github.com/curl/curl/pull/12926 + +Evgeny Grin (Karlson2k) (18 Feb 2024) + +- checksrc.pl: fix handling .checksrc with CRLF + + - When parsing .checksrc chomp the (CR)LF line ending. + + Prior to this change on Windows checksrc.pl would not process the + symbols in .checksrc properly, since many git repos in Windows use auto + crlf to check out files with CRLF line endings. + + Closes https://github.com/curl/curl/pull/12924 + +Richard Levitte (18 Feb 2024) + +- cmake: fix install for older CMake versions + + - Generate the docs install list by using a foreach loop instead of + LIST:TRANSFORM since older CMake can't handle the latter. + + Reported-by: Dan Fandrich + + Fixes https://github.com/curl/curl/issues/12920 + Closes https://github.com/curl/curl/pull/12922 + +Stefan Eissing (16 Feb 2024) + +- vtls: fix tls proxy peer verification + + - When verifying a proxy certificate for an ip address, use the correct + ip family. + + Prior to this change the "connection" ip family was used, which was not + necessarily the same. + + Reported-by: HsiehYuho@users.noreply.github.com + + Fixes https://github.com/curl/curl/issues/12831 + Closes https://github.com/curl/curl/pull/12931 + +Dan Fandrich (15 Feb 2024) + +- CI: Bump the Circle CI base Ubuntu image to the latest 20.04 + + The previous ones are going to be removed soon, plus the new ones + include all the fixes since then. + +Jay Satiro (13 Feb 2024) + +- transfer: improve Windows SO_SNDBUF update limit + + - Change the 1 second SO_SNDBUF update limit from per transfer to per + connection. + + Prior to this change many transfers over the same connection could cause + many SO_SNDBUF updates made to that connection per second, which was + unnecessary. + + Closes https://github.com/curl/curl/pull/12911 + +- schannel: fix hang on unexpected server close + + - Treat TLS connection close (either due to a close_notify from the + server or just closed due to receiving 0) as pending data. + + This is because in some cases schannel_recv knows the connection is + closed but has to return actual pending data so it can't return 0 or an + error to indicate no more data. In this case schannel_recv must be + called again, which only happens if readwrite_data sees that there is + still pending data. + + Prior to this change if the total size of the body that libcurl expected + to receive from the server was unknown then it was possible under some + network conditions that libcurl would hang waiting to receive more data, + when in fact a close_notify alert indicating no more data would be sent + was already processed. + + Fixes https://github.com/curl/curl/issues/12894 + Closes https://github.com/curl/curl/pull/12910 + +Daniel Stenberg (10 Feb 2024) + +- KNOWN_BUGS: FTP upload fails if remebered dir is deleted + + Closes #12181 + Closes #12923 + +MichaÅ‚ Antoniak (10 Feb 2024) + +- mbedtls: use mbedtls_ssl_conf_{min|max}_tls_version + + ... instead of the deprecated mbedtls_ssl_conf_{min|max}_version + + Closes #12905 + +Dan Fandrich (9 Feb 2024) + +- CI: bump to actions/cache@v4 to avoid warning + +Evgeny Grin (Karlson2k) (9 Feb 2024) + +- test1165: improve pattern matching + + * Fix excluded digits at the end of the symbols ('CURL_DISABLE_POP3' + was checked as 'CURL_DISABLE_POP') + + Closes #12903 + +Dan Fandrich (9 Feb 2024) + +- scripts: Fix cijobs.pl for Azure and GHA + + The spacing in the yaml files changed. + +Daniel Stenberg (9 Feb 2024) + +- RELEASE-NOTES: synced + +- TODO: use pkg-config to find libpsl + + Closes #12919 + +- TODO: avoid nroff + + Instead of adjusting roffit, skip the nroff step. + + Closes #12919 + +Dan Fandrich (9 Feb 2024) + +- Revert "CI: run Circle macOS builds on x86 for now" + + This reverts commit 2683de3078eadc86d9b182e7417f4ee75a247e2c. + ARM resources are now available in Circle CI, so run these builds on ARM + again. This platform needs explicit paths set to libpsl and its + dependency icu4c. + + Follow-up to 2683de30 + + Closes #12635 + +Viktor Szakats (9 Feb 2024) + +- cmake: add warning for using TLS libraries without 1.3 support + + Closes #12900 + +Daniel Stenberg (9 Feb 2024) + +- configure: add warning for using TLS libraries without 1.3 support + + Closes #12900 + +MichaÅ‚ Antoniak (9 Feb 2024) + +- mbedtls: fix building when MBEDTLS_X509_REMOVE_INFO flag is defined + + Closes #12904 + +Stefan Eissing (9 Feb 2024) + +- ftp: fix socket wait activity in ftp_domore_getsock + + - when waiting on the data connection, always add the control socket to + the pollset on state STOP or let the pingpong add the socket according + to its needs. + + Reported-by: Fabian Vogt + Fixes #12901 + Closes #12913 + +Daniel Stenberg (9 Feb 2024) + +- dist: make sure the http tests are in the tarball + + Fixes #12914 + Reported-by: Fabian Vogt + Closes #12917 + +Stefan Eissing (9 Feb 2024) + +- multi: add xfer_buf to multi handle + + - can be borrowed by transfer during recv-write operation + - needs to be released before borrowing again + - adjustis size to `data->set.buffer_size` + - used in transfer.c readwrite_data() + + Closes #12805 + +Daniel Stenberg (9 Feb 2024) + +- write-out.md: clarify error handling details + + - it gets used even if the transfer fails + + - it does not cause error to be returned even if it fails + + Closes #12909 + +Stefan Eissing (8 Feb 2024) + +- ftp: do lineend conversions in client writer + + - remove the ftp special handling from sendf.c + - let ftp_do() add a client writer that does + the linened conversions + - change the lineend conversion to no longer + modify the passed buffer, but write smaller + chunks to the next cwriter instead. The + inefficiency of this will be mitigated once + we add output buffering for all client writes. + + Closes #12878 + +- ftp: tracing improvements + + - trace socketindex for connection filters when not the first + - trace socket fd in tcp + - trace pollset adjusts in vtls + + Closes #12902 + +Karthikdasari0423 (8 Feb 2024) + +- HTTP3.md: adjust the OpenSSL QUIC install instructions + + tried installing with old steps but failed + tried with newly added setps and able to build + ``` + root@ubuntu:~/curl# ./src/curl -V + /root/curl/src/.libs/curl: /lib/x86_64-linux-gnu/libssl.so.3: version `OPENSS + L_3.2.0' not found (required by /root/curl/lib/.libs/libcurl.so.4) + root@ubuntu:~/curl# + ``` + ``` + root@ubuntu:~/curl# ./src/curl -V + curl 8.6.1-DEV (x86_64-pc-linux-gnu) libcurl/8.6.1-DEV OpenSSL/3.2.0 zlib/1.2 + .11 brotli/1.0.9 libpsl/0.21.0 nghttp3/1.1.0 OpenLDAP/2.5.16 + Release-Date: [unreleased] + Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns + ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp + Features: alt-svc AsynchDNS brotli HSTS HTTP3 HTTPS-proxy IPv6 Largefile libz + NTLM PSL SSL threadsafe TLS-SRP UnixSockets + root@ubuntu:~/curl# + ``` + + Closes #12896 + +Daniel Stenberg (8 Feb 2024) + +- TODO: align the TOC with the header + +- docs: make sure curl.1 is included in dist tarballs + + Ref: https://github.com/curl/curl/issues/12832#issuecomment-1933271873 + + Closes #12892 + +Karthikdasari0423 (8 Feb 2024) + +- HTTP3.md: remove quiche word in Openssl 3.2 + + Closes #12893 + +Daniel Stenberg (7 Feb 2024) + +- curl: when allocating variables, add the name into the struct + + This saves the name from being an extra separate allocation. + + Closes #12891 + +- lib582: remove code causing warning that is never run + + The previous realloc code in this code could trigger a compiler warning, + but since that code path cannot happen in normal circumstances it now + instead exits with an error message there. + + Ref: #12887 + Closes #12890 + +Stefan Eissing (7 Feb 2024) + +- vtls: revert "receive max buffer" + add test case + + - add test_05_04 for requests using http/1.0, http/1.1 and h2 against an + Apache resource that does an unclean TLS shutdown. + - revert special workarund in openssl.c for suppressing shutdown errors + on multiplexed connections + - vlts.c restore to its state before 9a90c9dd64d2f03601833a70786d485851bd1b53 + + Fixes #12885 + Fixes #12844 + + Closes #12848 + +Daniel Stenberg (7 Feb 2024) + +- tests: support setting/using blank content env variables + + - test450: remove --config from the keywords + - test2080: change return code + - test428: add --config as a keyword + - test428: disable on Windows due to CI problems + +- curl: exit on config file parser errors + + Like when trying to import an environment variable that does not exist. + + Also fix a bug for reading env variables when there is a default value + set. + + Bug: https://curl.se/mail/archive-2024-02/0008.html + Reported-by: Brett Buddin + + Add test 462 to verify. + + Closes #12862 + +Daniel Szmulewicz (7 Feb 2024) + +- CURLOPT_WRITEFUNCTION.md: typo fix + + The maximum amount of body data that is passed to the write + callback is defined in the curl.h header file + + Closes #12889 + +Daniel Stenberg (7 Feb 2024) + +- lib: convert Curl_get_line to use dynbuf + + Create the line in a dynbuf. Aborts the reading of the file on + errors. Avoids having to always allocate maximum amount from the + start. Avoids direct malloc. + + Closes #12846 + +- KNOWN_BUGS: unicode on Windows + + Closes #11461 + Closes #12231 + Closes #12883 + +- tool_operate: change precedence of server Retry-After time + + - When calculating the retry time, no longer allow a server's requested + Retry-After time to take precedence over a longer retry time (either + default algorithmic or user-specified). + + Prior to this change the server's Retry-After time took precedence over + curl's retry time in all cases, but that's not always practical for + short Retry-After times depending on how busy the server is. + + Bug: https://curl.se/mail/archive-2024-01/0022.html + Reported-by: Dirk Hünniger + + Closes https://github.com/curl/curl/pull/12871 + +- cmdline-docs: quote and angle bracket cleanup + + - make sure angle brackets are escaped + - remove a lot of superfluous double quotes + - replace several double quotes with backticks + + To make nicer-looking markdown. + + Closes #12884 + +- badwords: use hostname, not host name + + and username, filename - consistently. Fixed the patterns in + badwords.txt to catch these. + + Closes #12888 + +Viktor Szakats (6 Feb 2024) + +- cmake: fix function description in comment [ci skip] + + Closes #12879 + +Daniel Stenberg (6 Feb 2024) + +- header.md: remove backslash, make nicer markdown + + - remove a leftover backslash before a dash + - use backticks for "code" strings + + Closes #12877 + +- docs: add mk-ca-bundle.1 to dist + + ... which also makes it get built. But don't build this or curl-config.1 + if build docs is disabled. + + Closes #12875 + +Stefan Eissing (6 Feb 2024) + +- https-proxy: use IP address and cert with ip in alt names + + - improve info logging when peer verification fails to indicate + if DNS name or ip address has been tried to match + - add test case for contacting https proxy with ip address + - add pytest env check on loaded credentials and re-issue + when they are no longer valid + - disable proxy ip address test for bearssl, since not supported there + + Ref: #12831 + Closes #12838 + +Jiawen Geng (6 Feb 2024) + +- docs: add necessary setup for nghttp3 + + Now nghttp3 has submodules + https://github.com/ngtcp2/nghttp3/blob/main/.gitmodules + + Closes #12859 + +Peter Krefting (6 Feb 2024) + +- version: allow building with ancient libpsl + + The psl_check_version_number() API was added in libpsl 0.11.0. CentOS 7 + ships with version 0.7.0 which lacks this API. Revert to using the older + versioning API if we detect an old libpsl version. + + Follow-up to 72bd88adde0e8cf6e63644a7d6df1da01a399db4 + Bug: https://curl.se/mail/archive-2024-02/0004.html + Reported-by: Scott Mutter + Closes #12872 + +Daniel Stenberg (6 Feb 2024) + +- TODO: Support latest rustls + + Closes #12737 + Closes #12874 + +- docs: make curldown do angle brackets like markdown + + Make sure we use \< and \> in markdown all over so that it renders + correctly, on GitHub and elsewhere. cd2nroff now outputs a warning if it + finds an unescaled angle bracket. + + Ref: #12854 + Closes #12869 + +- docs: fix the --disable-docs for autotools + + Follow-up to 541321507e386 + + Closes #12870 + +- RELEASE-NOTES: synced + +- libcurl-security.md: Active FTP passes on the local IP address + + Reported-by: Harry Sintonen + Closes #12867 + +Stefan Eissing (5 Feb 2024) + +- configure: do not link with nghttp3 unless necessary + + Fixes #12833 + Closes #12864 + Reported-by: Ryan Carsten Schmidt + +Daniel Stenberg (5 Feb 2024) + +- THANKS: add Dmitry Tretyakov + + ... since I missed to give credit to the report in the fix of #12861 + +Stefan Eissing (5 Feb 2024) + +- openssl-quic: check on Windows that socket conv to int is possible + + Fixes #12861 + Closes #12865 + +Daniel Stenberg (5 Feb 2024) + +- tool_cb_hdr: only parse etag + content-disposition for 2xx + + ... and ignore them for other response codes. + + Reported-by: Harry Sintonen + Closes #12866 + +- md4: include strdup.h for the memdup proto + + Reported-by: Erik Schnetter + Fixes #12849 + Closes #12863 + +Joel Depooter (5 Feb 2024) + +- docs: add missing slashes to SChannel client certificate documentation + + When setting the CURLOPT_SSLCERT option to a certificate thumprint, it + is required to have a backslash between the "store location", "store + name" and "thumbprint" tokens. These slashes were present in the + previous documentation, but were missed in the transition to markdown + documentation. + + Closes #12854 + +Stefan Eissing (5 Feb 2024) + +- HTTP/2: write response directly + + - use the new `Curl_xfer_write_resp()` to write incoming responses + directly to the client + - eliminates `stream->recvbuf` + - memory consumption on parallel transfers minimized + + Closes #12828 + +Daniel Stenberg (5 Feb 2024) + +- cookie.md: provide an example sending a fixed cookie + + Closes #12868 + +Lars Kellogg-Stedman (5 Feb 2024) + +- ALTSVC.md: correct a typo + + The ALPN documentation erroneously referred to a "host number" instead + of a "port number". + + Closes #12852 + +Boris Verkhovskiy (5 Feb 2024) + +- proxy1.0.md: fix example + + Closes #12856 + +Chris Webb (5 Feb 2024) + +- configure: add --disable-docs flag + + Building man pages from curldown sources now requires perl. Add a + --disable-docs flag to configure to enable building and installing + without documentation where perl is not available or man pages are not + required. This is selected automatically (with a warning) when perl is + not found by configure. + + Fixes #12832 + Closes #12857 + +Faraz Fallahi (5 Feb 2024) + +- connect.c: fix typo + + Closes #12858 + +Daniel Stenberg (1 Feb 2024) + +- sendf: ignore response body to HEAD + + and mark the stream for close, but return OK since the response this far + was ok - if headers were received. Partly because this is what curl has + done traditionally. + + Test 499 verifies. Updates test 689. + + Reported-by: Sergey Bronnikov + Bug: https://curl.se/mail/lib-2024-02/0000.html + Closes #12842 + +- ftp: treat a 226 arriving before data as a signal to read data + + For active mode transfers. + + Due to some interesting timing, curl can sometimes get the 226 (transfer + complete) over the control channel first, before the data connection + signals readability. If this happens, use that as a signal to check the + data connection. + + Additionally, set the socket filter in listen mode *before* the + PORT/EPRT command is issued, to reduce the risk that the little time gap + could interfere. + + This issue never reproduced for me on Debian and takes several hundred + rounds for me to trigger on my mac. + + Reported-by: Stefan Eissing + Fixes #12823 + Closes #12841 + +Patrick Monnerat (1 Feb 2024) + +- OS400: avoid using awk in the build scripts + + Awk is a PASE program and its use may cause a failure depending on the + CCSID of the calling script (IBM bug?). + + For this reason, revert to an sed-only solution to extract the exported + symbols from the header files. + + Closes #12826 + +Jan Macku (1 Feb 2024) + +- docs: remove `mk-ca-bundle.1` from `man_MANS` + + It was accidentally added in https://github.com/curl/curl/pull/12730 + + Co-authored-by: Lukáš Zaoral + Signed-off-by: Jan Macku + + Follow-up to eefcc1bda4bccd800f5a56a0fe17a2f44a96e88b + Closes #12843 + +Daniel Stenberg (1 Feb 2024) + +- RELEASE-NOTES: synced + + and bump to 8.6.1 for now + +- cmdline-docs/Makefile: avoid using a fixed temp file name + + By appending the pid number two different runs at the same time will not + trample over the same file. + + Reported-by: Jon Rumsey + Fixes #12829 + Closes #12839 + +- asyn-thread: use wakeup_close to close the read descriptor + + Reported-by: Dan Fandrich + Ref: #12834 + Closes #12836 + +Stefan Eissing (1 Feb 2024) + +- ntml_wb: fix buffer type typo + + Closes #12825 + +Daniel Stenberg (1 Feb 2024) + +- tool_operate: do not set CURLOPT_QUICK_EXIT in debug builds + + Since it allows (small) memory leaks that interfere with torture tests + and regular memory-leak checks. + + Reported-by: Dan Fandrich + Fixes #12834 + Closes #12835 + +Boris Verkhovskiy (31 Jan 2024) + +- form-string.md: correct the example + + Closes #12822 + +Version 8.6.0 (31 Jan 2024) + +Daniel Stenberg (31 Jan 2024) + +- RELEASE-NOTES: synced + + curl 8.6.0 + +- THANKS: new contributors from 8.5.0 + +Jay Satiro (31 Jan 2024) + +- cd2nroff: use perl 'strict' and 'warnings' + + - Use strict and warnings pragmas. + + - If open() fails then show the reason. + + - Set STDIN io layer :crlf so that input is properly read on Windows. + + - When STDIN is used as input, the filename $f is now set to "STDIN". + + Various error messages in single() use $f for the filename and this way + it is not undefined when STDIN. + + Closes https://github.com/curl/curl/pull/12819 + +Daniel Stenberg (30 Jan 2024) + +- cd2nroff: fix duplicate output issue + + Assisted-by: Jay Satiro + Fixes https://github.com/curl/curl-www/issues/321 + Closes #12818 + +- lib: error out on multissl + http3 + + Since the QUIC/h3 code has no knowledge or handling of multissl it might + bring unintended consequences if we allow it. + + configure, cmake and curl_setup.h all now reject this combination. + + Assisted-by: Viktor Szakats + Assisted-by: Gisle Vanem + Ref: #12806 + Closes #12807 + +Patrick Monnerat (29 Jan 2024) + +- OS400: sync ILE/RPG binding + + Also do not force git CRLF line endings on *.cmd files for OS400. + + Closes #12815 + +Viktor Szakats (28 Jan 2024) + +- build: delete/replace 3 more clang warning pragmas + + - tool_msgs: delete redundant `-Wformat-nonliteral` suppression pragma. + + - whitespace formatting in `mprintf.h`, lib518, lib537. + + - lib518: fix wrong variable in `sizeof()`. + + - lib518: bump variables to `rlim_t`. + Follow-up to e2b394106d543c4615a60795b7fdce04bd4e5090 #1469 + + - lib518: sync error message with lib537 + Follow-up to 365322b8bcf9efb6a361473d227b70f2032212ce + + - lib518, lib537: replace `-Wformat-nonliteral` suppression pragmas + by reworking test code. + + Follow-up to 5b286c250829e06a135a6ba998e80beb7f43a734 #12812 + Follow-up to aee4ebe59161d0a5281743f96e7738ad97fe1cd4 #12803 + Follow-up to 09230127589eccc7e01c1a7217787ef8e64f3328 #12540 + Follow-up to 3829759bd042c03225ae862062560f568ba1a231 #12489 + + Reviewed-by: Daniel Stenberg + Closes #12814 + +Richard Levitte (27 Jan 2024) + +- cmake: freshen up docs/INSTALL.cmake + + - Turn docs/INSTALL.cmake into a proper markdown file, + docs/INSTALL-CMAKE.md + - Move things around to divide the description into configuration, + building and installing sections + - Mention the more modern cmake options to configure, build and install, + but also retain the older variants as fallbacks + + Closes #12772 + +Viktor Szakats (27 Jan 2024) + +- build: delete/replace clang warning pragmas + + - delete redundant warning suppressions for `-Wformat-nonliteral`. + This now relies on `CURL_PRINTF()` and it's theoratically possible + that this macro isn't active but the warning is. We're ignoring this + as a corner-case here. + + - replace two pragmas with code changes to avoid the warnings. + + Follow-up to aee4ebe59161d0a5281743f96e7738ad97fe1cd4 #12803 + Follow-up to 09230127589eccc7e01c1a7217787ef8e64f3328 #12540 + Follow-up to 3829759bd042c03225ae862062560f568ba1a231 #12489 + + Reviewed-by: Daniel Stenberg + Closes #12812 + +Daniel Stenberg (27 Jan 2024) + +- RELEASE-NOTES: synced + +- http: only act on 101 responses when they are HTTP/1.1 + + For 101 responses claiming to be any other protocol, bail out. This + would previously trigger an assert. + + Add test 1704 to verify. + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66184 + Closes #12811 + +Scarlett McAllister (27 Jan 2024) + +- _VARIABLES.md: add missing 'be' into the sentence + + Closes #12809 + +Stefan Eissing (27 Jan 2024) + +- mqtt, remove remaining use of data->state.buffer + + Closes #12799 + +Daniel Stenberg (27 Jan 2024) + +- x509asn1: switch from malloc to dynbuf + + Closes #12808 + +- x509asn1: make utf8asn1str() use dynbuf instead of malloc + memcpy + + Closes #12808 + +- x509asn1: reduce malloc in Curl_extract_certinfo + + Using dynbuf + + Closes #12808 + +Jay Satiro (27 Jan 2024) + +- THANKS: add Alexander Bartel and Brennan Kinney + + They reported and investigated #10259 which was fixed by 7b2d98df. + + Ref: https://github.com/curl/curl/issues/10259 + +Daniel Stenberg (26 Jan 2024) + +- krb5: add prototype to silence clang warnings on mvsnprintf() + + "error: format string is not a string literal" + + Follow-up to 09230127589eccc7 which made the warning appear + + Assisted-by: Viktor Szakats + Closes #12803 + +- x509asn1: remove code for WANT_VERIFYHOST + + No code ever sets this anymore since we dropped gskit + + Follow-up to 78d6232f1f326b9ab4d + + Closes #12804 + +- socks: reduce the buffer size to 600 (from 8K) + + This is malloc'ed memory and it does not more. Test 742 helps us verify + this. + + Closes #12789 + +Stefan Eissing (26 Jan 2024) + +- file+ftp: use stack buffers instead of data->state.buffer + + Closes #12789 + +- vtls: receive max buffer + + - do not only receive one TLS record, but try to fill + the passed buffer + - consider <4K remaning space is "filled". + + Closes #12801 + +Daniel Stenberg (26 Jan 2024) + +- docs: do not start lines/sentences with So, But nor And + + Closes #12802 + +- docs: remove spurious ampersands from markdown + + They were leftovers from the nroff conversion. + + Follow-up to eefcc1bda4bccd800f5a5 + + Closes #12800 + +Patrick Monnerat (26 Jan 2024) + +- sasl: make login option string override http auth + + - Use http authentication mechanisms as a default, not a preset. + + Consider http authentication options which are mapped to SASL options as + a default (overriding the hardcoded default mask for the protocol) that + is ignored if a login option string is given. + + Prior to this change, if some HTTP auth options were given, sasl mapped + http authentication options to sasl ones but merged them with the login + options. + + That caused problems with the cli tool that sets the http login option + CURLAUTH_BEARER as a side-effect of --oauth2-bearer, because this flag + maps to more than one sasl mechanisms and the latter cannot be cleared + individually by the login options string. + + New test 992 checks this. + + Fixes https://github.com/curl/curl/issues/10259 + Closes https://github.com/curl/curl/pull/12790 + +Stefan Eissing (26 Jan 2024) + +- socks: use own buffer instead of data->state.buffer + + Closes #12788 + +Daniel Stenberg (26 Jan 2024) + +- socks: fix generic output string to say SOCKS instead of SOCKS4 + + ... since it was also logged for SOCKS5. + + Closes #12797 + +- test742: test SOCKS5 with max length user, password and hostname + + Adjusted the socksd server accordingly to allow for configuring that + long user name and password. + + Closes #12797 + +Stefan Eissing (25 Jan 2024) + +- ssh: use stack scratch buffer for seeks + + - instead of data->state.buffer + + Closes #12794 + +Daniel Stenberg (25 Jan 2024) + +- krb5: access the response buffer correctly + + As the pingpong code no longer uses the download buffer. + + Folllow-up to c2d973627bab12ab + Pointed-out-by: Stefan Eissing + Closes #12796 + +Stefan Eissing (25 Jan 2024) + +- mqtt: use stack scratch buffer for recv+publish + + - instead of data->state.buffer + + Closes #12792 + +- telnet, use stack scratch buffer for do + + - instead of data->state.buffer + + Closes #12793 + +- http, use stack scratch buffer + + - instead of data->state.buffer + + Closes #12791 + +- ntlm_wb: do not use data->state.buf any longer + + Closes #12787 + +- gitignore: the generated `libcurl-symbols.md` + + Closes #12795 + +Daniel Stenberg (25 Jan 2024) + +- tool: fix the listhelp generation command + + The previous command line to generate the tool_listhelp.c source file + broke with 2494b8dd5175cee7. + + Make 'make listhelp' invoked in src/ generate it. Also update the + comment in the file to mention the right procedure. + + Closes #12786 + +- http: check for "Host:" case insensitively + + When checking if the user wants to replace the header, the check should + be case insensitive. + + Adding test 461 to verify + + Found-by: Dan Fandrich + Ref: #12782 + Closes #12784 + +Tatsuhiro Tsujikawa (25 Jan 2024) + +- configure: add libngtcp2_crypto_boringssl detection + + If OpenSSL is found to be BoringSSL or AWS-LC, and ngtcp2 is requested, + try to detect libngtcp2_crypto_boringssl. + + Reported-by: ウã•ã‚“ + Fixes #12724 + Closes #12769 + +Daniel Stenberg (25 Jan 2024) + +- http: remove comment reference to a removed solution + + Follow-up to 58974d25d + + Closes #12785 + +Stefan Eissing (25 Jan 2024) + +- pytest: Scorecard tracking CPU and RSS + + Closes #12765 + +Graham Campbell (25 Jan 2024) + +- GHA: bump ngtcp2, gnutls, mod_h2, quiche + + - ngtcp2 to v1.2.0 + - gnutls to 3.8.3 + - mod_h2 to 2.0.26 + - quiche to 0.20.0 + + Closes #12778 + Closes #12779 + Closes #12780 + Closes #12781 + +Daniel Stenberg (25 Jan 2024) + +- ftpserver.pl: send 213 SIZE response without spurious newline + +- pingpong: stop using the download buffer + + The pingpong logic now uses its own dynbuf for receiving command + response data. + + When the "final" response header for a commanad has been received, that + final line is left first in the recvbuf for the protocols to parse at + will. If there is additional data behind the final response line, the + 'overflow' counter is indicate how many bytes. + + Closes #12757 + +- gen.pl: remove bold from .IP used for ## + + Reported-by: Viktor Szakats + Fixes #12776 + Closes #12777 + +Viktor Szakats (24 Jan 2024) + +- cmake: rework options to enable curl and libcurl docs + + Rework CMake options for building/using curl tool and libcurl manuals. + + - rename `ENABLE_MANUAL` to `ENABLE_CURL_MANUAL`, meaning: + to build man page and built-in manual for curl tool. + + - rename `BUILD_DOCS` to `BUILD_LIBCURL_DOCS`, meaning: + to build man pages for libcurl. + + - `BUILD_LIBCURL_DOCS` now works without having to enable + `ENABLE_CURL_MANUAL` too. + + - drop support for existing CMake-level `USE_MANUAL` option to avoid + confusion. (It used to work with the effect of current + `ENABLE_CURL_MANUAL`, but only by accident.) + + Assisted-by: Richard Levitte + Ref: #12771 + Closes #12773 + +Daniel Stenberg (24 Jan 2024) + +- urlapi: remove assert + + This assert triggers wrongly when CURLU_GUESS_SCHEME and + CURLU_NO_AUTHORITY are both set and the URL is a single path. + + I think this assert has played out its role. It was introduced in a + rather big refactor. + + Follow-up to 4cfa5bcc9a + + Reported-by: promptfuzz_ on hackerone + Closes #12775 + +Patrick Monnerat (24 Jan 2024) + +- tests: avoid int/size_t conversion size/sign warnings + + Closes #12768 + +Daniel Stenberg (24 Jan 2024) + +- GHA: add a job scanning for "bad words" in markdown + + This means words, phrases or things we have decided not to use - words that + are spelled right according to the dictionary but we want to avoid. In the + name of consistency and better documentation. + + Closes #12764 + +Viktor Szakats (23 Jan 2024) + +- cmake: speed up curldown processing, enable by default + + - cmake: enable `BUILD_DOCS` by default (this controls converting and + installing `.3` files from `.md` sources) + + - cmake: speed up generating `.3` files by using a single command per + directory, instead of a single command per file. This reduces external + commands by about a thousand. (There remains some CMake logic kicking + in resulting in 500 -one per file- external `-E touch_nocreate` calls.) + + - cd2nroff: add ability to process multiple input files. + + - cd2nroff: add `-k` option to use the source filename to form the + output filename. (instead of the default in-file `Title:` line.) + + Follow-up to 3f08d80b2244524646ce86915c585509ac54fb4c + Follow-up to ea0b575dab86a3c44dd1d547dc500276266aa382 #12753 + Follow-up to eefcc1bda4bccd800f5a56a0fe17a2f44a96e88b #12730 + + Closes #12762 + +Richard Levitte (23 Jan 2024) + +- docs: install curl.1 with cmake as well + + Closes #12759 + +Daniel Stenberg (23 Jan 2024) + +- osslq: remove the TLS library from the version output + + Since we only support using a single TLS library at any one time, we + know that the TLS library for QUIC is the same that is also shown for + regular TLS. + + Fixes #12763 + Reported-by: Viktor Szakats + Closes #12767 + +Stefan Eissing (23 Jan 2024) + +- CI: remove unnecessary OpenSSL 3 option `enable-tls1_3` + + .. and switch OpenSSL 3 libdir from lib64 to lib for consistency. + + Closes https://github.com/curl/curl/pull/12758 + +- GHA: bump nghttp2 version to v1.59.0 + + - Switch to v1.59.0 for GHA CI jobs that use a specific nghttp2-version. + + Closes https://github.com/curl/curl/pull/12766 + +Daniel Stenberg (23 Jan 2024) + +- RELEASE-NOTES: synced + +- docs/cmdline: change to .md for cmdline docs + + - switch all invidual files documenting command line options into .md, + as the documentation is now markdown-looking. + + - made the parser treat 4-space indents as quotes + + - switch to building the curl.1 manpage using the "mainpage.idx" file, + which lists the files to include to generate it, instead of using the + previous page-footer/headers. Also, those files are now also .md + ones, using the same format. I gave them underscore prefixes to make + them sort separately: + _NAME.md, _SYNOPSIS.md, _DESCRIPTION.md, _URL.md, _GLOBBING.md, + _VARIABLES.md, _OUTPUT.md, _PROTOCOLS.md, _PROGRESS.md, _VERSION.md, + _OPTIONS.md, _FILES.md, _ENVIRONMENT.md, _PROXYPREFIX.md, + _EXITCODES.md, _BUGS.md, _AUTHORS.md, _WWW.md, _SEEALSO.md + + - updated test cases accordingly + + Closes #12751 + +dependabot[bot] (23 Jan 2024) + +- CI: bump actions/cache from 3 to 4 + + Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. + - [Release notes](https://github.com/actions/cache/releases) + - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) + - [Commits](https://github.com/actions/cache/compare/v3...v4) + + --- + updated-dependencies: + - dependency-name: actions/cache + dependency-type: direct:production + update-type: version-update:semver-major + ... + + Signed-off-by: dependabot[bot] + Closes #12756 + +Daniel Stenberg (23 Jan 2024) + +- openssl: when verifystatus fails, remove session id from cache + + To prevent that it gets used in a subsequent transfer that skips the + verifystatus check since that check can't be done when the session id is + reused. + + Reported-by: Hiroki Kurosawa + Closes #12760 + +Viktor Szakats (23 Jan 2024) + +- cmake: add option to disable building docs + +Richard Levitte (23 Jan 2024) + +- cmake: use curldown to build man pages + + This throws away the previous HTML and PDF producers, to mimic what + Makefile.am does as faithfully as possible. + + Closes #12753 + +Daniel Stenberg (23 Jan 2024) + +- mksymbolsmanpage.pl: provide references to where the symbol is used + +- docs: introduce "curldown" for libcurl man page format + + curldown is this new file format for libcurl man pages. It is markdown + inspired with differences: + + - Each file has a set of leading headers with meta-data + - Supports a small subset of markdown + - Uses .md file extensions for editors/IDE/GitHub to treat them nicely + - Generates man pages very similar to the previous ones + - Generates man pages that still convert nicely to HTML on the website + - Detects and highlights mentions of curl symbols automatically (when + their man page section is specified) + + tools: + + - cd2nroff: converts from curldown to nroff man page + - nroff2cd: convert an (old) nroff man page to curldown + - cdall: convert many nroff pages to curldown versions + - cd2cd: verifies and updates a curldown to latest curldown + + This setup generates .3 versions of all the curldown versions at build time. + + CI: + + Since the documentation is now technically markdown in the eyes of many + things, the CI runs many more tests and checks on this documentation, + including proselint, link checkers and tests that make sure we capitalize the + first letter after a period... + + Closes #12730 + +Viktor Szakats (22 Jan 2024) + +- libssh2: use `libssh2_session_callback_set2()` with v1.11.1 + + To avoid a local hack to pass function pointers and to avoid + deprecation warnings when building with libssh2 v1.11.1 or newer: + ``` + lib/vssh/libssh2.c:3324:5: warning: 'libssh2_session_callback_set' is depreca + ted: since libssh2 1.11.1. Use libssh2_session_callback_set2() [-Wdeprecated- + declarations] + lib/vssh/libssh2.c:3326:5: warning: 'libssh2_session_callback_set' is depreca + ted: since libssh2 1.11.1. Use libssh2_session_callback_set2() [-Wdeprecated- + declarations] + ``` + Ref: https://github.com/curl/curl-for-win/actions/runs/7609484879/job/2072082 + 1100#step:3:4982 + + Ref: https://github.com/libssh2/libssh2/pull/1285 + Ref: https://github.com/libssh2/libssh2/commit/c0f69548be902147ce014ffa40b8db + 3cf1d4b0b4 + Reviewed-by: Daniel Stenberg + Closes #12754 + +Daniel Stenberg (22 Jan 2024) + +- transfer: make the select_bits_paused condition check both directions + + If there is activity in a direction that is not paused, return false. + + Reported-by: Sergey Bronnikov + Bug: https://curl.se/mail/lib-2024-01/0049.html + Closes #12740 + +Stefan Eissing (22 Jan 2024) + +- http3: initial support for OpenSSL 3.2 QUIC stack + + - HTTP/3 for curl using OpenSSL's own QUIC stack together + with nghttp3 + - configure with `--with-openssl-quic` to enable curl to + build this. This requires the nghttp3 library + - implementation with the following restrictions: + * macOS has to use an unconnected UDP socket due to an + issue in OpenSSL's datagram implementation + See https://github.com/openssl/openssl/issues/23251 + This makes connections to non-reponsive servers hang. + * GET requests will send the indicator that they have + no body in a separate QUIC packet. This may result + in processing delays or Transfer-Encodings on proxied + requests + * uploads that encounter blocks will use 100% cpu as + detection of these flow control issue is not working + (we have not figured out to pry that from OpenSSL). + + Closes #12734 + +Viktor Szakats (22 Jan 2024) + +- cmake: fix `ENABLE_MANUAL` option + + Fix the `ENABLE_MANUAL` option. Set it to default to `OFF`. + + Before this patch `ENABLE_MANUAL=ON` was a no-op, even though it was the + option designed to enable building and using the built-in curl manual. + (`USE_MANUAL=ON` option worked for this instead, by accident). + + Ref: https://github.com/curl/curl/pull/12730#issuecomment-1902572409 + Closes #12749 + +Mohammadreza Hendiani (19 Jan 2024) + +- TODO: update broken link to ratelimit-headers draft + + Closes #12741 + +Daniel Stenberg (19 Jan 2024) + +- cmake: when USE_MANUAL=YES, build the curl.1 man page + + Fixes KNOWN_BUG 15.4 + + Closes #12742 + +- cmdline-opts/write-out.d: remove spurious double quotes + +Stefan Eissing (19 Jan 2024) + +- rtsp: Convert assertion into debug log + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65934 + + - write excess bytes to the client where the standard excess bytes + checks will report any wrongness and fail the transfer + + Fixes #12738 + Closes #12739 + +Daniel Stenberg (19 Jan 2024) + +- headers: remove assert from Curl_headers_push + + The fuzzer managed to reach the function without a terminating CR or LF + so let's handle it normally. While there, remove the goto. + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65839 + + Closes #12721 + +- curl_easy_getinfo.3: remove the wrong time value count + + It said "six" time values but they are eight by now. Remove the mention + of the amount. + + Closes #12727 + +Viktor Szakats (18 Jan 2024) + +- mbedtls: fix `-Wnull-dereference` and `-Wredundant-decls` + + - Silence warning in mbedTLS v3.5.1 public headers: + ``` + ./mbedtls/_x64-linux-musl/usr/include/psa/crypto_extra.h:489:14: warning: r + edundant redeclaration of 'psa_set_key_domain_parameters' [-Wredundant-decls] + ./mbedtls/_x64-linux-musl/usr/include/psa/crypto_struct.h:354:14: note: pre + vious declaration of 'psa_set_key_domain_parameters' was here + ``` + Ref: https://github.com/libssh2/libssh2/commit/ecec68a2c13a9c63fe8c2dc457ae + 785a513e157c + Ref: https://github.com/libssh2/libssh2/pull/1226 + + - Fix compiler warnings seen with gcc 9.2.0 + cmake unity: + ``` + ./curl/lib/vtls/mbedtls.c: In function 'mbedtls_bio_cf_read': + ./curl/lib/vtls/mbedtls.c:189:11: warning: null pointer dereference [-Wnull + -dereference] + 189 | nread = Curl_conn_cf_recv(cf->next, data, (char *)buf, blen, &res + ult); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ + ./curl/lib/vtls/mbedtls.c: In function 'mbedtls_bio_cf_write': + ./curl/lib/vtls/mbedtls.c:168:14: warning: null pointer dereference [-Wnull + -dereference] + 168 | nwritten = Curl_conn_cf_send(cf->next, data, (char *)buf, blen, & + result); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~ + ``` + + - delete stray `#else`. + + Closes #12720 + +Daniel Stenberg (17 Jan 2024) + +- docs: cleanup nroff format use + + - remove use of .BI for code snippet + - stop using .br, just do a blank line + - remove use of .PP + - remove use for .sp + - remove backslash in .IP + - use .IP instead of .TP + + Closes #12731 + +Stefan Eissing (17 Jan 2024) + +- test2307: fix expected failure code after ws refactoring + + Fixes #12722 + Closes #12728 + +Jay Satiro (17 Jan 2024) + +- cf-socket: show errno in tcpkeepalive error messages + + - If the socket keepalive options (TCP_KEEPIDLE, etc) cannot be set + then show the errno in the verbose error messages. + + Ref: https://github.com/curl/curl/discussions/12715#discussioncomment-8151652 + + Closes https://github.com/curl/curl/pull/12726 + +- tool_getparam: stop supporting `@filename` style for --cookie + + The `@filename` style was never documented for --cookie + but prior to this change curl would accept it anyway and always treat a + @ prefixed string as a filename. + + That's a problem if the string also contains a = sign because then it is + documented to be interpreted as a cookie string and not a filename. + + Example: + + `--cookie @foo=bar` + + Before: Interpreted as load cookies from filename foo=bar. + + After: Interpreted as cookie `@foo=bar` (name `@foo` and value `bar`). + + Other curl options with a data/filename option-value use the `@filename` + to distinguish filenames which is probably how this happened. The + --cookie option has never been documented that way. + + Ref: https://curl.se/docs/manpage.html#-b + + Closes https://github.com/curl/curl/pull/12645 + +Stefan Eissing (16 Jan 2024) + +- websockets: refactor decode chain + + - use client writer stack for decoding frames + - move websocket protocol handler to ws.c + + Closes #12713 + +- websockets: check for negative payload lengths + + - in en- and decoding, check the websocket frame payload lengths for + negative values (from curl_off_t) and error the operation in that case + - add test 2307 to verify + + Closes #12707 + +Daniel Stenberg (16 Jan 2024) + +- docs: mention env vars not used by schannel + + Ref: #12704 + + Co-authored-by: Jay Satiro + + Closes #12711 + +- tool_operate: make --remove-on-error only remove "real" files + + Reported-by: Harry Sintonen + Assisted-by: Dan Fandrich + + Closes #12710 + +Jay Wu (16 Jan 2024) + +- url: don't set default CA paths for Secure Transport backend + + As the default for this backend is the native CA store. + + Closes #12704 + +Lin Sun (16 Jan 2024) + +- asyn-ares: with modern c-ares, use its default timeout + + Closes #12703 + +Daniel Stenberg (15 Jan 2024) + +- tool_operate: stop setting the file comment on Amiga + + - the URL is capped at 80 cols, which ruins it if longer + - it does not strip off URL credentials + - it is done unconditonally, not on --xattr + - we don't have Amiga in the CI which makes fixing it blindly fragile + + Someone who builds and tests on Amiga can add it back correctly in a + future if there is a desire. + + Reported-by: Harry Sintonen + Closes #12709 + +Stefan Eissing (15 Jan 2024) + +- rtsp: deal with borked server responses + + - enforce a response body length of 0, if the + response has no Content-lenght. This is according + to the RTSP spec. + - excess bytes in a response body are forwarded to + the client writers which will report and fail the + transfer + + Follow-up to d7b6ce6 + Fixes #12701 + Closes #12706 + +Daniel Stenberg (14 Jan 2024) + +- version: show only the libpsl version, not its dependencies + + The libpsl version output otherwise also includes version number for its + dependencies, like IDN lib, but since libcurl does not use libpsl's IDN + functionality those components are not important. + + Ref: https://github.com/curl/curl-for-win/issues/63 + Closes #12700 + +Brad Harder (14 Jan 2024) + +- curl.h: CURLOPT_DNS_SERVERS is only available with c-ares + + Closes #12695 + +Daniel Stenberg (14 Jan 2024) + +- cmdline-opts/gen.pl: error on initital blank line + + After the "---" separator, there should be no blank line and this script + now errors out if one is detected. + + Ref: #12696 + Closes #12698 + +- cf-h1-proxy: no CURLOPT_USERAGENT in CONNECT with hyper + + Follow-up to 693cd1679361828a which was incomplete + + Ref #12680 + Closes #12697 + +- curl_multi_fdset.3: remove mention of null pointer support + + ... since this funtion has not supported null pointer fd_set arguments since + at least 2006. (That's when I stopped my git blame journey) + + Fixes #12691 + Reported-by: sfan5 on github + Closes #12692 + +Mark Huang (14 Jan 2024) + +- docs/cmdline: remove unnecessary line breaks + + Closes #12696 + +Daniel Stenberg (14 Jan 2024) + +- transfer: remove warning: Value stored to 'blen' is never read + + Detected by scan-build + + Follow-up from 1cd2f0072f + + Closes #12693 + +Stefan Eissing (13 Jan 2024) + +- lib: replace readwrite with write_resp + + This clarifies the handling of server responses by folding the code for + the complicated protocols into their protocol handlers. This concerns + mainly HTTP and its bastard sibling RTSP. + + The terms "read" and "write" are often used without clear context if + they refer to the connect or the client/application side of a + transfer. This PR uses "read/write" for operations on the client side + and "send/receive" for the connection, e.g. server side. If this is + considered useful, we can revisit renaming of further methods in another + PR. + + Curl's protocol handler `readwrite()` method been changed: + + ```diff + - CURLcode (*readwrite)(struct Curl_easy *data, struct connectdata *conn, + - const char *buf, size_t blen, + - size_t *pconsumed, bool *readmore); + + CURLcode (*write_resp)(struct Curl_easy *data, const char *buf, size_t ble + n, + + bool is_eos, bool *done); + ``` + + The name was changed to clarify that this writes reponse data to the + client side. The parameter changes are: + + * `conn` removed as it always operates on `data->conn` + * `pconsumed` removed as the method needs to handle all data on success + * `readmore` removed as no longer necessary + * `is_eos` as indicator that this is the last call for the transfer + response (end-of-stream). + * `done` TRUE on return iff the transfer response is to be treated as + finished + + This change affects many files only because of updated comments in + handlers that provide no implementation. The real change is that the + HTTP protocol handlers now provide an implementation. + + The HTTP protocol handlers `write_resp()` implementation will get passed + **all** raw data of a server response for the transfer. The HTTP/1.x + formatted status and headers, as well as the undecoded response + body. `Curl_http_write_resp_hds()` is used internally to parse the + response headers and pass them on. This method is public as the RTSP + protocol handler also uses it. + + HTTP/1.1 "chunked" transport encoding is now part of the general + *content encoding* writer stack, just like other encodings. A new flag + `CLIENTWRITE_EOS` was added for the last client write. This allows + writers to verify that they are in a valid end state. The chunked + decoder will check if it indeed has seen the last chunk. + + The general response handling in `transfer.c:466` happens in function + `readwrite_data()`. This mainly operates now like: + + ``` + static CURLcode readwrite_data(data, ...) + { + do { + Curl_xfer_recv_resp(data, buf) + ... + Curl_xfer_write_resp(data, buf) + ... + } while(interested); + ... + } + ``` + + All the response data handling is implemented in + `Curl_xfer_write_resp()`. It calls the protocol handler's `write_resp()` + implementation if available, or does the default behaviour. + + All raw response data needs to pass through this function. Which also + means that anyone in possession of such data may call + `Curl_xfer_write_resp()`. + + Closes #12480 + +Daniel Stenberg (13 Jan 2024) + +- RELEASE-NOTES: synced + +- TODO: TFTP doesn't convert LF to CRLF for mode=netascii + + Closes #12655 + Closes #12690 + +- gen: do italics/bold for a range of letters, not just single word + + Previously it would match only on a sequence of non-space, which made it + miss to highlight for example "public suffix list". + + Updated the recent cookie.d edit from 5da57193b732 to use bold instead + of italics. + + Closes #12689 + +- docs: describe and highlight super cookies + + Reported-by: Yadhu Krishna M + + Closes #12687 + +- configure: when enabling QUIC, check that TLS supports QUIC + + Most importantly perhaps is when using OpenSSL that the used + build/flavor has the QUIC API: the vanilla OpenSSL does not, only + BoringSSL, libressl, AWS-LC and quictls do. + + Ref: https://github.com/curl/curl/commit/5d044ad9480a9f556f4b6a252d7533b1ba7f + e57e#r136780413 + + Closes #12683 + +Stefan Eissing (11 Jan 2024) + +- vquic: extract TLS setup into own source + + - separate ngtcp2 specific parts out + - provide callback during init to allow ngtcp2 to apply its defaults + + Closes #12678 + +Sergey Markelov (11 Jan 2024) + +- multi: remove total timer reset in file_do() while fetching file:// + + The total timer is properly reset in MSTATE_INIT. MSTATE_CONNECT starts + with resetting the timer that is a start point for further multi states. + If file://, MSTATE_DO calls file_do() that should not reset the total + timer. Otherwise, the total time is always less than the pre-transfer + and the start transfer times. + + Closes #12682 + +Daniel Stenberg (11 Jan 2024) + +- http_proxy: a blank CURLOPT_USERAGENT should not be used in CONNECT + + Extended test 80 to verify this. + + Reported-by: Stefan Eissing + Fixes #12680 + Closes #12681 + +- sectransp: do verify_cert without memdup for blobs + + Since the information is then already stored in memory, this can avoid + an extra set of malloc + free calls. + + Closes #12679 + +- hsts: remove assert for zero length domain + + A zero length domain can happen if the HSTS parser is given invalid + input data which is not unheard of and is done by the fuzzer. + + Follow-up from cfe7902111ae547873 + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65661 + + Closes #12676 + +- headers: make sure the trailing newline is not stored + + extended test1940 to verify blank header fields too + + Bug: https://curl.se/mail/lib-2024-01/0019.html + Reported-by: Dmitry Karpov + Closes #12675 + +- curl_easy_header.3: tiny language fix + + Closes #12672 + +- examples/range.c: add + + Closes #12671 + +- examples/netrc.c: add + + Closes #12671 + +- examples/ipv6.c: new example showing IPv6-only internet transfer + + Closes #12671 + +- examples/address-scope.c: renamed from ipv6.c + + It shows address scope use really + + Closes #12671 + +Stefan Eissing (9 Jan 2024) + +- multi: pollset adjust, init with FIRSTSOCKET during connect + + - `conn->sockfd` is set by `Curl_setup_transfer()`, but that + is called *after* the connection has been established + - use `conn->sock[FIRSTSOCKET]` instead + + Follow-up to a0f94800d507de + Closes #12664 + +Daniel Stenberg (9 Jan 2024) + +- WEBSOCKET.md: remove dead link + +- CI: spellcheck/appveyor: invoke configure --without-libpsl + + Follow-up to 2998874bb61ac6 + +- cmdline/docs/*.d: switch to using ## instead of .IP + + To make the editing easier. To write and to read. + + Closes #12667 + +- gen.pl: support ## for doing .IP in table-like lists + + Warn on use of .RS/.IP/.RE + + Closes #12667 + +Jay Satiro (9 Jan 2024) + +- cookie.d: Document use of empty string to enable cookie engine + + - Explain that --cookie "" can be used to enable the cookie engine + without reading any initial cookies. + + As is documented in CURLOPT_COOKIEFILE. + + Ref: https://curl.se/libcurl/c/CURLOPT_COOKIEFILE.html + + Bug: https://github.com/curl/curl/issues/12643#issuecomment-1879844420 + Reported-by: janko-js@users.noreply.github.com + + Closes https://github.com/curl/curl/pull/12646 + +Daniel Stenberg (9 Jan 2024) + +- setopt: use memdup0 when cloning COPYPOSTFIELDS + + Closes #12651 + +- telnet: use dynbuf instad of malloc for escape buffer + + Previously, send_telnet_data() would malloc + free a buffer every time + for escaping IAC codes. Now, it reuses a dynbuf for this purpose. + + Closes #12652 + +- CI: install libpsl or configure --without-libpsl in builds + + As a follow-up to the stricted libpsl check in configure + +- configure: make libpsl detection failure cause error + + To force users to explictily disable it if they really don't want it + used and make it harder to accidentally miss it. + + --without-libpsl is the option to use if PSL is not wanted. + + Closes #12661 + +- RELEASE-NOTES: synced + +- pop3: replace calloc + memcpy with memdup0 + + ... and make sure to return error on out of memory. + + Closes #12650 + +- lib: add debug log outputs for CURLE_BAD_FUNCTION_ARGUMENT + + Closes #12658 + +- mime: use memdup0 instead of malloc + memcpy + + Closes #12649 + +- tool_getparam: move the --rate logic into set_rate() + +- tool_getparam: switch to an enum for every option + + To make the big switch much easier to read/understand and to make it + easier to add new options. + +- tool_getparam: build post data using dynbuf (more) + +- tool_getparam: replace malloc + copy by dynbuf for --data + +- tool_getparam: make data_urlencode avoid direct malloc + + use aprintf() instead + +- tool_getparam: move the --url-query logic into url_query() + + This function is not doing post at all so it was always weirdly placed. + +- tool_getparam: move the --data logic into set_data() + +- tool_getparam: unify the cmdline switch() into a single one + + - easier to follow, easier to modify, easier to extend, possibly slightly + faster + + - each case now has the long option as a comment + +- tool_getparam: bsearch cmdline options + + - the option names are now alpha sorted and lookup is a lot faster + + - use case sensitive matching. It was previously case insensitive, but that + was not documented nor tested. + + - remove "partial match" feature. It was not documented, not tested and + was always fragile as existing use could break when we add a new + option + + - lookup short options via a table + + Closes #12631 + +Gabe (8 Jan 2024) + +- COPYING: update copyright year + + Closes #12654 + +Stefan Eissing (8 Jan 2024) + +- url: init conn->sockfd and writesockfd to CURL_SOCKET_BAD + + Also add more tracing to test 19 + + Follow-up to a0f9480 + + Fixes #12657 + Closes #12659 + +Daniel Stenberg (8 Jan 2024) + +- connect: remove margin from eyeballer alloc + + Presumably leftovers from debugging + + Closes #12647 + +- ftp: only consider entry path if it has a length + + Follow-up from 8edcfedc1a144f438bd1cdf814a0016cb + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65631 + + Avoids a NULL pointer deref. + + Closes #12648 + +Stefan Eissing (7 Jan 2024) + +- transfer: adjust_pollset improvements + + - let `multi_getsock()` initialize the pollset in what the + transfer state requires in regards to SEND/RECV + - change connection filters `adjust_pollset()` implementation + to react on the presence of POLLIN/-OUT in the pollset and + no longer check CURL_WANT_SEND/CURL_WANT_RECV + - cf-socket will no longer add POLLIN on its own + - http2 and http/3 filters will only do adjustments if the + passed pollset wants to POLLIN/OUT for the transfer on + the socket. This is similar to the HTTP/2 proxy filter + and works in stacked filters. + + Closes #12640 + +Daniel Stenberg (6 Jan 2024) + +- ftp: use memdup0 to store the OS from a SYST 215 response + + avoid malloc + direct buffer fiddle + + Closes #12639 + +- ftp: use dynbuf to store entrypath + + avoid direct malloc + + Closes #12638 + +Lealem Amedie (6 Jan 2024) + +- wolfssl: load certificate *chain* for PEM client certs + + Closes #12634 + +Stefan Eissing (4 Jan 2024) + +- http: adjust_pollset fix + + do not add a socket for POLLIN when the transfer does not want to send + (for example is paused). + + Follow-up to 47f5b1a + + Reported-by: bubbleguuum on github + Fixes #12632 + Closes #12633 + +Daniel Stenberg (3 Jan 2024) + +- tool: make parser reject blank arguments if not supported + + Already in the getstr() function that clones the input argument. + + Closes #12620 + +dependabot[bot] (3 Jan 2024) + +- build(deps): bump github/codeql-action from 2 to 3 + + Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 + to 3. + - [Release notes](https://github.com/github/codeql-action/releases) + - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) + - [Commits](https://github.com/github/codeql-action/compare/v2...v3) + + --- + updated-dependencies: + - dependency-name: github/codeql-action + dependency-type: direct:production + update-type: version-update:semver-major + ... + + Signed-off-by: dependabot[bot] + + Closes #12625 + +- build(deps): bump actions/checkout from 3 to 4 + + Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. + - [Release notes](https://github.com/actions/checkout/releases) + - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) + - [Commits](https://github.com/actions/checkout/compare/v3...v4) + + --- + updated-dependencies: + - dependency-name: actions/checkout + dependency-type: direct:production + update-type: version-update:semver-major + ... + + Signed-off-by: dependabot[bot] + + Closes #12624 + +- build(deps): bump actions/upload-artifact from 3 to 4 + + Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) f + rom 3 to 4. + - [Release notes](https://github.com/actions/upload-artifact/releases) + - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) + + --- + updated-dependencies: + - dependency-name: actions/upload-artifact + dependency-type: direct:production + update-type: version-update:semver-major + ... + + Signed-off-by: dependabot[bot] + + Closes #12627 + +- build(deps): bump actions/download-artifact from 3 to 4 + + Bumps [actions/download-artifact](https://github.com/actions/download-artifac + t) from 3 to 4. + - [Release notes](https://github.com/actions/download-artifact/releases) + - [Commits](https://github.com/actions/download-artifact/compare/v3...v4) + + --- + updated-dependencies: + - dependency-name: actions/download-artifact + dependency-type: direct:production + update-type: version-update:semver-major + ... + + Signed-off-by: dependabot[bot] + + Closes #12626 + +Stefan Eissing (3 Jan 2024) + +- http3/quiche: fix result code on a stream reset + + - fixes pytest failures in test 07_22 + - aligns CURLcode values on stream reset with ngtcp2 + + Closes #12629 + +Daniel Stenberg (2 Jan 2024) + +- setopt: clear mimepost when formp is freed + + A precaution to avoid a possibly dangling pointer left behind. + + Reported-by: Thomas Ferguson + Fixes #12608 + Closes #12621 + +Andy Alt (2 Jan 2024) + +- CI: Add dependabot.yml + + This will cause dependabot to open a PR when various actions are + updated, provided that the action maintainer has issued a release. + + Closes #12623 + +Gisle Vanem (2 Jan 2024) + +- content_encoding: change return code to typedef'ed enum + + ... to work around a clang ubsan warning. + + Fixes #12618 + Closes #12622 + +Daniel Stenberg (2 Jan 2024) + +- tool: prepend output_dir in header callback + + When Content-Disposition parsing is used and an output dir is prepended, + make sure to store that new file name correctly so that it can be used + for setting the file timestamp when --remote-time is used. + + Extended test 3012 to verify. + + Co-Authored-by: Jay Satiro + Reported-by: hgdagon on github + Fixes #12614 + Closes #12617 + +- test1254: fix typo in name plus shorten it + +- RELEASE-NOTES: synced + +Viktor Szakats (2 Jan 2024) + +- schannel: fix `-Warith-conversion` gcc 13 warning + + ``` + lib/vtls/schannel.c:1201:22: warning: conversion to 'unsigned int' from 'int' + may change the sign of the result [-Warith-conversion] + 1201 | *extension_len = *list_len + + | ^ + ``` + + Closes #12616 + +- asyn-thread: silence `-Wcast-align` warning for Windows + + Seen with llvm/clang 17: + ``` + lib/asyn-thread.c:310:5: warning: cast from 'PCHAR' (aka 'char *') to 'struct + thread_sync_data *' increases required alignment from 1 to 8 [-Wcast-align] + 310 | CONTAINING_RECORD(overlapped, struct thread_sync_data, w8.overlap + ped); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ + .../llvm-mingw/aarch64-w64-mingw32/include/winnt.h:717:48: note: expanded fro + m macro 'CONTAINING_RECORD' + 717 | #define CONTAINING_RECORD(address,type,field) ((type *)((PCHAR)(addre + ss) - (ULONG_PTR)(&((type *)0)->field))) + | ^~~~~~~~~~~~~~~~~~~~~~ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ``` + + Follow-up to a6bbc87f9e9ffb46a1801dfb983e7534825ed56b #12482 + + Ref: https://github.com/curl/curl/pull/12482#issuecomment-1873017261 + Closes #12615 + +Daniel Stenberg (2 Jan 2024) + +- tool_listhelp: regenerate after recent .d updates + + Makes it survive test 1478 + + Closes #12612 + +- test1478: verify src/tool_listhelp.c + + Verify that the source file on disk is identical to the output of gen.pl + listhelp, as otherwise they are out of sync and need attention. + + Closes #12612 + +- testutil: make runtests support %include + + Using this instruction, a test case can include the contents of a file + into the test during the preprocessing. + + Closes #12612 + +- runtests: for mode="text" on , fix newlines on both parts + + Closes #12612 + +Jay Satiro (2 Jan 2024) + +- quiche: return CURLE_HTTP3 on send to invalid stream + + Prior to this change if a send failed on a stream in an invalid state + (according to quiche) and not marked as closed (according to libcurl) + then the send function would return CURLE_SEND_ERROR. + + We already have similar code for ngtcp2 to return CURLE_HTTP3 in this + case. + + Caught by test test_07_upload.py: test_07_22_upload_parallel_fail. + + Fixes https://github.com/curl/curl/issues/12590 + Closes https://github.com/curl/curl/pull/12597 + +Daniel Stenberg (1 Jan 2024) + +- cmdline-opts: update availability for the *-ca-native options + + Closes #12613 + +Patrick Monnerat (31 Dec 2023) + +- openldap: fix STARTTLS + + It was not working anymore since introduction of connection filters. + + Also do not attempt to recover from a failing TLS negotiation with + CURLUSESSL_TRY. + + Closes #12610 + +Daniel Stenberg (31 Dec 2023) + +- haproxy-clientip.d: document the arg + + The arg keyword was missing and therefore not present in the man page. + + Closes #12611 + +annalee (29 Dec 2023) + +- configure: fix no default int compile error in ipv6 detection + + Closes #12607 + +Dan Fandrich (28 Dec 2023) + +- CI: Fix use of any-glob-to-all-files in the labeler + + Despite its name, this atom acts like one-glob-to-all-files and a + different syntax with braces must be used to get + any-glob-to-all-files semantics. Unfortunately, this makes the file + completely unreadable. + + Ref: https://github.com/actions/labeler/issues/731 + +Daniel Stenberg (29 Dec 2023) + +- CURLOPT_AUTOREFERER.3: mention CURLINFO_REFERER + +- CURLINFO_REFERER.3: clarify that it is the *request* header + + That libcurl itself sent in the most recent request + + Closes #12605 + +Jay Satiro (28 Dec 2023) + +- system_win32: fix a function pointer assignment warning + + - Use CURLX_FUNCTION_CAST to suppress a function pointer assignment + warning. + + a6bbc87f added lookups of some Windows API functions and then cast them + like `*(FARPROC*)&Curl_funcname = address`. Some versions of gcc warn + about that as breaking strict-aliasing rules so this PR changes those + assignments to use CURLX_FUNCTION_CAST. + + Bug: https://github.com/curl/curl/pull/12581#issuecomment-1869804317 + Reported-by: Marcel Raad + + Closes https://github.com/curl/curl/pull/12602 + +- verify-examples.pl: fail verification on unescaped backslash + + - Check that all backslashes in EXAMPLE are properly escaped. + + eg manpage must always use `\\n` never `\n`. + + This is because the manpage requires we always double blackslash to show + a single backslash. Prior to this change an erroneous single backslash + would pass through and compile even though it would not show correctly + in the manpage. + + Co-authored-by: Daniel Stenberg + + Ref: https://github.com/curl/curl/pull/12588 + + Closes https://github.com/curl/curl/pull/12589 + +- vtls: fix missing multissl version info + + - Fix erroneous buffer copy logic from ff74cef5. + + Prior to this change the MultiSSL version info returned to the user + was empty. + + Closes https://github.com/curl/curl/pull/12599 + +Daniel Stenberg (27 Dec 2023) + +- KNOWN_BUGS: [RTSP] Some methods do not support response bodies + + Closes #12414 + +Patrick Monnerat (27 Dec 2023) + +- openldap: fix an LDAP crash + + Reported-by: Ozan Cansel + Fixes #12593 + Closes #12600 + +Daniel Stenberg (27 Dec 2023) + +- getinfo: CURLINFO_QUEUE_TIME_T + + Returns the time, in microseconds, during which this transfer was held + in a waiting queue before it started "for real". A transfer might be put + in a queue if after getting started, it cannot create a new connection + etc due to set conditions and limits imposed by the application. + + Ref: #12293 + Closes #12368 + +- RELEASE-NOTES: synced + +Jay Satiro (26 Dec 2023) + +- examples/sendrecv: fix comment line length + + Caught by checksrc. + +Haydar Alaidrus (23 Dec 2023) + +- CURLOPT_POSTFIELDS.3: fix incorrect C string escape in example + + - Escape inner quotes with two backslashes. + + Two backslashes escapes the backslash for the man page and will show as + a single backslash. + + eg: "{\\"name\\": \\"daniel\\"}" shows as "{\"name\": \"daniel\"}". + + Closes https://github.com/curl/curl/pull/12588 + +Viktor Szakats (23 Dec 2023) + +- appveyor: tidy-ups + + - replace two remaining backslashes with forward slashes. + - tidy up the way we form and pass `TFLAGS`. + + Follow-up to 2d4d0c1fd32f5cc3f946c407c8eccd5477b287df #12572 + + Closes #12582 + +Stefan Eissing (22 Dec 2023) + +- transfer: fix upload rate limiting, add test cases + + - add test cases for rate limiting uploads for all + http versions + - fix transfer loop handling of limits. Signal a re-receive + attempt only on exhausting maxloops without an EAGAIN + - fix `data->state.selectbits` forcing re-receive to also + set re-sending when transfer is doing this. + + Reported-by: Karthikdasari0423 on github + Fixes #12559 + Closes #12586 + +Daniel Stenberg (22 Dec 2023) + +- mbedtls: free the entropy when threaded + + The entropy_free was never done for threaded builds, causing a small + (fixed) memory leak. + + Reported-by: RevaliQaQ on github + Fixes #12584 + Closes #12585 + +Stefan Eissing (22 Dec 2023) + +- http2: improved on_stream_close/data_done handling + + - there seems to be a code path that cleans up easy handles without + triggering DONE or DETACH events to the connection filters. This + would explain wh nghttp2 still holds stream user data + - add GOOD check to easy handle used in on_close_callback to + prevent crashes, ASSERTs in debug builds. + - NULL the stream user data early before submitting RST + - add checks in on_stream_close() to identify UNGOOD easy handles + + Reported-by: Hans-Christian Egtvedt + Fixes #10936 + Closes #12562 + +Daniel Stenberg (22 Dec 2023) + +- mprintf: overhaul and bugfixes + + In a test case using lots of snprintf() calls using many commonly used + %-codes per call, this version is around 30% faster than previous + version. + + It also fixes the #12561 bug which made it not behave correctly when + given unknown %-sequences. Fixing that flaw required a different take on + the problem, which resulted in the new two-arrays model. + + lib557: extended - Verify the #12561 fix and test more printf features + + unit1398: fix test: It used a $ only for one argument, which is not + supported. + + Fixes #12561 + Closes #12563 + +Viktor Szakats (21 Dec 2023) + +- appveyor: replace PowerShell with bash + parallel autotools + + PowerShell works (after a steep development curve), but one property of + it stuck and kept causing unresolvable usability issues: With + `$ErrorActionPreference=Stop`, it does abort on failures, but shows only + the first line of the error message. In `Continue` mode, it shows the + full error message, but doesn't stop on all errors. Another issue is + PowerShell considering any stderr output as if the command failed (this + has been improved in 7.2 (2021-Nov), but fixed versions aren't running + in CI and will not be for a long time in all test images.) + + Thus, we're going with bash. + + Also: + - use `-j2` with autotools tests, making them finish 5-15 minutes per + job faster. + - omit `POSIX_PATH_PREFIX`. + - use `WINDIR`. + - prefer forward slashes. + + Follow-up to: 75078a415d9c769419aed4153d3d525a8eba95af #11999 + Ref: #12444 + + Fixes #12560 + Closes #12572 + +Pavel Pavlov (21 Dec 2023) + +- asyn-thread: use GetAddrInfoExW on >= Windows 8 + + For doing async DNS resolution instead of starting a thread for each + request. + + Fixes #12481 + Closes #12482 + +Daniel Stenberg (21 Dec 2023) + +- strerror: repair get_winsock_error() + + It would try to read longer than the provided string and crash. + + Follow-up to ff74cef5d4a0cf60106517a1c7384 + Reported-by: calvin2021y on github + Fixes #12578 + Closes #12579 + +- CURLOPT_SSH_*_KEYFILE: clarify + + Closes #12554 + +ivanfywang (21 Dec 2023) + +- ngtcp2: put h3 at the front of alpn + + Closes #12576 + +Daniel Stenberg (21 Dec 2023) + +- test460: verify a command line using --expand with no argument + + This verifies the fix for #12565 + +- tool_getparam: do not try to expand without an argument + + This would lead to a segfault. + + Fixes #12565 + Reported-by: Geeknik Labs + Closes #12575 + +- RELEASE-NOTES: synced + + Bumped version to 8.6.0 because of changes + +- Makefile.am: fix the MSVC project generation + + It made the vcxproj files not get included in dist tarballs. + + Regression since 74423b5df4c8117891eb89 (8.5.0) + + Reported-by: iAroc on github + Fixes #12564 + Closes #12567 + +zengwei2000 (21 Dec 2023) + +- altsvc: free 'as' when returning error + + Closes #12570 + + Signed-off-by: zengwei + +Viktor Szakats (20 Dec 2023) + +- build: fix `-Wconversion`/`-Wsign-conversion` warnings + + Fix remaining warnings in examples and tests which are not suppressed + by the pragma in `lib/curl_setup.h`. + + Silence a toolchain issue causing warnings in `FD_SET()` calls with + older Cygwin/MSYS2 builds. Likely fixed on 2020-08-03 by: + https://cygwin.com/git/?p=newlib-cygwin.git;a=commitdiff;h=5717262b8ecfed0f7f + ab63e2c09c78991e36f9dd + + Follow-up to 2dbe75bd7f3c36837aa06fd87a442bdf3fb7faef #12492 + + Closes #12557 + +- build: fix some `-Wsign-conversion`/`-Warith-conversion` warnings + + - enable `-Wsign-conversion` warnings, but also setting them to not + raise errors. + - fix `-Warith-conversion` warnings seen in CI. + These are triggered by `-Wsign-converion` and causing errors unless + explicitly silenced. It makes more sense to fix them, there just a few + of them. + - fix some `-Wsign-conversion` warnings. + - hide `-Wsign-conversion` warnings with a `#pragma`. + - add macro `CURL_WARN_SIGN_CONVERSION` to unhide them on a per-build + basis. + - update a CI job to unhide them with the above macro: + https://github.com/curl/curl/actions/workflows/linux.yml -> OpenSSL -O3 + + Closes #12492 + +- cmake: tidy-up `OtherTests.cmake` + + - make more obvious which detection uses which prep steps. + - merge and streamline conditions. + - these should not alter detection results. + + Also align log output messages from + `Macros.cmake` / `curl_internal_test` with rest of the build. + + Closes #12551 + +- appveyor: switch to out-of-tree builds + + With cmake and autotools. + + Closes #12550 + +Daniel Stenberg (19 Dec 2023) + +- DEPRECATE.md: mention that NTLM_WB no longer works + + Ref: #12479 + Closes #12553 + +- CURLOPT_SERVER_RESPONSE_TIMEOUT_MS: add + + Proposed-by: Yifei Kong + Ref: https://curl.se/mail/lib-2023-11/0023.html + Closes #12369 + +Viktor Szakats (18 Dec 2023) + +- build: more `-Wformat` fixes + + - memdebug: update to not trigger `-Wformat-nonliteral` warnings. + - imap: mark `imap_sendf()` with `CURL_PRINTF()`. + - tool_msgs: mark static function with `CURL_PRINTF()`. + + Follow-up to 3829759bd042c03225ae862062560f568ba1a231 #12489 + + Closes #12540 + +- windows: delete redundant headers + + `winsock2.h` pulls in `windows.h`. `ws2tcpip.h` pulls in `winsock2.h`. + `winsock2.h` and `ws2tcpip.h` are also pulled by `curl/curl.h`. + + Keep only those headers that are not already included, or the code under + it uses something from that specific header. + + Closes #12539 + +- cmake: prefill/cache `HAVE_STRUCT_SOCKADDR_STORAGE` + + Also add missing include to `OtherTests.cmake`. It didn't cause an issue + because the parent already included this earlier by chance. + + Closes #12537 + +Daniel Stenberg (18 Dec 2023) + +- runner.pm: fix perl warning when running tests + + Use of uninitialized value $runner::gdbthis in numeric eq (==) at runner. + pm + + Follow-up from 3dcf301752a09d9 + + Closes #12549 + +- runtests: support -gl. Like -g but for lldb. + + Follow-up to 63b5748 + + Invokes the test case via lldb instead of gdb. Since using gdb is such a + pain on mac, using lldb is sometimes less quirky. + + Closes #12547 + +- curl.h: add CURLE_TOO_LARGE + + A new error code to be used when an internal field grows too large, like + when a dynbuf reaches its maximum. Previously it would return + CURLE_OUT_OF_MEMORY for this, which is highly misleading. + + Ref: #12268 + Closes #12269 + +- CI/circleci: disable MQTT in the HTTP-only build + + And remove the use of configure options that don't actually exist + + Closes #12546 + +Yedaya Katsman (18 Dec 2023) + +- tests: respect $TMPDIR when creating unix domain sockets + + When running on termux, where $TMPDIR isn't /tmp, running the tests + failed, since the server config tried creating sockets in /tmp, without + checking the temp dir config. Use the TMPDIR variable that makes it find + the correct directory everywhere [0] + + [0] https://perldoc.perl.org/File::Temp#tempfile + + Closes #12545 + +Viktor Szakats (17 Dec 2023) + +- ssh: fix namespace of two local macros + + Avoid using the libssh and libssh2 macro namespaces by prefixing + these local macro names with `CURL_`. + + Follow-up to 413a0fedd02c8c6df1d294534b8c6e306fcca7a2 #12346 + + Reviewed-by: Daniel Stenberg + Closes #12544 + +- cmake: whitespace tidy-up in `OtherTests.cmake` + + Closes #12538 + +Mark Sinkovics (16 Dec 2023) + +- cmake: fix generation for system name iOS + + This PR fixes a problem that happens during CMake configuration when + the `CMAKE_SYSTEM_NAME` set to `iOS` and not `Darwin`. This value is + available (as far as I remember) version 3.14. The final solution + (thanks to @vszakats) is to use `APPLE` which contains all the Apple + platforms https://cmake.org/cmake/help/latest/variable/APPLE.html. + + This issue was found when during vcpkg installation. Running command + `vcpkg install curl:arm64-ios` and `vcpkg install curl:x64-ios` failed + with message: + ``` + CMake Error: try_run() invoked in cross-compiling mode, please set the follow + ing cache variables appropriately: + HAVE_H_ERRNO_ASSIGNABLE_EXITCODE (advanced) + ``` + After this fix, I was able to compile the compile the binary without + any issue. + + In addition to that fix, this PR also contains an simplification to + check if the platform is not APPLE. + + Co-authored-by: Viktor Szakats + Closes #12515 + +Daniel Stenberg (16 Dec 2023) + +- RELEASE-NOTES: synced + +Baruch Siach (16 Dec 2023) + +- gnutls: fix build with --disable-verbose + + infof() parameters must be defined event with --disable-verbose since + commit dac293cfb702 ("lib: apache style infof and trace + macros/functions"). + + Move also 'ptr' definition under !CURL_DISABLE_VERBOSE_STRINGS. + + Fixes the following build failure: + + In file included from ../lib/sendf.h:29, + from vtls/gtls.c:44: + vtls/gtls.c: In function 'Curl_gtls_verifyserver': + vtls/gtls.c:841:34: error: 'version' undeclared (first use in this function); + did you mean 'session'? + 841 | gnutls_protocol_get_name(version), ptr); + | ^~~~~~~ + + Closes #12505 + +Viktor Szakats (16 Dec 2023) + +- build: delete unused `HAVE_{GSSHEIMDAL,GSSMIT,HEIMDAL}` + + Stop setting `HAVE_GSSHEIMDAL`, `HAVE_GSSMIT` and `HAVE_HEIMDAL`. + There was no place in the build system or source code that used them. + + Reviewed-by: Daniel Stenberg + Closes #12506 + +- build: remove redundant `CURL_PULL_*` settings + + These macros were not propagated to the source code from CMake. + + autotools set only one of them (`CURL_PULL_SYS_POLL_H`), initially to + address an AIX issue [1]. This later broke when introducing `system.h` + [2] without the logic it enabled. A subsequent fix [3] re-added the + logic, and also enabled it for AIX before its use, directly in + `system.h`. + + [1] 2012-11-23: 665adcd4b7bcdb7deb638cdc499fbe71f8d777f2 + [2] 2017-03-29: 9506d01ee50d5908138ebad0fd9fbd39b66bd64d #1373 + [3] 2017-08-25: 8a84fcc4b59e8b78d2acc6febf44a43d6bc81b59 #1828 #1833 + + Reviewed-by: Daniel Stenberg + Closes #12502 + +- system.h: sync mingw `CURL_TYPEOF_CURL_SOCKLEN_T` with other compilers + + Align mingw with the other Windows compilers and use the `int` type for + `CURL_TYPEOF_CURL_SOCKLEN_T` (and thus for `curl_socklent_t`). This + makes it unnecessary to make a mingw-specific trick and pull all Windows + headers early just for this type definition. This type is specific to + Windows, not to the compiler. mingw-w64's Windows header maps it to + `int` too. + + With this we also delete all remaining uses of `CURL_PULL_WS2TCPIP_H`. + + [ The official solution is to use `socklen_t` for all Windows compilers. + In this case we may want to update `curl/curl.h` to pull in Windows + headers before `system.h`. ] + + Reviewed-by: Daniel Stenberg + Reviewed-by: Jay Satiro + Closes #12501 + +- windows: simplify detecting and using system headers + + - autotools, cmake: assume that if we detect Windows, `windows.h`, + `winsock2.h` and `ws2tcpip.h` do exist. + - lib: fix 3 outlier `#if` conditions to use `USE_WINSOCK` instead of + looking for `winsock2.h`. + - autotools: merge 3 Windows check methods into one. + - move Watt-32 and lwIP socket support to `setup-win32.h` from + `config-win32.h`. It opens up using these with all build tools. Also + merge logic with Windows Sockets. + - fix to assume Windows sockets with the mingw32ce toolchain. + Follow-up to: 2748c64d605b19fb419ae56810ad8da36487a2d4 + - cmake: delete unused variable `signature_call_conv` since + eb33ccd5332435fa50f1758e5debb869c6942b7f. + - autotools: simplify `CURL_CHECK_WIN32_LARGEFILE` detection. + - examples/externalsocket: fix header order. + - cmake/OtherTests.cmake: delete Windows-specific `_source_epilogue` + that wasn't used anymore. + - cmake/OtherTests.cmake: set `WIN32_LEAN_AND_MEAN` for test + `SIZEOF_STRUCT_SOCKADDR_STORAGE`. + + After this patch curl universally uses `_WIN32` to guard + Windows-specific logic. It guards Windows Sockets-specific logic with + `USE_WINSOCK` (this might need further work). + + Reviewed-by: Jay Satiro + Closes #12495 + +- build: enable missing OpenSSF-recommended warnings, with fixes + + https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening + -Guide-for-C-and-C++.html + as of 2023-11-29 [1]. + + Enable new recommended warnings (except `-Wsign-conversion`): + + - enable `-Wformat=2` for clang (in both cmake and autotools). + - add `CURL_PRINTF()` internal attribute and mark functions accepting + printf arguments with it. This is a copy of existing + `CURL_TEMP_PRINTF()` but using `__printf__` to make it compatible + with redefinting the `printf` symbol: + https://gcc.gnu.org/onlinedocs/gcc-3.0.4/gcc_5.html#SEC94 + - fix `CURL_PRINTF()` and existing `CURL_TEMP_PRINTF()` for + mingw-w64 and enable it on this platform. + - enable `-Wimplicit-fallthrough`. + - enable `-Wtrampolines`. + - add `-Wsign-conversion` commented with a FIXME. + - cmake: enable `-pedantic-errors` the way we do it with autotools. + Follow-up to d5c0351055d5709da8f3e16c91348092fdb481aa #2747 + - lib/curl_trc.h: use `CURL_FORMAT()`, this also fixes it to enable format + checks. Previously it was always disabled due to the internal `printf` + macro. + + Fix them: + + - fix bug where an `set_ipv6_v6only()` call was missed in builds with + `--disable-verbose` / `CURL_DISABLE_VERBOSE_STRINGS=ON`. + - add internal `FALLTHROUGH()` macro. + - replace obsolete fall-through comments with `FALLTHROUGH()`. + - fix fallthrough markups: Delete redundant ones (showing up as + warnings in most cases). Add missing ones. Fix indentation. + - silence `-Wformat-nonliteral` warnings with llvm/clang. + - fix one `-Wformat-nonliteral` warning. + - fix new `-Wformat` and `-Wformat-security` warnings. + - fix `CURL_FORMAT_SOCKET_T` value for mingw-w64. Also move its + definition to `lib/curl_setup.h` allowing use in `tests/server`. + - lib: fix two wrongly passed string arguments in log outputs. + Co-authored-by: Jay Satiro + - fix new `-Wformat` warnings on mingw-w64. + + [1] https://github.com/ossf/wg-best-practices-os-developers/blob/56c0fde3895b + fc55c8a973ef49a2572c507b2ae1/docs/Compiler-Hardening-Guides/Compiler-Options- + Hardening-Guide-for-C-and-C%2B%2B.md + + Closes #12489 + +- Makefile.mk: drop Windows support + + And DLL-support with it. This leaves `Makefile.mk` for MS-DOS and Amiga. + + We recommend CMake instead. With unity mode it's much faster, and about + the same without. + + Ref: https://github.com/curl/curl/pull/12221#issuecomment-1783761806 + Reviewed-by: Daniel Stenberg + Closes #12224 + +Daniel Stenberg (16 Dec 2023) + +- cmdline-docs: use .IP consistently + + Remove use of .TP and some .B. The idea is to reduce nroff syntax as + much as possible and to use it consistently. Ultimately, we should be + able to introduce our own easier-to-use-and-read syntax/formatting and + convert on generation time. + + Closes #12535 + +Tatsuhiko Miyagawa (16 Dec 2023) + +- http: fix off-by-one error in request method length check + + It should allow one more byte. + + Closes #12534 + +Daniel Stenberg (15 Dec 2023) + +- curl: show ipfs and ipns as supported "protocols" + + They are accepted schemes in URLs passed to curl (the tool, not the + library). + + Also makes curl-config show the same list. + + Co-Authored-by: Jay Satiro + Reported-by: Chara White + Bug: https://curl.se/mail/archive-2023-12/0026.html + Closes #12508 + +- Revert "urldata: move async resolver state from easy handle to connectdata" + + This reverts commit 56a4db2e4e2bcb9a0dcb75b83560a78ef231fcc8 (#12198) + + We want the c-ares channel to be held in the easy handle, not per + connection - for performance. + + Closes #12524 + +Viktor Szakats (15 Dec 2023) + +- openssl: re-match LibreSSL deinit with init + + Earlier we switched to use modern initialization with LibreSSL v2.7.0 + and up, but did not touch deinitialization [1]. Fix it in this patch. + + Regression from bec0c5bbf34369920598678161d2df8bea0e243b #11611 + + [1] https://github.com/curl/curl/pull/11611#issuecomment-1668654014 + + Reported-by: Mike Hommey + Reviewed-by: Daniel Stenberg + Fixes #12525 + Closes #12526 + +Daniel Stenberg (14 Dec 2023) + +- libssh: supress warnings without version check + + Define unconditionally. + + Follow-up from d21bd2190c46ad7fa + + Closes #12523 + +- hostip: return error immediately when Curl_ip2addr() fails + + Closes #12522 + +Theo (14 Dec 2023) + +- libssh: improve the deprecation warning dismissal + + Previous code was compiler dependant, and dismissed all deprecation warnings + indiscriminately. + + libssh provides a way to disable the deprecation warnings for libssh only, an + d + naturally this is the preferred way. + + This commit uses that, to prevent the erroneous hiding of potential, unrelate + d + deprecation warnings. + + Fixes #12519 + Closes #12520 + +Daniel Stenberg (14 Dec 2023) + +- test1474: removed + + The test was already somewhat flaky and disabled on several platforms, + and after 1da640abb688 even more unstable. + +- readwrite_data: loop less + + This function is made to loop in order to drain incoming data + faster. Completely removing the loop has a measerably negative impact on + transfer speeds. + + Downsides with the looping include + + - it might call the progress callback much more seldom. Especially if + the write callback is slow. + + - rate limiting becomes less exact + + - a single transfer might "starve out" other parallel transfers + + - QUIC timers for other connections can't be maintained correctly + + The long term fix should be to remove the loop and optimize coming back + to avoid the transfer speed penalty. + + This fix lower the max loop count to reduce the starvation problem, and + avoids the loop completely for when rate-limiting is in progress. + + Ref: #12488 + Ref: https://curl.se/mail/lib-2023-12/0012.html + Closes #12504 + +Stefan Eissing (14 Dec 2023) + +- lib: eliminate `conn->cselect_bits` + + - use `data->state.dselect_bits` everywhere instead + - remove `bool *comeback` parameter as non-zero + `data->state.dselect_bits` will indicate that IO is + incomplete. + + Closes #12512 + +- connect: refactor `Curl_timeleft()` + + - less local vars, "better" readability + - added documentation + + Closes #12518 + +Dmitry Karpov (14 Dec 2023) + +- cookie: avoid fopen with empty file name + + Closes #12514 + +Viktor Szakats (13 Dec 2023) + +- tests/server: delete workaround for old-mingw + + mingw-w64 1.0 comes with w32api v3.12, thus doesn't need this. + + Follow-up to 38029101e2d78ba125732b3bab6ec267b80a0e72 #11625 + + Reviewed-by: Jay Satiro + Closes #12510 + +- cmake: delete obsolete TODOs more [ci skip] + + - manual completed: 898b012a9bf388590c4be7f526815b5ab74feca1 #1288 + - soname completed: 5de6848f104d7cb0017080e31216265ac19d0dde #10023 + - bunch of others that are completed + - `NTLM_WB_ENABLED` is implemented in a basic form, and now also + scheduled for removal, so a TODO at this point isn't useful. + + And this 'to-check' item: + + Q: "The cmake build selected to run gcc with -fPIC on my box while the + plain configure script did not." + + A: With CMake, since 2ebc74c36a19a1700af394c16855ce144d9878e3 #11546 + and fc9bfb14520712672b4784e8b48256fb29204011 #11627, we explicitly + enable PIC for libcurl shared lib. Or when building libcurl for + shared and static lib in a single pass. We do this by default for + Windows or when enabled by the user via `SHARE_LIB_OBJECT`. + Otherwise we don't touch this setting. Meaning the default set by + CMake (if any) or the toolchain is used. On Debian Bookworm, this + means that PIC is disabled for static libs by default. Some platforms + (like macOS), has PIC enabled by default. + autotools supports the double-pass mode only, and in that case + CMake seems to match PIC behaviour now (as tested on Linux with gcc.) + + Follow-up to 5d5dfdbd1a6c40bd75e982b66f49e1fa3a7eeae7 #12500 + + Reviewed-by: Jay Satiro + Closes #12509 + +Stefan Eissing (12 Dec 2023) + +- CLIENT-WRITERS: design and use documentation + + Closes #12507 + +Viktor Szakats (12 Dec 2023) + +- cmake: delete obsolete TODO items [ci skip] + + There is always room for improvement, but CMake is up to par now with + autotools, so there is no longer a good reason to keep around these + inline TODO items. + + Answering one of questions: + + Q: "The gcc command line use neither -g nor any -O options. As a + developer, I also treasure our configure scripts's --enable-debug + option that sets a long range of "picky" compiler options." + + A: CMake offers the `CMAKE_BUILD_TYPE` variable to control debug info + and optimization level. E.g.: + - `Release` = `-O3` + no debug info + - `MinSizeRel` = `-Os` + no debug info + - `Debug` = `-O0` + debug info + + https://stackoverflow.com/questions/48754619/what-are-cmake-build-type-deb + ug-release-relwithdebinfo-and-minsizerel/59314670#59314670 + https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#defaul + t-and-custom-configurations + + For picky warnings we have the `PICKY_COMPILER` options, enabled by + default. + + Closes #12500 + +Stefan Eissing (11 Dec 2023) + +- CONNECTION-FILTERS: update documentation + + Closes #12497 + +Daniel Stenberg (11 Dec 2023) + +- lib: reduce use of strncpy + + - bearssl: select cipher without buffer copies + - http_aws_sigv4: avoid strncpy, require exact timestamp length + - http_aws_sigv4: use memcpy isntead of strncpy + - openssl: avoid strncpy calls + - schannel: check for 1.3 algos without buffer copies + - strerror: avoid strncpy calls + - telnet: avoid strncpy, return error on too long inputs + - vtls: avoid strncpy in multissl_version() + + Closes #12499 + +- CI/distcheck: run full tests + + To be able to detect missing files better, this now runs the full CI + test suite. If done before, it would have detected #12462 before + release. + + Closes #12503 + +- docs: clean up Protocols: for cmdline options + + ... and some other minor polish. + + Closes #12496 + +- cmdline/gen: fix the sorting of the man page options + + They were previously sorted based on the file names, which use a .d + extension, making "data" get placed after "data-binary" etc. Making the + sort ignore the extention fixes the ordering. + + Reported-by: Boris Verkhovskiy + Bug: https://curl.se/mail/archive-2023-12/0014.html + Closes #12494 + +Daniel Gustafsson (9 Dec 2023) + +- doh: remove unused local variable + + The nurl variable is no longer used during probing following + a refactoring, so remove. + + Closes #12491 + +Jay Satiro (8 Dec 2023) + +- build: fix Windows ADDRESS_FAMILY detection + + - Include winsock2.h for Windows ADDRESS_FAMILY detection. + + Prior to this change cmake detection didn't work because it included + ws2def.h by itself, which is missing needed types from winsock2.h. + + Prior to this change autotools detection didn't work because it did not + include any Windows header. + + In both cases libcurl would fall back on unsigned short as the address + family type, which is the same as ADDRESS_FAMILY. + + Co-authored-by: Viktor Szakats + + Closes https://github.com/curl/curl/pull/12441 + +Daniel Stenberg (8 Dec 2023) + +- lib: rename Curl_strndup to Curl_memdup0 to avoid misunderstanding + + Since the copy does not stop at a null byte, let's not call it anything + that makes you think it works like the common strndup() function. + + Based on feedback from Jay Satiro, Stefan Eissing and Patrick Monnerat + + Closes #12490 + +- convsrctest.pl: removed: not used, not shipped in tarballs + +- tests: rename tests scripts to the test number + + It is hard to name the scripts sensibly. Lots of them are similarly + named and the name did not tell which test that used them. + + The new approach is rather to name them based on the test number that + runs them. Also helps us see which scripts are for individual tests + rather than for general test infra. + + - badsymbols.pl -> test1167.pl + - check-deprecated.pl -> test1222.pl + - check-translatable-options.pl -> test1544.pl + - disable-scan.pl -> test1165.pl + - error-codes.pl -> test1175.pl + - errorcodes.pl -> test1477.pl + - extern-scan.pl -> test1135.pl + - manpage-scan.pl -> test1139.pl + - manpage-syntax.pl -> test1173.pl + - markdown-uppercase.pl -> test1275.pl + - mem-include-scan.pl -> test1132.pl + - nroff-scan.pl -> test1140.pl + - option-check.pl -> test1276.pl + - options-scan.pl -> test971.pl + - symbol-scan.pl -> test1119.pl + - version-scan.pl -> test1177.pl + + Closes #12487 + +MichaÅ‚ Antoniak (8 Dec 2023) + +- sendf: fix compiler warning with CURL_DISABLE_HEADERS_API + + fix MSVC warning C4189: 'htype': local variable is initialized but not + referenced - when CURL_DISABLE_HEADERS_API is defined. + + Closes #12485 + +Viktor Szakats (8 Dec 2023) + +- tidy-up: whitespace + + Closes #12484 + +Stefan Eissing (7 Dec 2023) + +- test_02_download: fix paramters to test_02_27 + + - it is a special client that only ever uses http/2 + + Closes #12467 + +MichaÅ‚ Antoniak (7 Dec 2023) + +- vtls: remove the Curl_cft_ssl_proxy object if CURL_DISABLE_PROXY + + Closes #12459 + +Daniel Stenberg (7 Dec 2023) + +- lib: strndup/memdup instead of malloc, memcpy and null-terminate + + - bufref: use strndup + - cookie: use strndup + - formdata: use strndup + - ftp: use strndup + - gtls: use aprintf instead of malloc + strcpy * 2 + - http: use strndup + - mbedtls: use strndup + - md4: use memdup + - ntlm: use memdup + - ntlm_sspi: use strndup + - pingpong: use memdup + - rtsp: use strndup instead of malloc, memcpy and null-terminate + - sectransp: use strndup + - socks_gssapi.c: use memdup + - vtls: use dynbuf instead of malloc, snprintf and memcpy + - vtls: use strdup instead of malloc + memcpy + - wolfssh: use strndup + + Closes #12453 + +- strdup: remove the memchr check from Curl_strndup + + It makes it possible to clone a binary chunk of data. + + Closes #12453 + +- ftp: handle the PORT parsing without allocation + + Also reduces amount of *cpy() calls. + + Closes #12456 + +- RELEASE-NOTES: synced + + Bumped to 8.5.1 + +- url: for disabled protocols, mention if found in redirect + + To help users better understand where the URL (and denied scheme) comes + from. Also removed "in libcurl" from the message, since the disabling + can be done by the application. + + The error message now says "not supported" or "disabled" depending on + why it was denied: + + Protocol "hej" not supported + Protocol "http" disabled + + And in redirects: + + Protocol "hej" not supported (in redirect) + Protocol "http" disabled (in redirect) + + Reported-by: Mauricio Scheffer + Fixes #12465 + Closes #12469 + +Stefan Eissing (6 Dec 2023) + +- sectransp_ make TLSCipherNameForNumber() available in non-verbose config + + Reported-by: Cajus Pollmeier + Closes #12476 + Fixes #12474 + +YX Hao (6 Dec 2023) + +- lib: fix variable undeclared error caused by `infof` changes + + `--disable-verbose` yields `CURL_DISABLE_VERBOSE_STRINGS` defined. + `infof` isn't `Curl_nop_stmt` anymore: dac293c. + + Follow-up to dac293c + + Closes #12470 + +Viktor Szakats (6 Dec 2023) + +- tidy-up: fix yamllint whitespace issues in labeler.yml + + Follow-up to bda212911457c6fadfbba50be61afc4ca513fa56 #12466 + + Reviewed-by: Dan Fandrich + Closes #12475 + +- tidy-up: fix yamllint whitespace issues + + Closes #12466 + +Chris Sauer (6 Dec 2023) + +- cmake: fix typo + + Follow-up to aace27b + Closes #12464 + +Daniel Stenberg (6 Dec 2023) + +- dist: add tests/errorcodes.pl to the tarball + + Used by test 1477 + + Reported-by: Xi Ruoyao + Follow-up to 0ca3a4ec9a7 + Fixes #12462 + Closes #12463 + +Dan Fandrich (6 Dec 2023) + +- github/labeler: update a missed key in the v5 upgrade + + Follow-up to ce03fe3ba + +Version 8.5.0 (6 Dec 2023) + +Daniel Stenberg (6 Dec 2023) + +- RELEASE-NOTES: synced + + The curl 8.5.0 release. + +Dan Fandrich (5 Dec 2023) + +- github/labeler: switch from the beta to labeler v5 + + Some keys were renamed and the dot option was made default. + + Closes #12458 + +Daniel Stenberg (5 Dec 2023) + +- DEPRECATE: remove NTLM_WB in June 2024 + + Ref: https://curl.se/mail/lib-2023-12/0010.html + + Closes #12451 + +Jacob Hoffman-Andrews (4 Dec 2023) + +- rustls: implement connect_blocking + + Closes #11647 + +Daniel Stenberg (4 Dec 2023) + +- examples/rtsp-options.c: add + + Just a bare bones RTSP example using CURLOPT_RTSP_SESSION_ID and + CURLOPT_RTSP_REQUEST set to CURL_RTSPREQ_OPTIONS. + + Closes #12452 + +Stefan Eissing (4 Dec 2023) + +- ngtcp2: ignore errors on unknown streams + + - expecially in is_alive checks on connections, we might + see incoming packets on streams already forgotten and closed, + leading to errors reported by nghttp3. Ignore those. + + Closes #12449 + +Daniel Stenberg (4 Dec 2023) + +- docs: make all examples in all libcurl man pages compile + + Closes #12448 + +- checksrc.pl: support #line instructions + + makes it identify the correct source file and line + +- GHA/man-examples: verify libcurl man page examples + +- verify-examples.pl: verify that all man page examples compile clean + +- RELEASE-NOTES: synced + +Graham Campbell (2 Dec 2023) + +- http3: bump ngtcp2 and nghttp3 versions + + nghttp3 v1.1.0 + ngtcp2 v1.1.0 + + In docs and CI + + Closes #12446 + +- CI/quiche: use `3.1.4+quic` consistently in CI workflows + + Closes #12447 + +Viktor Szakats (2 Dec 2023) + +- test1545: disable deprecation warnings + + Fixes: + https://ci.appveyor.com/project/curlorg/curl/builds/48631551/job/bhx74e0i66yr + p6pk#L1205 + + Same with details: + https://ci.appveyor.com/project/curlorg/curl/builds/48662893/job/ol8a78q9gmil + b6wt#L1263 + ``` + tests/libtest/lib1545.c:38:3: error: 'curl_formadd' is deprecated: since 7.56 + .0. Use curl_mime_init() [-Werror=deprecated-declarations] + 38 | curl_formadd(&m_formpost, &lastptr, CURLFORM_COPYNAME, "file", + | ^~~~~~~~~~~~ + [...] + ``` + + Follow-up to 07a3cd83e0456ca17dfd8c3104af7cf45b7a1ff5 #12421 + + Fixes #12445 + Closes #12444 + +Daniel Stenberg (2 Dec 2023) + +- INSTALL: update list of ports and CPU archs + +- symbols-in-versions: the CLOSEPOLICY options are deprecated + + The were used with the CURLOPT_CLOSEPOLICY option, which *never* worked. + +z2_ (1 Dec 2023) + +- build: fix builds that disable protocols but not digest auth + + - Build base64 functions if digest auth is not disabled. + + Prior to this change if some protocols were disabled but not digest auth + then a build error would occur due to missing base64 functions. + + Fixes https://github.com/curl/curl/issues/12440 + Closes https://github.com/curl/curl/pull/12442 + +MichaÅ‚ Antoniak (1 Dec 2023) + +- connect: reduce number of transportation providers + + Use only the ones necessary - the ones that are built-in. Saves a few + bytes in the resulting code. + + Closes #12438 + +David Benjamin (1 Dec 2023) + +- vtls: consistently use typedef names for OpenSSL structs + + The foo_st names don't appear in OpenSSL public API documentation. The + FOO typedefs are more common. This header was already referencing + SSL_CTX via . There is a comment about avoiding + , but OpenSSL actually declares all the typedefs in + , which is already included by (and + every other OpenSSL header), so just use that. Though I've included it + just to be explicit. + + (I'm also fairly sure including already triggers the + Schannel conflicts anyway. The comment was probably just out of date.) + + Closes #12439 + +Lau (1 Dec 2023) + +- libcurl-security.3: fix typo + + Fixed minimal typo. + + Closes #12437 + +Stefan Eissing (1 Dec 2023) + +- ngtcp2: fix races in stream handling + + - fix cases where ngtcp2 invokes callbacks on streams that + nghttp3 has already forgotten. Ignore the NGHTTP3_ERR_STREAM_NOT_FOUND + in these cases as it is normal behaviour. + + Closes #12435 + +Emanuele Torre (1 Dec 2023) + +- tool_writeout_json: fix JSON encoding of non-ascii bytes + + char variables if unspecified can be either signed or unsigned depending + on the platform according to the C standard; in most platforms, they are + signed. + + This meant that the *i<32 waas always true for bytes with the top bit + set. So they were always getting encoded as \uXXXX, and then since they + were also signed negative, they were getting extended with 1s causing + '\xe2' to be expanded to \uffffffe2, for example: + + $ curl --variable 'v=“' --expand-write-out '{{v:json}}\n' file:///dev/nul + l + \uffffffe2\uffffff80\uffffff9c + + I fixed this bug by making the code use explicitly unsigned char* + variables instead of char* variables. + + Test 268 verifies + + Reported-by: iconoclasthero + Closes #12434 + +Stefan Eissing (1 Dec 2023) + +- cf-socket: TCP trace output local address used in connect + + Closes #12427 + +Jay Satiro (1 Dec 2023) + +- CURLINFO_PRETRANSFER_TIME_T.3: fix time explanation + + - Change CURLINFO_PRETRANSFER_TIME_T explanation to say that it + includes protocol-specific instructions that trigger a transfer. + + Prior to this change it explicitly said that it did not include those + instructions in the time, but that is incorrect. + + The change is a copy of the fixed explanation already in + CURLINFO_PRETRANSFER_TIME, fixed by ec8dcd7b. + + Reported-by: eeverettrbx@users.noreply.github.com + + Fixes https://github.com/curl/curl/issues/12431 + Closes https://github.com/curl/curl/pull/12432 + +Daniel Stenberg (30 Nov 2023) + +- multi: during ratelimit multi_getsock should return no sockets + + ... as there is nothing to wait for then, it just waits. Otherwise, this + causes much more CPU work and updates than necessary during ratelimit + periods. + + Ref: https://curl.se/mail/lib-2023-11/0056.html + Closes #12430 + +Dmitry Karpov (30 Nov 2023) + +- transfer: abort pause send when connection is marked for closing + + This handles cases of some bi-directional "upgrade" scenarios + (i.e. WebSockets) where sending is paused until some "upgrade" handshake + is completed, but server rejects the handshake and closes the + connection. + + Closes #12428 + +Daniel Stenberg (28 Nov 2023) + +- RELEASE-NOTES: synced + +- openssl: when a session-ID is reused, skip OCSP stapling + + Fixes #12399 + Reported-by: Alexey Larikov + Closes #12418 + +- test1545: test doing curl_formadd twice with missing file + + Reproduces #12410 + Verifies the fix + Closes #12421 + +- Curl_http_body: cleanup properly when Curl_getformdata errors + + Reported-by: yushicheng7788 on github + Based-on-work-by: yushicheng7788 on github + Fixes #12410 + Closes #12421 + +- test1477: verify that libcurl-errors.3 and public headers are synced + + The script errorcodes.pl extracts all error codes from all headers and + checks that they are all documented, then checks that all documented + error codes are also specified in a header file. + + Closes #12424 + +- libcurl-errors.3: sync with current public headers + + Closes #12424 + +Stefan Eissing (28 Nov 2023) + +- test459: fix for parallel runs + + - change warniing message to work better with varying filename + length. + - adapt test output check to new formatting + + Follow-up to 97ccc4479f77ba3191c6 + Closes #12423 + +Daniel Stenberg (27 Nov 2023) + +- tool_cb_prg: make the carriage return fit for wide progress bars + + When the progress bar was made max width (256 columns), the fly() + function attempted to generate its output buffer too long so that the + trailing carriage return would not fit and then the output would show + wrongly. The fly function is called when the expected total transfer is + unknown, which could be one or more progress calls before the actual + progress meter get shown when the expected transfer size is provided. + + This new take also replaces the msnprintf() call with a much simpler + memset() for speed. + + Reported-by: Tim Hill + Fixes #12407 + Closes #12415 + +- tool_parsecfg: make warning output propose double-quoting + + When the config file parser detects a word that *probably* should be + quoted, mention double-quotes as a possible remedy. + + Test 459 verifies. + + Proposed-by: Jiehong on github + Fixes #12409 + Closes #12412 + +Jay Satiro (26 Nov 2023) + +- curl.rc: switch out the copyright symbol for plain ASCII + + .. like we already do for libcurl.rc. + + libcurl.rc copyright symbol used to cause a "non-ascii 8-bit codepoint" + warning so it was switched to ascii. + + Ref: https://github.com/curl/curl/commit/1ca62bb5#commitcomment-133474972 + + Suggested-by: Robert Southee + + Closes https://github.com/curl/curl/pull/12403 + +Daniel Stenberg (26 Nov 2023) + +- conncache: use the closure handle when disconnecting surplus connections + + Use the closure handle for disconnecting connection cache entries so + that anything that happens during the disconnect is not stored and + associated with the 'data' handle which already just finished a transfer + and it is important that details from the unrelated disconnect does not + taint meta-data in the data handle. + + Like storing the response code. + + This also adjust test 1506. Unfortunately it also removes a key part of + the test that verifies that a connection is closed since when this + output vanishes (because the closure handle is used), we don't know + exactly that the connection actually gets closed in this test... + + Reported-by: ohyeaah on github + Fixes #12367 + Closes #12405 + +- RELEASE-NOTES: synced + +Stefan Eissing (24 Nov 2023) + +- quic: make eyeballers connect retries stop at weird replies + + - when a connect immediately goes into DRAINING state, do + not attempt retries in the QUIC connection filter. Instead, + return CURLE_WEIRD_SERVER_REPLY + - When eyeballing, interpret CURLE_WEIRD_SERVER_REPLY as an + inconclusive answer. When all addresses have been attempted, + rewind the address list once on an inconclusive answer. + - refs #11832 where connects were retried indefinitely until + the overall timeout fired + + Closes #12400 + +Daniel Stenberg (24 Nov 2023) + +- CI: verify libcurl function SYNPOSIS sections + + With the .github/scripits/verify-synopsis.pl script + + Closes #12402 + +- docs/libcurl: SYNSOPSIS cleanup + + - use the correct include file + - make sure they are declared as in the header file + - fix minor nroff syntax mistakes (missing .fi) + + These are verified by verify-synopsis.pl, which extracts the SYNPOSIS + code and runs it through gcc. + + Closes #12402 + +- sendf: fix comment typo + +- fopen: allocate the dir after fopen + + Move the allocation of the directory name down to after the fopen() call + to allow that shortcut code path to avoid a superfluous malloc+free + cycle. + + Follow-up to 73b65e94f35311 + + Closes #12398 + +Stefan Eissing (24 Nov 2023) + +- transfer: cleanup done+excess handling + + - add `SingleRequest->download_done` as indicator that + all download bytes have been received + - remove `stop_reading` bool from readwrite functions + - move excess body handling into client download writer + + Closes #12371 + +Daniel Stenberg (23 Nov 2023) + +- fopen: create new file using old file's mode + + Because the function renames the temp file to the target name as a last + step, if the file was previously owned by a different user, not ORing + the old mode could otherwise end up creating a file that was no longer + readable by the original owner after save. + + Reported-by: Loïc Yhuel + Fixes #12299 + Closes #12395 + +- test1476: require proxy + + Follow-up from 323df4261c3542 + + Closes #12394 + +- fopen: create short(er) temporary file name + + Only using random letters in the name plus a ".tmp" extension. Not by + appending characters to the final file name. + + Reported-by: Maksymilian Arciemowicz + + Closes #12388 + +Stefan Eissing (23 Nov 2023) + +- tests: git ignore generated second-hsts.txt file + + File is generated in test lib1900 + + Follow-up to 7cb03229d9e9c5 + + Closes #12393 + +Viktor Szakats (23 Nov 2023) + +- openssl: enable `infof_certstack` for 1.1 and LibreSSL 3.6 + + Lower the barrier to enable `infof_certstack()` from OpenSSL 3 to + OpenSSL 1.1.x, and LibreSSL 3.6 or upper. + + With the caveat, that "group name" and "type name" are missing from + the log output with these TLS backends. + + Follow-up to b6e6d4ff8f253c8b8055bab9d4d6a10f9be109f3 #12030 + + Reviewed-by: Daniel Stenberg + Closes #12385 + +Daniel Stenberg (23 Nov 2023) + +- urldata: fix typo in comment + +- CI: codespell + + The list of words to ignore is in the file + .github/scripts/codespell-ignore.txt + + Closes #12390 + +- lib: fix comment typos + + Five separate ones, found by codespell + + Closes #12390 + +- test1476: verify cookie PSL mixed case + +- cookie: lowercase the domain names before PSL checks + + Reported-by: Harry Sintonen + + Closes #12387 + +Viktor Szakats (23 Nov 2023) + +- openssl: fix building with v3 `no-deprecated` + add CI test + + - build quictls with `no-deprecated` in CI to have test coverage for + this OpenSSL 3 configuration. + + - don't call `OpenSSL_add_all_algorithms()`, `OpenSSL_add_all_digests()`. + The caller code is meant for OpenSSL 3, while these two functions were + only necessary before OpenSSL 1.1.0. They are missing from OpenSSL 3 + if built with option `no-deprecated`, causing build errors: + ``` + vtls/openssl.c:4097:3: error: call to undeclared function 'OpenSSL_add_all_ + algorithms'; ISO C99 and later do not support implicit function declaration + s [-Wimplicit-function-declaration] + vtls/openssl.c:4098:3: error: call to undeclared function 'OpenSSL_add_all_ + digests'; ISO C99 and later do not support implicit function declarations [ + -Wimplicit-function-declaration] + ``` + Ref: https://ci.appveyor.com/project/curlorg/curl-for-win/builds/48587418?f + ullLog=true#L7667 + + Regression from b6e6d4ff8f253c8b8055bab9d4d6a10f9be109f3 #12030 + Bug: https://github.com/curl/curl/issues/12380#issuecomment-1822944669 + Reviewed-by: Alex Bozarth + + - vquic/curl_ngtcp2: fix using `SSL_get_peer_certificate` with + `no-deprecated` quictls 3 builds. + Do it by moving an existing solution for this from `vtls/openssl.c` + to `vtls/openssl.h` and adjusting caller code. + ``` + vquic/curl_ngtcp2.c:1950:19: error: implicit declaration of function 'SSL_g + et_peer_certificate'; did you mean 'SSL_get1_peer_certificate'? [-Wimplicit + -function-declaration] + ``` + Ref: https://github.com/curl/curl/actions/runs/6960723097/job/18940818625#s + tep:24:1178 + + - curl_ntlm_core: fix `-Wunused-parameter`, `-Wunused-variable` and + `-Wunused-function` when trying to build curl with NTLM enabled but + without the necessary TLS backend (with DES) support. + + Closes #12384 + +- curl.h: delete Symbian OS references + + curl deprecated Symbian OS in 3d64031fa7a80ac4ae3fd09a5939196268b92f81 + via #5989. Delete references to it from public headers, because there + is no fresh release to use those headers with. + + Reviewed-by: Dan Fandrich + Reviewed-by: Jay Satiro + Closes #12378 + +- windows: use built-in `_WIN32` macro to detect Windows + + Windows compilers define `_WIN32` automatically. Windows SDK headers + or build env defines `WIN32`, or we have to take care of it. The + agreement seems to be that `_WIN32` is the preferred practice here. + Make the source code rely on that to detect we're building for Windows. + + Public `curl.h` was using `WIN32`, `__WIN32__` and `CURL_WIN32` for + Windows detection, next to the official `_WIN32`. After this patch it + only uses `_WIN32` for this. Also, make it stop defining `CURL_WIN32`. + + There is a slight chance these break compatibility with Windows + compilers that fail to define `_WIN32`. I'm not aware of any obsolete + or modern compiler affected, but in case there is one, one possible + solution is to define this macro manually. + + grepping for `WIN32` remains useful to discover Windows-specific code. + + Also: + + - extend `checksrc` to ensure we're not using `WIN32` anymore. + + - apply minor formatting here and there. + + - delete unnecessary checks for `!MSDOS` when `_WIN32` is present. + + Co-authored-by: Jay Satiro + Reviewed-by: Daniel Stenberg + + Closes #12376 + +Stefan Eissing (22 Nov 2023) + +- url: ConnectionExists revisited + + - have common pattern of `if not match, continue` + - revert pages long if()s to return early + - move dead connection check to later since it may + be relatively expensive + - check multiuse also when NOT building with NGHTTP2 + - for MULTIUSE bundles, verify that the inspected + connection indeed supports multiplexing when in use + (bundles may contain a mix of connection, afaict) + + Closes #12373 + +Daniel Stenberg (22 Nov 2023) + +- CURLMOPT_MAX_CONCURRENT_STREAMS: make sure the set value is within range + + ... or use the default value. + + Also clarify the documentation language somewhat. + + Closes #12382 + +- urldata: make maxconnects a 32 bit value + + "2^32 idle connections ought to be enough for anybody" + + Closes #12375 + +- FEATURES: update the URL phrasing + + The URL is length limited since a while back so "no limit" simply is not + true anymore. Mention the URL RFC standard used instead. + + Closes #12383 + +- wolfssh: remove redundant static prototypes + + vssh/wolfssh.c:346:18: error: redundant redeclaration of ‘wscp_recv’ [-We + rror=redundant-decls] + + Closes #12381 + +- setopt: remove superfluous use of ternary expressions + + Closes #12374 + +- mime: store "form escape" as a single bit + + Closes #12374 + +- setopt: check CURLOPT_TFTP_BLKSIZE range on set + + ... instead of later when the transfer is about to happen. + + Closes #12374 + +Viktor Szakats (21 Nov 2023) + +- build: add more picky warnings and fix them + + Enable more picky compiler warnings. I've found these options in the + nghttp3 project when implementing the CMake quick picky warning + functionality for it [1]. + + `-Wunused-macros` was too noisy to keep around, but fixed a few issues + it revealed while testing. + + - autotools: reflect the more precisely-versioned clang warnings. + Follow-up to 033f8e2a08eb1d3102f08c4d8c8e85470f8b460e #12324 + - autotools: sync between clang and gcc the way we set `no-multichar`. + - autotools: avoid setting `-Wstrict-aliasing=3` twice. + - autotools: disable `-Wmissing-noreturn` for MSYS gcc targets [2]. + It triggers in libtool-generated stub code. + + - lib/timeval: delete a redundant `!MSDOS` guard from a `WIN32` branch. + + - lib/curl_setup.h: delete duplicate declaration for `fileno`. + Added in initial commit ae1912cb0d494b48d514d937826c9fe83ec96c4d + (1999-12-29). This suggests this may not be needed anymore, but if + it does, we may restore this for those specific (non-Windows) systems. + - lib: delete unused macro `FTP_BUFFER_ALLOCSIZE` since + c1d6fe2aaa5a26e49a69a4f2495b3cc7a24d9394. + - lib: delete unused macro `isxdigit_ascii` since + f65f750742068f579f4ee6d8539ed9d5f0afcb85. + - lib/mqtt: delete unused macro `MQTT_HEADER_LEN`. + - lib/multi: delete unused macro `SH_READ`/`SH_WRITE`. + - lib/hostip: add `noreturn` function attribute via new `CURL_NORETURN` + macro. + - lib/mprintf: delete duplicate declaration for `Curl_dyn_vprintf`. + - lib/rand: fix `-Wunreachable-code` and related fallouts [3]. + - lib/setopt: fix `-Wunreachable-code-break`. + - lib/system_win32 and lib/timeval: fix double declarations for + `Curl_freq` and `Curl_isVistaOrGreater` in CMake UNITY mode [4]. + - lib/warnless: fix double declarations in CMake UNITY mode [5]. + This was due to force-disabling the header guard of `warnless.h` to + to reapply it to source code coming after `warnless.c` in UNITY + builds. This reapplied declarations too, causing the warnings. + Solved by adding a header guard for the lines that actually need + to be reapplied. + - lib/vauth/digest: fix `-Wunreachable-code-break` [6]. + - lib/vssh/libssh2: fix `-Wunreachable-code-break` and delete redundant + block. + - lib/vtls/sectransp: fix `-Wunreachable-code-break` [7]. + - lib/vtls/sectransp: suppress `-Wunreachable-code`. + Detected in `else` branches of dynamic feature checks, with results + known at compile-time, e.g. + ```c + if(SecCertificateCopySubjectSummary) /* -> true */ + ``` + Likely fixable as a separate micro-project, but given SecureTransport + is deprecated anyway, let's just silence these locally. + - src/tool_help: delete duplicate declaration for `helptext`. + - src/tool_xattr: fix `-Wunreachable-code`. + - tests: delete duplicate declaration for `unitfail` [8]. + - tests: delete duplicate declaration for `strncasecompare`. + - tests/libtest: delete duplicate declaration for `gethostname`. + Originally added in 687df5c8c39c370a59999b9afc0917d808d978b7 + (2010-08-02). + Got complicated later: c49e9683b85ba9d12cbb6eebc4ab2c8dba68fbdc + If there are still systems around with warnings, we may restore the + prototype, but limited for those systems. + - tests/lib2305: delete duplicate declaration for + `libtest_debug_config`. + - tests/h2-download: fix `-Wunreachable-code-break`. + + [1] https://github.com/ngtcp2/nghttp3/blob/a70edb08e954d690e8fb2c1df999b5a056 + f8bf9f/cmake/PickyWarningsC.cmake + [2] https://ci.appveyor.com/project/curlorg/curl/builds/48553586/job/3qkgjaui + qla5fj45?fullLog=true#L1675 + [3] https://github.com/curl/curl/actions/runs/6880886309/job/18716044703?pr=1 + 2331#step:7:72 + https://github.com/curl/curl/actions/runs/6883016087/job/18722707368?pr=1 + 2331#step:7:109 + [4] https://ci.appveyor.com/project/curlorg/curl/builds/48555101/job/9g15qkrr + iklpf1ut#L204 + [5] https://ci.appveyor.com/project/curlorg/curl/builds/48555101/job/9g15qkrr + iklpf1ut#L218 + [6] https://github.com/curl/curl/actions/runs/6880886309/job/18716042927?pr=1 + 2331#step:7:290 + [7] https://github.com/curl/curl/actions/runs/6891484996/job/18746659406?pr=1 + 2331#step:9:1193 + [8] https://github.com/curl/curl/actions/runs/6882803986/job/18722082562?pr=1 + 2331#step:33:1870 + + Closes #12331 + +Daniel Stenberg (21 Nov 2023) + +- transfer: avoid unreachable expression + + If curl_off_t and size_t have the same size (which is common on modern + 64 bit systems), a condition cannot occur which Coverity pointed + out. Avoid the warning by having the code conditionally only used if + curl_off_t actually is larger. + + Follow-up to 1cd2f0072fa482e25baa2 + + Closes #12370 + +Stefan Eissing (21 Nov 2023) + +- transfer: readwrite improvements + + - changed header/chunk/handler->readwrite prototypes to accept `buf`, + `blen` and a `pconsumed` pointer. They now get the buffer to work on + and report back how many bytes they consumed + - eliminated `k->str` in SingleRequest + - improved excess data handling to properly calculate with any body data + left in the headerb buffer + - eliminated `k->badheader` enum to only be a bool + + Closes #12283 + +Daniel Stenberg (21 Nov 2023) + +- RELEASE-NOTES: synced + +Jiří HruÅ¡ka (21 Nov 2023) + +- transfer: avoid calling the read callback again after EOF + + Regression since 7f43f3dc5994d01b12 (7.84.0) + + Bug: https://curl.se/mail/lib-2023-11/0017.html + + Closes #12363 + +Daniel Stenberg (21 Nov 2023) + +- doh: provide better return code for responses w/o addresses + + Previously it was wrongly returning CURLE_OUT_OF_MEMORY when the + response did not contain any addresses. Now it more accurately returns + CURLE_COULDNT_RESOLVE_HOST. + + Reported-by: lRoccoon on github + + Fixes #12365 + Closes #12366 + +Stefan Eissing (21 Nov 2023) + +- HTTP/2, HTTP/3: handle detach of onoing transfers + + - refs #12356 where a UAF is reported when closing a connection + with a stream whose easy handle was cleaned up already + - handle DETACH events same as DONE events in h2/h3 filters + + Fixes #12356 + Reported-by: PaweÅ‚ Wegner + Closes #12364 + +Viktor Szakats (20 Nov 2023) + +- autotools: stop setting `-std=gnu89` with `--enable-warnings` + + Do not alter the C standard when building with `--enable-warnings` when + building with gcc. + + On one hand this alters warning results compared to a default build. + On the other, it may produce different binaries, which is unexpected. + + Also fix new warnings that appeared after removing `-std=gnu89`: + + - include: fix public curl headers to use the correct printf mask for + `CURL_FORMAT_CURL_OFF_T` and `CURL_FORMAT_CURL_OFF_TU` with mingw-w64 + and Visual Studio 2013 and newer. This fixes the printf mask warnings + in examples and tests. E.g. [1] + + - conncache: fix printf format string [2]. + + - http2: fix potential null pointer dereference [3]. + (seen on Slackware with gcc 11.) + + - libssh: fix printf format string in SFTP code [4]. + Also make MSVC builds compatible with old CRT versions. + + - libssh2: fix printf format string in SFTP code for MSVC. + Applying the same fix as for libssh above. + + - unit1395: fix `argument is null` and related issues [5]: + - stop calling `strcmp()` with NULL to avoid undefined behaviour. + - fix checking results if some of them were NULL. + - do not pass NULL to printf `%s`. + + - ci: keep a build job with `-std=gnu89` to continue testing for + C89-compliance. We can apply this to other gcc jobs as needed. + Ref: b23ce2cee7329bbf425f18b49973b7a5f23dfcb4 (2022-09-23) #9542 + + [1] https://dev.azure.com/daniel0244/curl/_build/results?buildId=18581&view=l + ogs&jobId=ccf9cc6d-2ef1-5cf2-2c09-30f0c14f923b + [2] https://github.com/curl/curl/actions/runs/6896854263/job/18763831142?pr=1 + 2346#step:6:67 + [3] https://github.com/curl/curl/actions/runs/6896854253/job/18763839238?pr=1 + 2346#step:30:214 + [4] https://github.com/curl/curl/actions/runs/6896854253/job/18763838007?pr=1 + 2346#step:29:895 + [5] https://github.com/curl/curl/actions/runs/6896854253/job/18763836775?pr=1 + 2346#step:33:1689 + + Closes #12346 + +- autotools: fix/improve gcc and Apple clang version detection + + - Before this patch we expected `n.n` `-dumpversion` output, but Ubuntu + may return `n-win32` (also with `-dumpfullversion`). Causing these + errors and failing to enable picky warnings: + ``` + ../configure: line 23845: test: : integer expression expected + ``` + Ref: https://github.com/libssh2/libssh2/actions/runs/6263453828/job/1700789 + 3718#step:5:143 + + Fix that by stripping any dash-suffix and handling a dotless (major-only) + version number by assuming `.0` in that case. + + `9.3-posix`, `9.3-win32`, `6`, `9.3.0`, `11`, `11.2`, `11.2.0` + Ref: https://github.com/mamedev/mame/pull/9767 + + - fix Apple clang version detection for releases between + 'Apple LLVM version 7.3.0' and 'Apple LLVM version 10.0.1' where the + version was under-detected as 3.7 llvm/clang equivalent. + + - fix Apple clang version detection for 'Apple clang version 11.0.0' + and newer where the Apple clang version was detected, instead of its + llvm/clang equivalent. + + - display detected clang/gcc/icc compiler version. + + Via libssh2: + - https://github.com/libssh2/libssh2/commit/00a3b88c51cdb407fbbb347a2e38c5c7d + 89875ad + https://github.com/libssh2/libssh2/pull/1187 + - https://github.com/libssh2/libssh2/commit/89ccc83c7da73e7ca3a112e3500081319 + 42b592e + https://github.com/libssh2/libssh2/pull/1232 + + Closes #12362 + +- autotools: delete LCC compiler support bits + + Follow-up to fd7ef00f4305a2919e6950def1cf83d0110a4acd #12222 + + Closes #12357 + +- cmake: add test for `DISABLE` options, add `CURL_DISABLE_HEADERS_API` + + - tests: verify CMake `DISABLE` options. + + Make an exception for 2 CMake-only ones, and one more that's + using a different naming scheme, also in autotools and source. + + - cmake: add support for `CURL_DISABLE_HEADERS_API`. + + Suggested-by: Daniel Stenberg + Ref: https://github.com/curl/curl/pull/12345#pullrequestreview-1736238641 + + Closes #12353 + +Jacob Hoffman-Andrews (20 Nov 2023) + +- hyper: temporarily remove HTTP/2 support + + The current design of the Hyper integration requires rebuilding the + Hyper clientconn for each request. However, building the clientconn + requires resending the HTTP/2 connection preface, which is incorrect + from a protocol perspective. That in turn causes servers to send GOAWAY + frames, effectively degrading performance to "no connection reuse" in + the best case. It may also be triggering some bugs where requests get + dropped entirely and reconnects take too long. + + This doesn't rule out HTTP/2 support with Hyper, but it may take a + redesign of the Hyper integration in order to make things work. + + Closes #12191 + +Jay Satiro (20 Nov 2023) + +- schannel: fix unused variable warning + + Bug: https://github.com/curl/curl/pull/12349#issuecomment-1818000846 + Reported-by: Viktor Szakats + + Closes https://github.com/curl/curl/pull/12361 + +Daniel Stenberg (19 Nov 2023) + +- url: find scheme with a "perfect hash" + + Instead of a loop to scan over the potentially 30+ scheme names, this + uses a "perfect hash" table. This works fine because the set of schemes + is known and cannot change in a build. The hash algorithm and table size + is made to only make a single scheme index per table entry. + + The perfect hash is generated by a separate tool (scripts/schemetable.c) + + Closes #12347 + +- scripts: add schemetable.c + + This tool generates a scheme-matching table. + + It iterates over a number of different initial and shift values in order + to find the hash algorithm that needs the smallest possible table. + + The generated hash function, table and table size then needs to be used + by the url.c:Curl_getn_scheme_handler() function. + +Stefan Eissing (19 Nov 2023) + +- vtls/vquic, keep peer name information together + + - add `struct ssl_peer` to keep hostname, dispname and sni + for a filter + - allocate `sni` for use in VTLS backend + - eliminate `Curl_ssl_snihost()` and its use of the download buffer + - use ssl_peer in SSL and QUIC filters + + Closes #12349 + +Viktor Szakats (18 Nov 2023) + +- build: always revert `#pragma GCC diagnostic` after use + + Before this patch some source files were overriding gcc warning options, + but without restoring them at the end of the file. In CMake UNITY builds + these options spilled over to the remainder of the source code, + effecitvely disabling them for a larger portion of the codebase than + intended. + + `#pragma clang diagnostic` didn't have such issue in the codebase. + + Reviewed-by: Marcel Raad + Closes #12352 + +- tidy-up: casing typos, delete unused Windows version aliases + + - cmake: fix casing of `UnixSockets` to match the rest of the codebase. + + - curl-compilers.m4: fix casing in a comment. + + - setup-win32: delete unused Windows version constant aliases. + + Reviewed-by: Marcel Raad + Closes #12351 + +- keylog: disable if unused + + Fully disable keylog code if there is no TLS or QUIC subsystem using it. + + Closes #12350 + +- cmake: add `CURL_DISABLE_BINDLOCAL` option + + To match similar autotools option. + + Default is `ON`. + + Reviewed-by: Daniel Stenberg + Closes #12345 + +- url: fix `-Wzero-length-array` with no protocols + + Fixes: + ``` + ./lib/url.c:178:56: warning: use of an empty initializer is a C2x extension [ + -Wc2x-extensions] + 178 | static const struct Curl_handler * const protocols[] = { + | ^ + ./lib/url.c:178:56: warning: zero size arrays are an extension [-Wzero-length + -array] + ``` + + Closes #12344 + +- url: fix builds with `CURL_DISABLE_HTTP` + + Fixes: + ``` + ./lib/url.c:456:35: error: no member named 'formp' in 'struct UrlState' + 456 | Curl_mime_cleanpart(data->state.formp); + | ~~~~~~~~~~~ ^ + ``` + + Regression from 74b87a8af13a155c659227f5acfa78243a8b2aa6 #11682 + + Closes #12343 + +- http: fix `-Wunused-parameter` with no auth and no proxy + + ``` + lib/http.c:734:26: warning: unused parameter 'proxy' [-Wunused-parameter] + bool proxy) + ^ + ``` + + Reviewed-by: Marcel Raad + Closes #12338 + +Daniel Stenberg (16 Nov 2023) + +- TODO: Some TLS options are not offered for HTTPS proxies + + Closes #12286 + Closes #12342 + +- RELEASE-NOTES: synced + +- duphandle: make dupset() not return with pointers to old alloced data + + As the blob pointers are to be duplicated, the function must not return + mid-function with lingering pointers to the old handle's allocated data, + as that would lead to double-free in OOM situations. + + Make sure to clear all destination pointers first to avoid this risk. + + Closes #12337 + +Viktor Szakats (16 Nov 2023) + +- http: fix `-Wunused-variable` compiler warning + + Fix compiler warnings in builds with disabled auths, NTLM and SPNEGO. + + E.g. with `CURL_DISABLE_BASIC_AUTH` + `CURL_DISABLE_BEARER_AUTH` + + `CURL_DISABLE_DIGEST_AUTH` + `CURL_DISABLE_NEGOTIATE_AUTH` + + `CURL_DISABLE_NTLM` on non-Windows. + + ``` + ./curl/lib/http.c:737:12: warning: unused variable 'result' [-Wunused-variabl + e] + CURLcode result = CURLE_OK; + ^ + ./curl/lib/http.c:995:18: warning: variable 'availp' set but not used [-Wunus + ed-but-set-variable] + unsigned long *availp; + ^ + ./curl/lib/http.c:996:16: warning: variable 'authp' set but not used [-Wunuse + d-but-set-variable] + struct auth *authp; + ^ + ``` + + Regression from e92edfbef64448ef461117769881f3ed776dec4e #11490 + + Fixes #12228 + Closes #12335 + +Jay Satiro (16 Nov 2023) + +- tool: support bold headers in Windows + + - If virtual terminal processing is enabled in Windows then use ANSI + escape codes Esc[1m and Esc[22m to turn bold on and off. + + Suggested-by: Gisle Vanem + + Ref: https://github.com/curl/curl/discussions/11770 + + Closes https://github.com/curl/curl/pull/12321 + +Viktor Szakats (15 Nov 2023) + +- build: fix libssh2 + `CURL_DISABLE_DIGEST_AUTH` + `CURL_DISABLE_AWS` + + Builds with libssh2 + `-DCURL_DISABLE_DIGEST_AUTH=ON` + + `-DCURL_DISABLE_AWS=ON` in combination with either Schannel on Windows, + or `-DCURL_DISABLE_NTLM=ON` on other operating systems failed while + compiling due to a missing HMAC declaration. + + The reason is that HMAC is required by `lib/sha256.c` which publishes + `Curl_sha256it()` which is required by `lib/vssh/libssh2.c` when + building for libssh2 v1.8.2 (2019-05-25) or older. + + Make sure to compile the HMAC bits for a successful build. + + Both HMAC and `Curl_sha256it()` rely on the same internals, so splitting + them into separate sources isn't practical. + + Fixes: + ``` + [...] + In file included from ./curl/_x64-win-ucrt-cmake-llvm-bld/lib/CMakeFiles/libc + url_object.dir/Unity/unity_0_c.c:310: + ./curl/lib/sha256.c:527:42: error: array has incomplete element type 'const s + truct HMAC_params' + 527 | const struct HMAC_params Curl_HMAC_SHA256[] = { + | ^ + ./curl/lib/curl_sha256.h:34:21: note: forward declaration of 'struct HMAC_par + ams' + [...] + ``` + + Regression from e92edfbef64448ef461117769881f3ed776dec4e #11490 + + Fixes #12273 + Closes #12332 + +Daniel Stenberg (15 Nov 2023) + +- duphandle: also free 'outcurl->cookies' in error path + + Fixes memory-leak when OOM mid-function + + Use plain free instead of safefree, since the entire struct is + freed below. + + Remove some free calls that is already freed in Curl_freeset() + + Closes #12329 + +Viktor Szakats (15 Nov 2023) + +- config-win32: set `HAVE_SNPRINTF` for mingw-w64 + + It's available in all mingw-w64 releases. We already pre-fill this + detection in CMake. + + Closes #12325 + +- sasl: fix `-Wunused-function` compiler warning + + In builds with disabled auths. + + ``` + lib/curl_sasl.c:266:17: warning: unused function 'get_server_message' [-Wunus + ed-function] + static CURLcode get_server_message(struct SASL *sasl, struct Curl_easy *data, + ^ + 1 warning generated. + ``` + Ref: https://github.com/curl/trurl/actions/runs/6871732122/job/18689066151#st + ep:3:3822 + + Reviewed-by: Daniel Stenberg + Closes #12326 + +- build: picky warning updates + + - cmake: sync some picky gcc warnings with autotools. + - cmake, autotools: add `-Wold-style-definition` for clang too. + - cmake: more precise version info for old clang options. + - cmake: use `IN LISTS` syntax in `foreach()`. + + Reviewed-by: Daniel Stenberg + Reviewed-by: Marcel Raad + Closes #12324 + +Daniel Stenberg (15 Nov 2023) + +- urldata: move cookielist from UserDefined to UrlState + + 1. Because the value is not strictly set with a setopt option. + + 2. Because otherwise when duping a handle when all the set.* fields are + first copied and an error happens (think out of memory mid-function), + the function would easily free the list *before* it was deep-copied, + which could lead to a double-free. + + Closes #12323 + +Viktor Szakats (14 Nov 2023) + +- autotools: avoid passing `LDFLAGS` twice to libcurl + + autotools passes `LDFLAGS` automatically linker commands. curl's + `lib/Makefile.am` customizes libcurl linker flags. In that + customization, it added `LDFLAGS` to the custom flags. This resulted in + passing `LDFLAGS` _twice_ to the `libtool` command. + + Most of the time this is benign, but some `LDFLAGS` options can break + the build when passed twice. One such example is passing `.o` files, + e.g. `crt*.o` files necessary when customizing the C runtime, e.g. for + MUSL builds. + + Passing them twice resulted in duplicate symbol errors: + ``` + libtool: link: clang-15 --target=aarch64-unknown-linux-musl [...] /usr/lib/a + arch64-linux-musl/crt1.o [...] /usr/lib/aarch64-linux-musl/crt1.o [...] + ld.lld-15: error: duplicate symbol: _start + >>> defined at crt1.c + >>> /usr/lib/aarch64-linux-musl/crt1.o:(.text+0x0) + >>> defined at crt1.c + >>> /usr/lib/aarch64-linux-musl/crt1.o:(.text+0x0) + [...] + clang: error: linker command failed with exit code 1 (use -v to see invocatio + n) + ``` + + This behaviour came with commit 1a593191c2769a47b8c3e4d9715ec9f6dddf5e36 + (2013-07-23) as a fix for bug https://curl.haxx.se/bug/view.cgi?id=1217. + The patch was a works-for-me hack that ended up merged in curl: + https://sourceforge.net/p/curl/bugs/1217/#06ef + With the root cause remaining unclear. + + Perhaps the SUNPro 12 linker was sensitive to `-L` `-l` order, requiring + `-L` first? This would be unusual and suggests a bug in either the + linker or in `libtool`. + + The curl build does pass the list of detected libs via its own + `LIBCURL_LIBS` variable, which ends up before `LDFLAGS` on the `libtool` + command line, but it's the job of `libtool` to ensure that even + a peculiar linker gets the options in the expected order. Also because + autotools passes `LDFLAGS` last, making it hardly possible to pass + anything after it. + + Perhaps in the 10 years since this issue, this already got a fix + upstream. + + This patch deletes `LDFLAGS` from our customized libcurl options, + leaving a single copy of them as passed by autotools automatically. + + Reverts 1a593191c2769a47b8c3e4d9715ec9f6dddf5e36 + Closes #12310 + +- autotools: accept linker flags via `CURL_LDFLAGS_{LIB,BIN}` + + To allow passing `LDFLAGS` specific to libcurl (`CURL_LDFLAGS_LIB`) and + curl tool (`CURL_LDFLAGS_BIN`). + + This makes it possible to build libcurl and curl with a single + invocation with lib- and tool-specific custom linker flags. + + Such flag can be enabling `.map` files, a `.def` file for libcurl DLL, + controlling static/shared, incl. requesting a static curl tool (with + `-static-libtool-libs`) while building both shared and static libcurl. + + curl-for-win uses the above and some more. + + These options are already supported in `Makefile.mk`. CMake has built-in + variables for this. + + Closes #12312 + +Jay Satiro (14 Nov 2023) + +- tool_cb_hdr: add an additional parsing check + + - Don't dereference the past-the-end element when parsing the server's + Content-disposition header. + + As 'p' is advanced it can point to the past-the-end element and prior + to this change 'p' could be dereferenced in that case. + + Technically the past-the-end element is not out of bounds because dynbuf + (which manages the header line) automatically adds a null terminator to + every buffer and that is not included in the buffer length passed to + the header callback. + + Closes https://github.com/curl/curl/pull/12320 + +Philip Heiduck (14 Nov 2023) + +- .cirrus.yml: freebsd 14 + + ensure curl works on latest freebsd version + + Closes #12053 + +Daniel Stenberg (13 Nov 2023) + +- easy: in duphandle, init the cookies for the new handle + + ... not the source handle. + + Closes #12318 + +- duphandle: use strdup to clone *COPYPOSTFIELDS if size is not set + + Previously it would unconditionally use the size, which is set to -1 + when strlen is requested. + + Updated test 544 to verify. + + Closes #12317 + +- RELEASE-NOTES: synced + +- curl_easy_duphandle.3: clarify how HSTS and alt-svc are duped + + Closes #12315 + +- urldata: move hstslist from 'set' to 'state' + + To make it work properly with curl_easy_duphandle(). This, because + duphandle duplicates the entire 'UserDefined' struct by plain copy while + 'hstslist' is a linked curl_list of file names. This would lead to a + double-free when the second of the two involved easy handles were + closed. + + Closes #12315 + +- test1900: verify duphandle with HSTS using multiple files + + Closes #12315 + +Goro FUJI (13 Nov 2023) + +- http: allow longer HTTP/2 request method names + + - Increase the maximum request method name length from 11 to 23. + + For HTTP/1.1 and earlier there's not a specific limit in libcurl for + method length except that it is limited by the initial HTTP request + limit (DYN_HTTP_REQUEST). Prior to fc2f1e54 HTTP/2 was treated the same + and there was no specific limit. + + According to Internet Assigned Numbers Authority (IANA) the longest + registered method is UPDATEREDIRECTREF which is 17 characters. + + Also there are unregistered methods used by some companies that are + longer than 11 characters. + + The limit was originally added by 61f52a97 but not used until fc2f1e54. + + Ref: https://www.iana.org/assignments/http-methods/http-methods.xhtml + + Closes https://github.com/curl/curl/pull/12311 + +Jay Satiro (12 Nov 2023) + +- CURLOPT_CAINFO_BLOB.3: explain what CURL_BLOB_COPY does + + - Add an explanation of the CURL_BLOB_COPY flag to CURLOPT_CAINFO_BLOB + and CURLOPT_PROXY_CAINFO_BLOB docs. + + All the other _BLOB option docs already have the same explanation. + + Closes https://github.com/curl/curl/pull/12277 + +Viktor Szakats (11 Nov 2023) + +- tidy-up: dedupe Windows system libs in cmake + + Reviewed-by: Daniel Stenberg + Closes #12307 + +Junho Choi (11 Nov 2023) + +- ci: test with latest quiche release (0.19.0) + + Closes #12180 + +- quiche: use quiche_conn_peer_transport_params() + + In recent quiche, transport parameter API is separated + with quiche_conn_peer_transport_params(). + (https://github.com/cloudflare/quiche/pull/1575) + It breaks with bulding with latest(post 0.18.0) quiche. + + Closes #12180 + +Daniel Stenberg (11 Nov 2023) + +- Makefile: generate the VC 14.20 project files at dist-time + + Follow-up to 28287092cc5a6d6ef8 (#12282) + + Closes #12290 + +Sam James (11 Nov 2023) + +- misc: fix -Walloc-size warnings + + GCC 14 introduces a new -Walloc-size included in -Wextra which gives: + + ``` + src/tool_operate.c: In function ‘add_per_transfer’: + src/tool_operate.c:213:5: warning: allocation of insufficient size ‘1’ fo + r type ‘struct per_transfer’ with size ‘480’ [-Walloc-size] + 213 | p = calloc(sizeof(struct per_transfer), 1); + | ^ + src/var.c: In function ‘addvariable’: + src/var.c:361:5: warning: allocation of insufficient size ‘1’ for type †+ ˜struct var’ with size ‘32’ [-Walloc-size] + 361 | p = calloc(sizeof(struct var), 1); + | ^ + ``` + + The calloc prototype is: + ``` + void *calloc(size_t nmemb, size_t size); + ``` + + So, just swap the number of members and size arguments to match the + prototype, as we're initialising 1 struct of size `sizeof(struct + ...)`. GCC then sees we're not doing anything wrong. + + Closes #12292 + +Mark Gaiser (11 Nov 2023) + +- IPFS: bugfixes + + - Fixed endianness bug in gateway file parsing + - Use IPFS_PATH in tests where IPFS_DATA was used + - Fixed typos from traling -> trailing + - Fixed broken link in IPFS.md + + Follow-up to 859e88f6533f9e + + Reported-by: Michael Kaufmann + Bug: https://github.com/curl/curl/pull/12152#issuecomment-1798214137 + Closes #12305 + +Daniel Stenberg (11 Nov 2023) + +- VULN-DISCLOSURE-POLIC: remove broken link to hackerone + + It should ideally soon not be done from hackerone anyway + + Closes #12308 + +Andrew Kurushin (11 Nov 2023) + +- schannel: add CA cache support for files and memory blobs + + - Support CA bundle and blob caching. + + Cache timeout is 24 hours or can be set via CURLOPT_CA_CACHE_TIMEOUT. + + Closes https://github.com/curl/curl/pull/12261 + +Daniel Stenberg (10 Nov 2023) + +- RELEASE-NOTES: synced + +Charlie C (10 Nov 2023) + +- cmake: option to disable install & drop `curlu` target when unused + + This patch makes the following changes: + - adds the option `CURL_DISABLE_INSTALL` - to disable 'install' targets. + - Removes the target `curlu` when the option `BUILD_TESTING` is set to + `OFF` - to prevent it from being loaded in Visual Studio. + + Closes #12287 + +Kai Pastor (10 Nov 2023) + +- cmake: fix multiple include of CURL package + + Fixes errors on second `find_package(CURL)`. This is a frequent case + with transitive dependencies: + ``` + CMake Error at ...: + add_library cannot create ALIAS target "CURL::libcurl" because another + target with the same name already exists. + ``` + + Test to reproduce: + ```cmake + cmake_minimum_required(VERSION 3.27) # must be 3.18 or higher + + project(curl) + + set(CURL_DIR "example/lib/cmake/CURL/") + find_package(CURL CONFIG REQUIRED) + find_package(CURL CONFIG REQUIRED) # fails + + add_executable(main main.c) + target_link_libraries(main CURL::libcurl) + ``` + + Ref: https://cmake.org/cmake/help/latest/release/3.18.html#other-changes + Ref: https://cmake.org/cmake/help/v3.18/policy/CMP0107.html + Ref: #12300 + Assisted-by: Harry Mallon + Closes #11913 + +Viktor Szakats (8 Nov 2023) + +- tidy-up: use `OPENSSL_VERSION_NUMBER` + + Uniformly use `OPENSSL_VERSION_NUMBER` to check for OpenSSL version. + Before this patch some places used `OPENSSL_VERSION_MAJOR`. + + Also fix `lib/md4.c`, which included `opensslconf.h`, but that doesn't + define any version number in these implementations: BoringSSL, AWS-LC, + LibreSSL, wolfSSL. (Only in mainline OpenSSL/quictls). Switch that to + `opensslv.h`. This wasn't causing a deeper problem because the code is + looking for v3, which is only provided by OpenSSL/quictls as of now. + + According to https://github.com/openssl/openssl/issues/17517, the macro + `OPENSSL_VERSION_NUMBER` is safe to use and not deprecated. + + Reviewed-by: Marcel Raad + Closes #12298 + +Daniel Stenberg (8 Nov 2023) + +- resolve.d: drop a multi use-sentence + + Since the `multi:` keyword adds that message. + + Reported-by: ç©ä¸¹å°¼ Dan Jacobson + Fixes https://github.com/curl/curl/discussions/12294 + Closes #12295 + +- content_encoding: make Curl_all_content_encodings allocless + + - Fixes a memory leak pointed out by Coverity + - Also found by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail? + id=63947 + - Avoids unncessary allocations + + Follow-up ad051e1cbec68b2456a22661b + + Closes #12289 + +Michael Kaufmann (7 Nov 2023) + +- vtls: use ALPN "http/1.1" for HTTP/1.x, including HTTP/1.0 + + Some servers don't support the ALPN protocol "http/1.0" (e.g. IIS 10), + avoid it and use "http/1.1" instead. + + This reverts commit df856cb5c9 (#10183). + + Fixes #12259 + Closes #12285 + +Daniel Stenberg (7 Nov 2023) + +- Makefile.am: drop vc10, vc11 and vc12 projects from dist + + They are end of life products. Support for generating them remain in the + repo for a while but this change drops them from distribution. + + Closes #12288 + +David Suter (7 Nov 2023) + +- projects: add VC14.20 project files + + Windows projects included VC14, VC14.10, VC14.30 but not VC14.20. + OpenSSL and Wolf SSL scripts mention VC14.20 so I don't see a reason why + this is missing. Updated the templates to produce a VC14.20 project. + Project opens in Visual Studio 2019 as expected. + + Closes #12282 + +Daniel Stenberg (7 Nov 2023) + +- curl: move IPFS code into src/tool_ipfs.[ch] + + - convert ensure_trailing into ensure_trailing_slash + - strdup the URL string to own it proper + - use shorter variable names + - combine some expressions + - simplify error handling in ipfs_gateway() + - add MAX_GATEWAY_URL_LEN + proper bailout if maximum is reached + - ipfs-gateway.d polish and simplification + - shorten ipfs error message + make them "synthetic" + + Closes #12281 + +Viktor Szakats (6 Nov 2023) + +- build: delete support bits for obsolete Windows compilers + + - Pelles C: Unclear status, failed to obtain a fresh copy a few months + ago. Possible website is HTTP-only. ~10 years ago I left this compiler + dealing with crashes and other issues with no response on the forum + for years. It has seen some activity in curl back in 2021. + - LCC: Last stable release in September 2002. + - Salford C: Misses winsock2 support, possibly abandoned? Last mentioned + in 2006. + - Borland C++: We dropped Borland C++ support in 2018. + - MS Visual C++ 6.0: Released in 1998. curl already requires VS 2010 + (or possibly 2008) as a minimum. + + Closes #12222 + +- build: delete `HAVE_STDINT_H` and `HAVE_INTTYPES_H` + + We use `stdint.h` unconditionally in all places except one. These uses + are imposed by external dependencies / features. nghttp2, quic, wolfSSL + and `HAVE_MACH_ABSOLUTE_TIME` do require this C99 header. It means that + any of these features make curl require a C99 compiler. (In case of + MSVC, this means Visual Studio 2010 or newer.) + + This patch changes the single use of `stdint.h` guarded by + `HAVE_STDINT_H` to use `stdint.h` unconditionally. Also stop using + `inttypes.h` as an alternative there. `HAVE_INTTYPES_H` wasn't used + anywhere else, allowing to delete this feature check as well. + + Closes #12275 + +Daniel Stenberg (6 Nov 2023) + +- tool_operate: do not mix memory models + + Make sure 'inputpath' only points to memory allocated by libcurl so that + curl_free works correctly. + + Pointed out by Coverity + + Follow-up to 859e88f6533f9e1f890 + + Closes #12280 + +Stefan Eissing (6 Nov 2023) + +- lib: client writer, part 2, accounting + logging + + This PR has these changes: + + Renaming of unencode_* to cwriter, e.g. client writers + - documentation of sendf.h functions + - move max decode stack checks back to content_encoding.c + - define writer phase which was used as order before + - introduce phases for monitoring inbetween decode phases + - offering default implementations for init/write/close + + Add type paramter to client writer's do_write() + - always pass all writes through the writer stack + - writers who only care about BODY data will pass other writes unchanged + + add RAW and PROTOCOL client writers + - RAW used for Curl_debug() logging of CURLINFO_DATA_IN + - PROTOCOL used for updates to data->req.bytecount, max_filesize checks and + Curl_pgrsSetDownloadCounter() + - remove all updates of data->req.bytecount and calls to + Curl_pgrsSetDownloadCounter() and Curl_debug() from other code + - adjust test457 expected output to no longer see the excess write + + Closes #12184 + +Daniel Stenberg (6 Nov 2023) + +- VULN-DISCLOSURE-POLICY: escape sequences are not a security flaw + + Closes #12278 + +Viktor Szakats (6 Nov 2023) + +- rand: fix build error with autotools + LibreSSL + + autotools unexpectedly detects `arc4random` because it is also looking + into dependency libs. One dependency, LibreSSL, happens to publish an + `arc4random` function (via its shared lib before v3.7, also via static + lib as of v3.8.2). When trying to use this function in `lib/rand.c`, + its protoype is missing. To fix that, curl included a prototype, but + that used a C99 type without including `stdint.h`, causing: + + ``` + ../../lib/rand.c:37:1: error: unknown type name 'uint32_t' + 37 | uint32_t arc4random(void); + | ^ + 1 error generated. + ``` + + This patch improves this by dropping the local prototype and instead + limiting `arc4random` use for non-OpenSSL builds. OpenSSL builds provide + their own random source anyway. + + The better fix would be to teach autotools to not link dependency libs + while detecting `arc4random`. + + LibreSSL publishing a non-namespaced `arc4random` tracked here: + https://github.com/libressl/portable/issues/928 + + Regression from 755ddbe901cd0c921fbc3ac5b3775c0dc683bc73 #10672 + + Reviewed-by: Daniel Stenberg + Fixes #12257 + Closes #12274 + +Daniel Stenberg (5 Nov 2023) + +- RELEASE-NOTES: synced + +- strdup: do Curl_strndup without strncpy + + To avoid (false positive) gcc-13 compiler warnings. + + Follow-up to 4855debd8a2c1cb + + Assisted-by: Jay Satiro + Reported-by: Viktor Szakats + Fixes #12258 + +Enno Boland (5 Nov 2023) + +- HTTP: fix empty-body warning + + This change fixes a compiler warning with gcc-12.2.0 when + `-DCURL_DISABLE_BEARER_AUTH=ON` is used. + + /home/tox/src/curl/lib/http.c: In function 'Curl_http_input_auth': + /home/tox/src/curl/lib/http.c:1147:12: warning: suggest braces around emp + ty body in an 'else' statement [-Wempty-body] + 1147 | ; + | ^ + + Closes #12262 + +Daniel Stenberg (5 Nov 2023) + +- openssl: identify the "quictls" backend correctly + + Since vanilla OpenSSL does not support the QUIC API I think it helps + users to identify the correct OpenSSL fork in version output. The best + (crude) way to do that right now seems to be to check if ngtcp2 support + is enabled. + + Closes #12270 + +Mark Gaiser (5 Nov 2023) + +- curl: improved IPFS and IPNS URL support + + Previously just ipfs:// and ipns:// was supported, which is + too strict for some usecases. + + This patch allows paths and query arguments to be used too. + Making this work according to normal http semantics: + + ipfs:///foo/bar?key=val + ipns:///foo/bar?key=val + + The gateway url support is changed. + It now only supports gateways in the form of: + + http:///foo/bar + http:// + + Query arguments here are explicitly not allowed and trigger an intended + malformed url error. + + There also was a crash when IPFS_PATH was set with a non trailing + forward slash. This has been fixed. + + Lastly, a load of test cases have been added to verify the above. + + Reported-by: Steven Allen + Fixes #12148 + Closes #12152 + +Harry Mallon (5 Nov 2023) + +- docs: KNOWN_BUGS cleanup + + * Remove other mention of hyper memory-leaks from `KNOWN_BUGS`. + Should have been removed in 629723ecf22a8eae78d64cceec2f3bdae703ec95 + + * Remove mention of aws-sigv4 sort query string from `KNOWN_BUGS`. + Fixed in #11806 + + * Remove mention of aws-sigv4 query empty value problems + + * Remove mention of aws-sigv4 missing amz-content-sha256 + Fixed in #9995 + +- http_aws_sigv4: canonicalise valueless query params + + Fixes #8107 + Closes #12244 + +Michael Kaufmann (4 Nov 2023) + +- docs: preserve the modification date when copying the prebuilt man page + + The previously built man page "curl.1" must be copied with the original + modification date, otherwise the man page is never updated. + + This fixes a bug that has been introduced with commit 2568441cab. + + Reviewed-by: Dan Fandrich + Reviewed-by: Daniel Stenberg + + Closes #12199 + +Daniel Stenberg (4 Nov 2023) + +- docs: remove bold from some man page SYNOPSIS sections + + In the name of consistency + + Closes #12267 + +- openssl: two multi pointer checks should probably rather be asserts + + ... so add the asserts now and consider removing the dynamic checks in a + future. + + Ref: #12261 + Closes #12264 + +boilingoden (4 Nov 2023) + +- docs: add supported version for the json write-out + + xref: https://curl.se/changes.html#7_70_0 + + Closes #12266 + +Viktor Szakats (3 Nov 2023) + +- appveyor: make VS2008-built curl tool runnable + + By linking the CRT statically. This avoids the error about missing + runtime DLL `MSVCR90.dll` when running the freshly built `curl.exe`. + + Closes #12263 + +Stefan Eissing (3 Nov 2023) + +- url: proxy ssl connection reuse fix + + - tunnel https proxy used for http: transfers does + no check if proxy-ssl configuration matches + - test cases added, test_10_12 fails on 8.4.0 + + Closes #12255 + +Jay Satiro (3 Nov 2023) + +- curl_sspi: support more revocation error names in error messages + + - Add these revocation errors to sspi error list: + CRYPT_E_NO_REVOCATION_DLL, CRYPT_E_NO_REVOCATION_CHECK, + CRYPT_E_REVOCATION_OFFLINE and CRYPT_E_NOT_IN_REVOCATION_DATABASE. + + Prior to this change those error codes were not matched to their macro + name and instead shown as "unknown error". + + Before: + + schannel: next InitializeSecurityContext failed: + Unknown error (0x80092013) - The revocation function was + unable to check revocation because the revocation server was offline. + + After: + + schannel: next InitializeSecurityContext failed: + CRYPT_E_REVOCATION_OFFLINE (0x80092013) - The revocation function was + unable to check revocation because the revocation server was offline. + + Bug: https://github.com/curl/curl/issues/12239 + Reported-by: Niracler Li + + Closes https://github.com/curl/curl/pull/12241 + +- strdup: don't allow Curl_strndup to read past a null terminator + + - Use malloc + strncpy instead of Curl_memdup to dupe the string before + null terminating it. + + Prior to this change if Curl_strndup was passed a length longer than + the allocated string then it could copy out of bounds. + + This change is for posterity. Curl_strndup was added in the parent + commit and currently none of the calls to it pass a length that would + cause it to read past the allocated length of the input. + + Follow-up to d3b3ba35. + + Closes https://github.com/curl/curl/pull/12254 + +Daniel Stenberg (2 Nov 2023) + +- lib: add and use Curl_strndup() + + The Curl_strndup() function is similar to memdup(), but copies 'n' bytes + then adds a terminating null byte ('\0'). + + Closes #12251 + +- CURPOST_POSTFIELDS.3: add CURLOPT_COPYPOSTFIELDS in SEE ALSO + +Stefan Eissing (2 Nov 2023) + +- pytest: use lower count in repeat tests + + - lower large iteration counts in some tests somewhat for + the same coverage with less duration + + Closes #12248 + +Daniel Stenberg (2 Nov 2023) + +- RELEASE-NOTES: synced + +- docs: clarify that curl passes on input unfiltered + + ... for several options. + + Reported-by: Ophir Lojkine + + Closes #12249 + +- urlapi: when URL encoding the fragment, pass in the right length + + A benign bug because it would only add an extra null terminator. + + Made lib1560 get a test that runs this code. + + Closes #12250 + +Stefan Eissing (2 Nov 2023) + +- vtls: late clone of connection ssl config + + - perform connection cache matching against `data->set.ssl.primary` + and proxy counterpart + - fully clone connection ssl config only when connection is used + + Closes #12237 + +- msh3: error when built with CURL_DISABLE_SOCKETPAIR set + + Reported-by: Gisle Vanem + Closes #12252 + Fixes #12213 + +Daniel Stenberg (2 Nov 2023) + +- hsts: skip single-dot hostname + + Reported-by: Maksymilian Arciemowicz + + Closes #12247 + +- vtls: fix build without proxy + + Follow-up to bf0e278a3c54bc7fee7360da17c + + closes #12243 + +- docs/example/keepalive.c: show TCP keep-alive options + + Closes #12242 + +- lib1560: verify appending blank URL encoded query string + +- urlapi: skip appending NULL pointer query + + Reported-by: kirbyn17 on hackerone + + Closes #12240 + +- lib1560: verify setting host to "" with and without URL encode + +- urlapi: avoid null deref if setting blank host to url encode + + Reported-by: kirbyn17 on hackerone + + Closes #12240 + +- dynbuf: assert for NULL pointer inputs + + Help us catch more mistakes. + + Closes #12238 + +- HTTP3: ngtcp2 builds are no longer experimental + + The other HTTP/3 backends are still experimental. + + Closes #12235 + +Stefan Eissing (31 Oct 2023) + +- vtls: cleanup SSL config management + + - remove `Curl_ssl_get_config()`, no longer needed + + Closes #12204 + +Daniel Stenberg (31 Oct 2023) + +- libcurl-thread.3: simplify the TLS section + + All TLS libraries curl can use are threadsafe since OpenSSL 1.1.x, August + 2016. + + Closes #12233 + +- configure: better --disable-http + + - disable HTTPS-proxy as well, since it can't work without HTTP + + - curl_setup: when HTTP is disabled, also disable all features that are + HTTP-only + + - version: HTTPS-proxy only exists if HTTP support exists + + Closes #12223 + +- http: consider resume with CURLOPT_FAILONERRROR and 416 to be fine + + Finding a 'Content-Range:' in the response changed the handling. + + Add test case 1475 to verify -C - with 416 and Content-Range: header, + which is almost exactly like test 194 which instead uses a fixed -C + offset. Adjusted test 194 to also be considered fine. + + Fixes #10521 + Reported-by: Smackd0wn + Fixes #12174 + Reported-by: Anubhav Rai + Closes #12176 + +Stefan Eissing (30 Oct 2023) + +- GHA: fix checkout of quictls repository to use correct branch name + + Follow-up to c868b0e30f10cd0ac7 + + Closes #12232 + +Daniel Stenberg (30 Oct 2023) + +- docs/example/localport.c: show off CURLOPT_LOCALPORT + + Closes #12230 + +- docs/examples/interface.c: show CURLOPT_INTERFACE use + + Although super simple. + + Closes #12229 + +Viktor Szakats (30 Oct 2023) + +- build: fix compiler warning with auths disabled + + ``` + ./curl/lib/http.c:979:12: warning: unused function 'is_valid_auth_separator' + [-Wunused-function] + static int is_valid_auth_separator(char ch) + ^ + 5 warnings generated. + ``` + + Follow-up to e92edfbef64448ef461117769881f3ed776dec4e #11490 + + Closes #12227 + +- build: require Windows XP or newer + + After this patch we assume availability of `getaddrinfo` and + `freeaddrinfo`, first introduced in Windows XP. Meaning curl + now requires building for Windows XP as a minimum. + + TODO: assume these also in autotools. + + Ref: https://github.com/curl/curl/pull/12221#issuecomment-1783761806 + Closes #12225 + +- appveyor: bump one job to OpenSSL 3.1 (was 1.1.1) + + Use 3.1 with the modern runner image. + + We still use 1.1.1 in 8 jobs. + + 1.1.1 is EOL since 2023-09-11: + https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/ + + Also: + - add missing SSL-backend to job descriptions. + - tidy up CPU in job descriptions. + + Closes #12226 + +Daniel Stenberg (30 Oct 2023) + +- RELEASE-NOTES: synced + +- GHA: bump ngtcp2, nghttp3, nghttp2 and quictls versions + + ngtcp2 1.0.1 + nghttp3 1.0.0 + nghttp2 1.58.0 + quictls 3.1.4+quic + + also sync HTTP3.md with these changes + + Closes #12132 + +Kareem (29 Oct 2023) + +- wolfssl: add default case for wolfssl_connect_step1 switch + + Closes #12218 + +Jay Satiro (29 Oct 2023) + +- curl_setup: disallow Windows IPv6 builds missing getaddrinfo + + - On Windows if IPv6 is enabled but getaddrinfo is missing then #error + the build. + + curl can be built with IPv6 support (ENABLE_IPV6) but without the + ability to resolve hosts to IPv6 addresses (HAVE_GETADDRINFO). On + Windows this is highly unlikely and should be considered a bad build + configuration. + + Such a bad configuration has already given us a bug that was hard to + diagnose. See #12134 and #12136 for discussion. + + Ref: https://github.com/curl/curl/issues/12134 + Ref: https://github.com/curl/curl/pull/12136 + + Closes https://github.com/curl/curl/pull/12221 + +Nico Rieck (29 Oct 2023) + +- openssl: make CURLSSLOPT_NATIVE_CA import Windows intermediate CAs + + - If CURLSSLOPT_NATIVE_CA on Windows then import from intermediate CA + "CA" store after importing from root CA "ROOT" store. + + This change allows curl to work in situations where a server does not + send all intermediate certs and they are present in the "CA" store (the + store with intermediate CAs). This is already allowed by the Schannel + backend. + + Also this change makes partial chain verification possible for those + certs since we allow partial chain verification by default for OpenSSL + (unless CURLSSLOPT_NO_PARTIALCHAIN). This is not allowed by the Schannel + backend. + + Prior to this change CURLSSLOPT_NATIVE_CA only imported "ROOT" certs. + + Fixes https://github.com/curl/curl/issues/12155 + Closes https://github.com/curl/curl/pull/12185 + +Viktor Szakats (28 Oct 2023) + +- Makefile.mk: fix `-rtmp` option for non-Windows [ci skip] + +Daniel Stenberg (28 Oct 2023) + +- asyn-ares: handle no connection in the addrinfo callback + + To avoid crashing. + + Follow-up from 56a4db2 + Closes #12219 + +Jay Satiro (28 Oct 2023) + +- hostip6: fix DEBUG_ADDRINFO builds + + - Removed unused and incorrect parameter from dump_addrinfo(). + + Bug: https://github.com/curl/curl/commit/56a4db2e#commitcomment-131050442 + Reported-by: Gisle Vanem + + Closes https://github.com/curl/curl/pull/12212 + +Viktor Szakats (28 Oct 2023) + +- Makefile.mk: restore `_mingw.h` for default `_WIN32_WINNT` + + In 8.4.0 we deleted `_mingw.h` as part of purging old-mingw support. + Turns out `_mingw.h` had the side-effect of setting a default + `_WIN32_WINNT` value expected by `lib/config-win32.h` to enable + `getaddrinfo` support in `Makefile.mk` mingw-w64 builds. This caused + disabling support for this unless specifying the value manually. + + Restore this header and update its comment to tell why we continue + to need it. + + This triggered a regression in official Windows curl builds starting + with 8.4.0_1. Fixed in 8.4.0_6. (8.5.0 will be using CMake.) + + Regression from 38029101e2d78ba125732b3bab6ec267b80a0e72 #11625 + + Reported-by: zhengqwe on github + Helped-by: Nico Rieck + Fixes #12134 + Fixes #12136 + Closes #12217 + +- hostip: silence compiler warning `-Wparentheses-equality` + + Seen with LLVM 17. + + ``` + hostip.c:1336:22: warning: equality comparison with extraneous parentheses [- + Wparentheses-equality] + 1336 | (a->ai_family == PF_INET)) { + | ~~~~~~~~~~~~~^~~~~~~~~~ + hostip.c:1336:22: note: remove extraneous parentheses around the comparison t + o silence this warning + 1336 | (a->ai_family == PF_INET)) { + | ~ ^ ~ + hostip.c:1336:22: note: use '=' to turn this equality comparison into an assi + gnment + 1336 | (a->ai_family == PF_INET)) { + | ^~ + | = + 1 warning generated. + ``` + + Follow-up to b651aba0962bb31353f55de4dc35f745952a1b10 #12145 + + Reviewed-by: Daniel Stenberg + Closes #12215 + +Stefan Eissing (27 Oct 2023) + +- doh: use PIPEWAIT when HTTP/2 is attempted + + Closes #12214 + +Daniel Stenberg (27 Oct 2023) + +- setopt: remove outdated cookie comment + + Closes #12206 + +Stefan Eissing (27 Oct 2023) + +- cfilter: provide call to tell connection to forget a socket + + - fixed libssh.c workaround for a socket being closed by + the library + - eliminate the terrible hack in cf-socket.c to guess when + this happened and try not closing the socket again. + - fixes race in eyeballing when socket could have failed to + be closed for a discarded connect attempt + + Closes #12207 + +- url: protocol handler lookup tidy-up + + - rename lookup to what it does + - use ARRAYSIZE instead of NULL check for end + - offer alternate lookup for 0-terminated strings + + Closes #12216 + +Viktor Szakats (27 Oct 2023) + +- build: variadic macro tidy-ups + + - delete unused `HAVE_VARIADIC_MACROS_C99/GCC` feature checks. + (both autotools and CMake.) + - delete duplicate `NULL` check in `Curl_trc_cf_infof()`. + - fix compiler warning in `CURL_DISABLE_VERBOSE_STRINGS` builds. + ``` + ./lib/cf-socket.c:122:41: warning: unused parameter 'data' [-Wunused-parame + ter] + static void nosigpipe(struct Curl_easy *data, + ^ + ``` + - fix `#ifdef` comments in `lib/curl_trc.{c,h}`. + - fix indentation in some `infof()` calls. + + Follow-up to dac293cfb7026b1ca4175d88b80f1432d3d3c684 #12167 + + Cherry-picked from #12105 + Closes #12210 + +- cmake: speed up threads setup for Windows + + Win32 threads are always available. We enabled them unconditionally + (with `ENABLE_THREADED_RESOLVER`). CMake built-in thread detection + logic has this condition hard-coded for Windows as well (since at least + 2007). + + Instead of doing all the work of detecting pthread combinations on + Windows, then discarding those results, skip these efforts and assume + built-in thread support when building for Windows. + + This saves 1-3 slow CMake configuration steps. + + Reviewed-by: Daniel Stenberg + Closes #12202 + +- cmake: speed up zstd detection + + Before this patch we detected the presence of a specific zstd API to + see if we can use the library. zstd published that API in its first + stable release: v1.0.0 (2016-08-31). + + Replace that method by detecting the zstd library version instead and + accepting if it's v1.0.0 or newer. Also display this detected version + and display a warning if the zstd found is unfit for curl. + + We use the same version detection method as zstd itself, via its public + C header. + + This deviates from autotools which keeps using the slow method of + looking for the API by building a test program. The outcome is the same + as long as zstd keeps offering this API. + + Ref: https://github.com/facebook/zstd/commit/5a0c8e24395079f8e8cdc90aa1659cd5 + ab1b7427 (2016-08-12, committed) + Ref: https://github.com/facebook/zstd/releases/tag/v0.8.1 (2016-08-18, first + released) + Ref: https://github.com/facebook/zstd/releases/tag/v1.0.0 + + Reviewed-by: Daniel Stenberg + Closes #12200 + +Daniel Stenberg (26 Oct 2023) + +- openssl: fix infof() to avoid compiler warning for %s with null + + vtls/openssl.c: In function ‘ossl_connect_step2’: + ../lib/curl_trc.h:120:10: error: ‘%s’ directive argument is null [-Werror + =format-overflow=] + 120 | Curl_infof(data, __VA_ARGS__); } while(0) + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + vtls/openssl.c:4008:5: note: in expansion of macro ‘infof’ + 4008 | infof(data, "SSL connection using %s / %s / %s / %s", + | ^~~~~ + vtls/openssl.c:4008:49: note: format string is defined here + 4008 | infof(data, "SSL connection using %s / %s / %s / %s", + | ^~ + + Follow-up to b6e6d4ff8f253c8b8055bab + Closes #12196 + +Stefan Eissing (26 Oct 2023) + +- lib: apache style infof and trace macros/functions + + - test for a simplified C99 variadic check + - args to infof() in --disable-verbose are no longer disregarded but + must compile. + + Closes #12167 + Fixes #12083 + Fixes #11880 + Fixes #11891 + +Daniel Stenberg (26 Oct 2023) + +- RELEASE-NOTES: synced + +Stefan Eissing (26 Oct 2023) + +- urldata: move async resolver state from easy handle to connectdata + + - resolving is done for a connection, not for every transfer + - save create/dup/free of a cares channel for each transfer + - check values of setopt calls against a local channel if no + connection has been attached yet, when needed. + + Closes #12198 + +Daniel Stenberg (26 Oct 2023) + +- CURLOPT_WRITEFUNCTION.3: clarify what libcurl returns for CURL_WRITEFUNC_ERRO + R + + It returns CURLE_WRITE_ERROR. It was not previously stated clearly. + + Reported-by: enWILLYado on github + Fixes #12201 + Closes #12203 + +Viktor Szakats (25 Oct 2023) + +- autotools: update references to deleted `crypt-auth` option + + Delete leftovers of the `crypt-auth` `./configure` option and + add the new ones that replaced them. + + Follow-up to e92edfbef64448ef461117769881f3ed776dec4e #11490 + + Reviewed-by: Daniel Stenberg + Closes #12194 + +Stefan Eissing (25 Oct 2023) + +- lib: introduce struct easy_poll_set for poll information + + Connection filter had a `get_select_socks()` method, inspired by the + various `getsocks` functions involved during the lifetime of a + transfer. These, depending on transfer state (CONNECT/DO/DONE/ etc.), + return sockets to monitor and flag if this shall be done for POLLIN + and/or POLLOUT. + + Due to this design, sockets and flags could only be added, not + removed. This led to problems in filters like HTTP/2 where flow control + prohibits the sending of data until the peer increases the flow + window. The general transfer loop wants to write, adds POLLOUT, the + socket is writeable but no data can be written. + + This leads to cpu busy loops. To prevent that, HTTP/2 did set the + `SEND_HOLD` flag of such a blocked transfer, so the transfer loop cedes + further attempts. This works if only one such filter is involved. If a + HTTP/2 transfer goes through a HTTP/2 proxy, two filters are + setting/clearing this flag and may step on each other's toes. + + Connection filters `get_select_socks()` is replaced by + `adjust_pollset()`. They get passed a `struct easy_pollset` that keeps + up to `MAX_SOCKSPEREASYHANDLE` sockets and their `POLLIN|POLLOUT` + flags. This struct is initialized in `multi_getsock()` by calling the + various `getsocks()` implementations based on transfer state, as before. + + After protocol handlers/transfer loop have set the sockets and flags + they want, the `easy_pollset` is *always* passed to the filters. Filters + "higher" in the chain are called first, starting at the first + not-yet-connection one. Each filter may add sockets and/or change + flags. When all flags are removed, the socket itself is removed from the + pollset. + + Example: + + * transfer wants to send, adds POLLOUT + * http/2 filter has a flow control block, removes POLLOUT and adds + POLLIN (it is waiting on a WINDOW_UPDATE from the server) + * TLS filter is connected and changes nothing + * h2-proxy filter also has a flow control block on its tunnel stream, + removes POLLOUT and adds POLLIN also. + * socket filter is connected and changes nothing + * The resulting pollset is then mixed together with all other transfers + and their pollsets, just as before. + + Use of `SEND_HOLD` is no longer necessary in the filters. + + All filters are adapted for the changed method. The handling in + `multi.c` has been adjusted, but its state handling the the protocol + handlers' `getsocks` method are untouched. + + The most affected filters are http/2, ngtcp2, quiche and h2-proxy. TLS + filters needed to be adjusted for the connecting handshake read/write + handling. + + No noticeable difference in performance was detected in local scorecard + runs. + + Closes #11833 + +Daniel Stenberg (25 Oct 2023) + +- tests/README: SOCKS tests are not using OpenSSH, it has its own server + + Follow-up to 04fd67555cc + + Closes #12195 + +Jacob Hoffman-Andrews (25 Oct 2023) + +- tets: make test documentation more user-friendly + + Put the instructions to run tests right at the top of tests/README.md. + + Give instructions to read the runtests.1 man page for information + about flags. Delete redundant copy of the flags documentation in the + README. + + Add a mention in README.md of the important parallelism flag, to make + test runs go much faster. + + Move documentation of output line format into the runtests.1 man page, + and update it with missing flags. + + Fix the order of two flags in the man page. + + Closes #12193 + +Viktor Szakats (24 Oct 2023) + +- cmake: pre-fill rest of detection values for Windows + + The goal of this patch is to avoid unnecessary feature detection work + when doing Windows builds with CMake. Do this by pre-filling well-known + detection results for Windows and specifically for mingw-w64 and MSVC + compilers. Also limit feature checks to platforms where the results are + actually used. Drop a few redundant ones. And some tidying up. + + - pre-fill remaining detection values in Windows CMake builds. + + Based on actual detection results observed in CI runs, preceding + similar work over libssh2 and matching up values with + `lib/config-win32.h`. + + This brings down CMake configuration time from 58 to 14 seconds on the + same local machine. + + On AppVeyor CI this translates to: + - 128 seconds -> 50 seconds VS2022 MSVC with OpenSSL (per CMake job): + https://ci.appveyor.com/project/curlorg/curl/builds/48208419/job/4gw66ecr + jpy7necb#L296 + https://ci.appveyor.com/project/curlorg/curl/builds/48217440/job/8m4fwrr2 + fe249uo8#L186 + - 62 seconds -> 16 seconds VS2017 MINGW (per CMake job): + https://ci.appveyor.com/project/curlorg/curl/builds/48208419/job/s1y8q5iv + lcs7ub29?fullLog=true#L290 + https://ci.appveyor.com/project/curlorg/curl/builds/48217440/job/pchpxyjs + yc9kl13a?fullLog=true#L194 + + The formula is about 1-3 seconds delay for each detection. Almost all + of these trigger a full compile-link cycle behind the scenes, slow + even today, both cross and native, mingw-w64 and apparently MSVC too. + Enabling .map files or other custom build features slows it down + further. (Similar is expected for autotools configure.) + + - stop detecting `idn2.h` if idn2 was deselected. + autotools does this. + + - stop detecting `idn2.h` if idn2 was not found. + This deviates from autotools. Source code requires both header and + lib, so this is still correct, but faster. + + - limit `ADDRESS_FAMILY` detection to Windows. + + - normalize `HAVE_WIN32_WINNT` value to lowercase `0x0a12` format. + + - pre-fill `HAVE_WIN32_WINNT`-dependent detection results. + Saving 4 (slow) feature-detections in most builds: `getaddrinfo`, + `freeaddrinfo`, `inet_ntop`, `inet_pton` + + - fix pre-filled `HAVE_SYS_TIME_H`, `HAVE_SYS_PARAM_H`, + `HAVE_GETTIMEOFDAY` for mingw-w64. + Luckily this do not change build results, as `WIN32` took + priority over `HAVE_GETTIMEOFDAY` with the current source + code. + + - limit `HAVE_CLOCK_GETTIME_MONOTONIC_RAW` and + `HAVE_CLOCK_GETTIME_MONOTONIC` detections to non-Windows. + We're not using these in the source code for Windows. + + - reduce compiler warning noise in CMake internal logs: + - fix to include `winsock2.h` before `windows.h`. + Apply it to autotools test snippets too. + - delete previous `-D_WINSOCKAPI_=` hack that aimed to fix the above. + - cleanup `CMake/CurlTests.c` to emit less warnings. + + - delete redundant `HAVE_MACRO_SIGSETJMP` feature check. + It was the same check as `HAVE_SIGSETJMP`. + + - delete 'experimental' marking from `CURL_USE_OPENSSL`. + + - show CMake version via `CMakeLists.txt`. + Credit to the `zlib-ng` project for the idea: + https://github.com/zlib-ng/zlib-ng/blob/61e181c8ae93dbf56040336179c9954078b + d1399/CMakeLists.txt#L7 + + - make `CMake/CurlTests.c` pass `checksrc`. + + - `CMake/WindowsCache.cmake` tidy-ups. + + - replace `WIN32` guard with `_WIN32` in `CMake/CurlTests.c`. + + Closes #12044 + +Jay Satiro (24 Oct 2023) + +- page-footer: clarify exit code 25 + + - Clarify that curl tool exit code 25 means an upload failed to start. + + Exit code 25 is equivalent to CURLE_UPLOAD_FAILED (25). Prior to this + change the documentation only mentioned the case of FTP STOR failing. + + Reported-by: Emanuele Torre + + Ref: https://github.com/curl/curl/blob/curl-8_4_0/docs/libcurl/libcurl-errors + .3#L113-L115 + + Fixes https://github.com/curl/curl/issues/12189 + Closes https://github.com/curl/curl/pull/12190 + +Daniel Stenberg (24 Oct 2023) + +- scripts/cijobs.pl: adjust for appveyor + + Follow-up to a1d73a6bb + +Alex Bozarth (24 Oct 2023) + +- OpenSSL: Include SIG and KEM algorithms in verbose + + Currently the verbose output does not include which algorithms are used + for the signature and key exchange when using OpenSSL. Including the + algorithms used will enable better debugging when working on using new + algorithm implementations. Know what algorithms are used has become more + important with the fast growing research into new quantum-safe + algorithms. + + This implementation includes a build time check for the OpenSSL version + to use a new function that will be included in OpenSSL 3.2 that was + introduced in openssl/openssl@6866824 + + Based-on-patch-by: Martin Schmatz + Closes #12030 + +Daniel Stenberg (23 Oct 2023) + +- http2: provide an error callback and failf the message + + Getting nghttp2's error message helps users understand what's going + on. For example when the connection is brought down due a forbidden + header is used - as that header is then not displayed by curl itself. + + Example: + + curl: (92) Invalid HTTP header field was received: frame type: 1, + stream: 1, name: [upgrade], value: [h2,h2c] + + Ref: #12172 + Closes #12179 + +Turiiya (23 Oct 2023) + +- BINDINGS: add V binding + + Closes #12182 + +Daniel Stenberg (22 Oct 2023) + +- configure: check for the fseeko declaration too + + ... and make the code require both symbol and declaration. + + This is because for Android, the symbol is always present in the lib at + build-time even when not actually available in run-time. + + Assisted-by: Viktor Szakats + Reported-by: 12932 on github + Fixes #12086 + Closes #12158 + +Viktor Szakats (22 Oct 2023) + +- cmake: fix OpenSSL quic detection in quiche builds + + An orphan call to `CheckQuicSupportInOpenSSL()` remained after a recent + update when checking QUIC for quiche. Move back QUIC detection to + a function and fixup callers to use that. Also make sure that quiche + gets QUIC from BoringSSL, because it doesn't support other forks at this + time. + + Regression from dee310d54261f9a8416e87d50bccfe2cbe404949 #11555 + + Reported-by: Casey Bodley + Fixes #12160 + Closes #12162 + +Daniel Stenberg (22 Oct 2023) + +- RELEASE-NOTES: synced + + bump to 8.5.0 for pending release + +Dan Fandrich (21 Oct 2023) + +- test3103: add missing quotes around a test tag attribute + +Loïc Yhuel (21 Oct 2023) + +- tool: fix --capath when proxy support is disabled + + After 95e8515ca0, --capath always sets CURLOPT_PROXY_CAPATH, which fails + with CURLE_UNKNOWN_OPTION when proxy support is disabled. + + Closes #12089 + +Daniel Stenberg (21 Oct 2023) + +- openldap: move the alloc of ldapconninfo to *connect() + + Fixes a minor memory leak on LDAP connection reuse. + + Doing the allocation already in *setup_connection() is wrong since that + connect struct might get discarded early when an existing connection is + reused instead. + + Closes #12166 + +- openldap: set the callback argument in oldap_do + + ... to make sure it has the current 'data' pointer and not a stale old + one. + + Reported-by: Dan Fandrich + Closes #12166 + +- gnutls: support CURLSSLOPT_NATIVE_CA + + Remove the CURL_CA_FALLBACK logic. That build option was added to allow + primarily OpenSSL to use the default paths for loading the CA certs. For + GnuTLS it was instead made to load the "system certs", which is + different and not desirable. + + The native CA store loading is now asked for with this option. + + Follow-up to 7b55279d1d856 + + Co-authored-by: Jay Satiro + + Closes #12137 + +Stefan Eissing (21 Oct 2023) + +- RTSP: improved RTP parser + + - fix HTTP header parsing to report incomplete + lines it buffers as consumed! + - re-implement the RTP parser for interleave RTP + messages for robustness. It is now keeping its + state at the connection + - RTSP protocol handler "readwrite" implementation + now tracks if the response is before/in/after + header parsing or "in" a bod by calling + "Curl_http_readwrite_headers()" itself. This + allows it to know when non-RTP bytes are "junk" + or HEADER or BODY. + - tested with #12035 and various small receive + sizes where current master fails + + Closes #12052 + +- http2: header conversion tightening + + - fold the code to convert dynhds to the nghttp2 structs + into a dynhds internal method + - saves code duplication + - pacifies compiler analyzers + + Closes #12097 + +Daniel Stenberg (21 Oct 2023) + +- curl_ntlm_wb: fix elif typo + + Reported-by: Manfred Schwarb + Follow-up to d4314cdf65ae + Bug: https://github.com/curl/curl/commit/d4314cdf65aee295db627016934bd9eb621a + b077#r130551295 + +Dan Fandrich (20 Oct 2023) + +- test1683: remove commented-out check alternatives + + Python precheck/postcheck alternatives were included but commented out. + Since these are not used and perl is guaranteed to be available to run + the perl versions anyway, the Python ones are removed. + +Daniel Stenberg (20 Oct 2023) + +- hostip: show the list of IPs when resolving is done + + Getting 'curl.se' today then gets this verbose output which might help + debugging connectivity related matters. + + * Host curl.se:80 was resolved. + * IPv6: 2a04:4e42::347, 2a04:4e42:200::347, 2a04:4e42:400::347, + 2a04:4e42:600::347, 2a04:4e42:800::347, 2a04:4e42:a00::347, + 2a04:4e42:c00::347, 2a04:4e42:e00::347 + * IPv4: 151.101.193.91, 151.101.1.91, 151.101.65.91, 151.101.129.91 + + Co-authored-by: Jay Satiro + Closes #12145 + +rilysh (20 Oct 2023) + +- docs: fix function typo in curl_easy_option_next.3 + + Closes #12170 + +Daniel Stenberg (20 Oct 2023) + +- vssh: remove the #ifdef for Curl_ssh_init, use empty macro + + In the same style as other init calls + +- easy: remove duplicate wolfSSH init call + + It is already done in Curl_ssh_init() where it belongs. + + Closes #12168 + +- socks: make SOCKS5 use the CURLOPT_IPRESOLVE choice + + Fixes #11949 + Reported-by: Ammar Faizi + Closes #12163 + +- urldata: move the 'internal' boolean to the state struct + + ... where all the other state bits for the easy handles live. + + Closes #12165 + +- url: don't touch the multi handle when closing internal handles + + Reported-by: Maksymilian Arciemowicz + Closes #12165 + +Faraz Fallahi (19 Oct 2023) + +- getenv: PlayStation doesn't have getenv() + + Closes #12140 + +Daniel Stenberg (19 Oct 2023) + +- transfer: only reset the FTP wildcard engine in CLEAR state + + To avoid the state machine to start over and redownload all the files + *again*. + + Reported-by: lkordos on github + Regression from 843b3baa3e3cb228 (shipped in 8.1.0) + Bisect-by: Dan Fandrich + Fixes #11775 + Closes #12156 + +Stefan Eissing (19 Oct 2023) + +- GHA: move mod_h2 version in CI to v2.0.25 + + Closes #12157 + +Daniel Stenberg (19 Oct 2023) + +- ntlm_wb: use pipe instead of socketpair when possible + + Closes #12149 + +- RELEASE-NOTES: synced + +- asyn-thread: use pipe instead of socketpair for IPC when available + + If pipe() is present. Less overhead. + + Helped-by: Viktor Szakats + Closes #12146 + +Dan Fandrich (17 Oct 2023) + +- tests: Fix Windows test helper tool search & use it for handle64 + + The checkcmd() and checktestcmd() functions would not have worked on + Windows due to hard-coding the UNIX PATH separator character and not + adding .exe file extension. This meant that tools like stunnel, valgrind + and nghttpx would not have been found and used on Windows, and + inspection of previous test runs show none of those being found in pure + Windows CI builds. + + With this fixed, they can be used to detect the handle64.exe program + before attempting to use it. When handle64.exe was called + unconditionally without it existing, it caused perl to abort the test + run with the error + + The running command stopped because the preference variable + "ErrorActionPreference" or common parameter is set to Stop: + sh: handle64.exe: command not found + + Closes #12115 + +Daniel Stenberg (17 Oct 2023) + +- multi: use pipe instead of socketpair to *wakeup() + + If pipe() is present. Less overhead. + + Closes #12142 + +Jay Satiro (17 Oct 2023) + +- build: fix 'threadsafe' feature detection for older gcc + + - Add 'threadsafe' to the feature list shown during build if POSIX + threads are being used. + + This is a follow-up to 5adb6000 which added support for building a + thread-safe libcurl with older versions of gcc where atomic is not + available but pthread is. + + Reported-by: Dan Fandrich + Co-authored-by: Dan Fandrich + + Fixes https://github.com/curl/curl/issues/12125 + Closes https://github.com/curl/curl/pull/12127 + +Daniel Stenberg (16 Oct 2023) + +- test729: verify socks4a with excessive proxy user name length + +- socks: better buffer size checks for socks4a user and hostname + + Also limit the proxy user name to 255 bytes, which is the same limit as + in SOCKS5. + + Reported-by: sd0 on hackerone + Closes #12139 + +- curl.h: on FreeBSD include sys/param.h instead of osreldate.h + + Should things build on Playstation as well + + Fixes #12107 + Reported-by: Faraz Fallahi + Closes #12123 + +Marcin Rataj (16 Oct 2023) + +- tool_operate: fix links in ipfs errors + + URL fragment links generated from headers in + https://curl.se/docs/ipfs.html are lowercase. + + Closes #12133 + +Viktor Szakats (15 Oct 2023) + +- cmake: replace `check_library_exists_concat()` + + The idea of `check_library_exists_concat()` is that it detects an + optional component and adds it to the list of libs that we also use in + subsequent component checks. This caused problems when detecting + components with unnecessary dependencies that were not yet built. + + CMake offers the `CMAKE_REQUIRED_LIBRARIES` variable to set libs used + for component checks, which we already use in most cases. That left 4 + uses of `check_library_exists_concat()`. Only one of these actually + needed the 'concat' feature (ldap/lber). + + Delete this function and replace it with standard + `check_library_exists()` and manual management of our `CURL_LIBS` + list we use when linking build targets. And special logic to handle the + ldap/lber case. + + (We have a similar function for headers: `check_include_file_concat()`. + It works, but problematic for performance reasons and because it hides + the actual headers required in `check_symbol_exists()` calls.) + + Ref: #11537 #11558 + Fixes #11285 + Fixes #11648 + Closes #12070 + +LoRd_MuldeR (15 Oct 2023) + +- tool_cb_wrt: fix write output for very old Windows versions + + - Pass missing parameter for 'lpNumberOfCharsWritten' to WriteConsoleW() + function. + + Apparently this parameter was *not* optional on older Windows versions. + + Issue observed on Windows XP SP2. Issue not observed on Windows 7 SP1. + So at some point between those two Microsoft changed the behavior. + + Prior to this change, on those versions if parameter is NULL then the + function call fails with error ERROR_INVALID_ACCESS. + + Regression since af3f4e41. + + Ref: https://github.com/MicrosoftDocs/Console-Docs/issues/299 + + Fixes https://github.com/curl/curl/issues/12131 + Closes https://github.com/curl/curl/pull/12130 + +Jay Satiro (15 Oct 2023) + +- tool_urlglob: fix build for old gcc versions + + - Don't use __builtin_mul_overflow for GCC 4 and earlier. + + The function was added in GCC 5. + + Ref: https://gcc.gnu.org/gcc-5/changes.html + + Reported-by: Dan Fandrich + + Fixes https://github.com/curl/curl/issues/12124 + Closes https://github.com/curl/curl/pull/12128 + +Carlos Henrique Lima Melara (14 Oct 2023) + +- docs/libcurl: fix three minor man page format mistakes + + Reported-by: Samuel Henrique + + Closes https://github.com/curl/curl/pull/12126 + +Jay Satiro (14 Oct 2023) + +- tests/server: add more SOCKS5 handshake error checking + + - Add additional checking for missing and too-short SOCKS5 handshake + messages. + + Prior to this change the SOCKS5 test server did not check that all parts + of the handshake were received successfully. If those parts were missing + or too short then the server would access uninitialized memory. + + This issue was discovered in CI job 'memory-sanitizer' test results. + Test 2055 was failing due to the SOCKS5 test server not running. It was + not running because either it crashed or memory sanitizer aborted it + during Test 728. Test 728 connects to the SOCKS5 test server on a + redirect but does not send any data on purpose. The test server was not + prepared for that. + + Reported-by: Dan Fandrich + + Fixes https://github.com/curl/curl/issues/12117 + Closes https://github.com/curl/curl/pull/12118 + +Daniel Stenberg (14 Oct 2023) + +- RELEASE-NOTES: synced + +Sohom Datta (14 Oct 2023) + +- tool_getparam: limit --rate to be smaller than number of ms + + Currently, curl allows users to specify absurd request rates that might + be higher than the number of milliseconds in the unit (ex: curl --rate + 3600050/h http://localhost:8080 does not error out despite there being + only 3600000ms in a hour). + + This change adds a conditional check before the millisecond calculation + making sure that the number is not higher than the numerator (the unit) + If the number is higher, curl errors out with PARAM_NUMBER_TOO_LARGE + + Closes #12116 + +Daniel Stenberg (14 Oct 2023) + +- opts: fix two minor man page format mistakes + +Jay Satiro (14 Oct 2023) + +- curl_trc: remove a bad assertion + + - Remove DEBUGASSERT that an internal handle must not have user + private_data set before calling the user's debug callback. + + This is a follow-up to 0dc40b2a. The user can distinguish their easy + handle from an internal easy handle by setting CURLOPT_PRIVATE on their + easy handle. I had wrongly assumed that meant the user couldn't then + set CURLOPT_PRIVATE on an internal handle as well. + + Bug: https://github.com/curl/curl/pull/12060#issuecomment-1754594697 + Reported-by: Daniel Stenberg + + Closes https://github.com/curl/curl/pull/12104 + +Dan Fandrich (13 Oct 2023) + +- test613: stop showing an error on missing output file + + This test would show an error message if the output was missing during + the log post-processing step, but the message was not captured by the + test harness and wasn't useful since the normal golden log file + comparison would the problem more clearly. + +Stefan Eissing (13 Oct 2023) + +- quic: manage connection idle timeouts + + - configure a 120s idle timeout on our side of the connection + - track the timestamp when actual socket IO happens + - check IO timestamp to our *and* the peer's idle timeouts + in "is this connection alive" checks + + Reported-by: calvin2021y on github + Fixes #12064 + Closes #12077 + +Dan Fandrich (13 Oct 2023) + +- CI: ignore test 286 on Appveyor gcc 9 build + + This test fails sometimes with a super fast retry loop due to what may + just be a compiler bug. The test results are ignored on the one CI job + where it occurs because there seems to be nothing we can do to fix it. + + Fixes #12040 + Closes #12106 + +Viktor Szakats (13 Oct 2023) + +- lib: fix gcc warning in printf call + + Do not pass NULL to printf %s. + + Seen with gcc 13.2.0 on Debian: + ``` + .../curl/lib/connect.c:696:27: warning: '%s' directive argument is null [-Wfo + rmat-overflow=] + ``` + Ref: https://github.com/curl/curl-for-win/actions/runs/6476161689/job/1758442 + 6483#step:3:11104 + + Ref: #10284 + Co-authored-by: Jay Satiro + Closes #12082 + +Alex Klyubin (13 Oct 2023) + +- http2: safer invocation of populate_binsettings + + populate_binsettings now returns a negative value on error, instead of a + huge positive value. Both places which call this function have been + updated to handle this change in its contract. + + The way populate_binsettings had been used prior to this change the huge + positive values -- due to signed->unsigned conversion of the potentially + negative result of nghttp2_pack_settings_payload which returns negative + values on error -- are not possible. But only because http2.c currently + always provides a large enough output buffer and provides H2 SETTINGS + IVs which pass the verification logic inside nghttp2. If the + verification logic were to change or if http2.c started passing in more + IVs without increasing the output buffer size, the overflow could become + reachable, and libcurl/curl might start leaking memory contents to + servers/proxies... + + Closes #12101 + +Daniel Stenberg (13 Oct 2023) + +- openssl: avoid BN_num_bits() NULL pointer derefs + + Reported-by: icy17 on github + Fixes #12099 + Closes #12100 + +- wolfssl: require WOLFSSL_SYS_CA_CERTS for loading system CA + + This define is set in wolfssl's options.h file when this function and + feature is present. Handles both builds with the feature explicitly + disabled and wolfSSL versions before 5.5.2 - which introduced this API + call. + + Closes #12108 + +- tool_urlglob: make multiply() bail out on negative values + + - Does not work correctly with negative values + - use __builtin_mul_overflow() on gcc + + Reported-by: Torben Dury + Closes #12102 + +Loïc Yhuel (13 Oct 2023) + +- cmake: fix CURL_DISABLE_GETOPTIONS + + - Add CURL_DISABLE_GETOPTIONS to curl_config.h.cmake. + + Prior to this change the option had no effect because it was missing + from that file. + + Closes https://github.com/curl/curl/pull/12091 + +- easy_lock: add a pthread_mutex_t fallback + + This allows to keep the init threadsafe with gcc < 4.9.0 (no C11 + atomics). + + Closes https://github.com/curl/curl/pull/12090 + +Viktor Szakats (12 Oct 2023) + +- CI: add autotools, out-of-tree, debug build to distro check job + + Add a job that builds curl from a generated source tarball sample, with + autotools, out-of-tree, in debug mode. + + Ref: #12085 + Closes #12088 + +Daniel Stenberg (12 Oct 2023) + +- http: avoid Expect: 100-continue if Upgrade: is used + + Reported-by: Daniel Jelinski + Fixes #12022 + Closes #12062 + +Jan Alexander Steffens (heftig) (12 Oct 2023) + +- docs: use SOURCE_DATE_EPOCH for generated manpages + + This should make builds from Git reproducible. + + Closes #12092 + +Daniel Stenberg (12 Oct 2023) + +- RELEASE-NOTES: synced + + Bumped to 8.4.1 + +Viktor Szakats (12 Oct 2023) + +- cmake: fix `HAVE_H_ERRNO_ASSIGNABLE` detection + + Fix `HAVE_H_ERRNO_ASSIGNABLE` to not run, only compile its test snippet, + aligning this with autotools. This fixes an error when doing + cross-builds and also actually detects this feature. It affected systems + not allowlisted into this, e.g. SerenityOS. + + We used this detection result to enable `HAVE_GETADDRINFO_THREADSAFE`. + + Follow-up to 04a3a377d83fd72c4cf7a96c9cb6d44785e33264 #11979 + Ref: #12095 (closed in favour of this patch) + Ref: #11964 (effort to sync cmake detections with autotools) + + Reported-by: Kartatz on Github + Assisted-by: Kartatz on Github + Fixes #12093 + Closes #12094 + +- build: add `src/.checksrc` to source tarball + + Regression from e5bb88b8f824ed87620bd923552534c83c2a516e #11958 + + Bug: https://github.com/curl/curl/pull/11958#issuecomment-1757079071 + Reported-by: Romain Geissler + Fixes #12084 + Closes #12085 + +Version 8.4.0 (11 Oct 2023) + +Daniel Stenberg (11 Oct 2023) + +- RELEASE-NOTES: synced + +- THANKS: add contributors from 8.4.0 + +Jay Satiro (11 Oct 2023) + +- socks: return error if hostname too long for remote resolve + + Prior to this change the state machine attempted to change the remote + resolve to a local resolve if the hostname was longer than 255 + characters. Unfortunately that did not work as intended and caused a + security issue. + + Bug: https://curl.se/docs/CVE-2023-38545.html + +Stefan Eissing (10 Oct 2023) + +- CI: remove slowed-network tests + + - remove these tests as they are currently not reliable in our CI + setups. + + curl handles the test cases, but CI sometimes fails on these due to + additional conditions. Rather than mix them in, an additional CI job + will be added in the future that is specific to them. + + Closes https://github.com/curl/curl/pull/12075 + +Jay Satiro (10 Oct 2023) + +- libcurl-env-dbg.3: move debug variables from libcurl-env.3 + + - Move documentation of libcurl environment variables used only in debug + builds from libcurl-env into a separate document libcurl-env-dbg. + + - Document more debug environment variables. + + Previously undocumented or missing a description: + + CURL_ALTSVC_HTTP, CURL_DBG_SOCK_WBLOCK, CURL_DBG_SOCK_WPARTIAL, + CURL_DBG_QUIC_WBLOCK, CURL_DEBUG, CURL_DEBUG_SIZE, CURL_GETHOSTNAME, + CURL_HSTS_HTTP, CURL_FORCETIME, CURL_SMALLREQSEND, CURL_SMALLSENDS, + CURL_TIME. + + Closes https://github.com/curl/curl/pull/11811 + +Dan Fandrich (9 Oct 2023) + +- test670: increase the test timeout + + This should make it more immune to loaded servers. + + Ref: #11328 + +Stefan Eissing (9 Oct 2023) + +- MQTT: improve receive of ACKs + + - add `mq->recvbuf` to provide buffering of incomplete + ACK responses + - continue ACK reading until sufficient bytes available + - fixes test failures on low network receives + + Closes #12071 + +Viktor Szakats (9 Oct 2023) + +- quic: fix BoringSSL build + + Add guard around `SSL_CTX_set_ciphersuites()` use. + + Bug: https://github.com/curl/curl/pull/12065#issuecomment-1752171885 + + Follow-up to aa9a6a177017e4b74d33cdf85a3594900f4a7f81 + + Co-authored-by: Jay Satiro + Reviewed-by: Daniel Stenberg + Closes #12067 + +Stefan Eissing (9 Oct 2023) + +- test1540: improve reliability + + - print that bytes have been received on pausing, but not how many + + Closes #12069 + +- test2302: improve reliability + + - make result print collected write data, unless + change in meta flags is detected + - will show same result even when data arrives via + several writecb invocations + + Closes #12068 + +Daniel Stenberg (9 Oct 2023) + +- curl_easy_pause: set "in callback" true on exit if true + + Because it might have called another callback in the mean time that then + set the bit FALSE on exit. + + Reported-by: Jay Satiro + Fixes #12059 + Closes #12061 + +Viktor Szakats (8 Oct 2023) + +- h3: add support for ngtcp2 with AWS-LC builds + + ``` + curl 8.4.0-DEV (x86_64-apple-darwin) libcurl/8.4.0-DEV (SecureTransport) AWS- + LC/1.15.0 nghttp2/1.56.0 ngtcp2/0.19.1 nghttp3/0.15.0 + Release-Date: [unreleased] + Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps + mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss + Features: alt-svc AsynchDNS HSTS HTTP2 HTTP3 HTTPS-proxy IPv6 Largefile Multi + SSL NTLM SSL threadsafe UnixSockets + ``` + + Also delete an obsolete GnuTLS TODO and update the header comment in + `FindNGTCP2.cmake`. + + Reviewed-by: Daniel Stenberg + Closes #12066 + +- build: do not publish `HAVE_BORINGSSL`, `HAVE_AWSLC` macros + + Syncing this up with CMake. + + Source code uses the built-in `OPENSSL_IS_AWSLC` and + `OPENSSL_IS_BORINSSL` macros to detect BoringSSL and AWS-LC. No help is + necessary from the build tools. + + The one use of `HAVE_BORINGSSL` in the source turned out to be no longer + necessary for warning-free BoringSSL + Schannel builds. Ref: #1610 #2634 + + autotools detects this anyway for display purposes. + CMake detects this to decide whether to use the BoringSSL-specific + crypto lib with ngtcp2. It detects AWS-LC, but doesn't use the detection + result just yet (planned in #12066). + + Ref: #11964 + + Reviewed-by: Daniel Stenberg + Reviewed-by: Jay Satiro + Closes #12065 + +Marc Hoersken (8 Oct 2023) + +- CI: move distcheck job from Azure Pipelines to GitHub Actions + + This will allow for more trigger excludes within Azure Pipelines. + + Also fixes seemingly broken check with scripts/installcheck.sh. + Ref: 190374c74ec4e5247d9066544c86e8d095e1d7b5 + + Assisted-by: Philip Heiduck + Closes #9532 + +Daniel Stenberg (8 Oct 2023) + +- url: fall back to http/https proxy env-variable if ws/wss not set + + Reported-by: Craig Andrews + Fixes #12031 + Closes #12058 + +Stefan Eissing (8 Oct 2023) + +- cf-socket: simulate slow/blocked receives in debug + + add 2 env variables for non-UDP sockets: + 1. CURL_DBG_SOCK_RBLOCK: percentage of receive calls that randomly + should return EAGAIN + 2. CURL_DBG_SOCK_RMAX: max amount of bytes read from socket + + Closes #12035 + +- http2: refused stream handling for retry + + - answer HTTP/2 streams refused via a GOAWAY from the server to + respond with CURLE_RECV_ERROR in order to trigger a retry + on another connection + + Reported-by: black-desk on github + Ref #11859 + Closes #12054 + +Jay Satiro (8 Oct 2023) + +- CURLOPT_DEBUGFUNCTION.3: warn about internal handles + + - Warn that the user's debug callback may be called with the handle + parameter set to an internal handle. + + Without this warning the user may assume that the only handles their + debug callback receives are the easy handles on which they set + CURLOPT_DEBUGFUNCTION. + + This is a follow-up to f8cee8cc which changed DoH handles to inherit + the debug callback function set in the user's easy handle. As a result + those handles are now passed to the user's debug callback function. + + Closes https://github.com/curl/curl/pull/12034 + +- url: fix typo + +Daniel Stenberg (8 Oct 2023) + +- test458: verify --expand-output, expanding a file name accepting option + + Verifies the fix in #12055 (commit f2c8086ff15e6e995e1) + +- tool_getparam: accept variable expansion on file names too + + Reported-by: PBudmark on github + Fixes #12048 + Closes #12055 + +- RELEASE-NOTES: synced + +- multi: do CURLM_CALL_MULTI_PERFORM at two more places + + ... when it does a state transition but there is no particular socket or + timer activity. This was made apparent when commit b5bb84c removed a + superfluous timer expiry. + + Reported-by: Dan Fandrich. + Fixes #12033 + Closes #12056 + +Viktor Szakats (7 Oct 2023) + +- GHA/linux: mbedtls 3.5.0 + minor dep bumps + + Closes #12057 + +Dan Fandrich (7 Oct 2023) + +- CI: bump OpenLDAP package version on FreeBSD + + The old one is no longer available. + +Marc Hoersken (7 Oct 2023) + +- docs/libcurl/opts/Makefile.inc: add missing manpage files + + Detected with #9532 + +Dan Fandrich (7 Oct 2023) + +- tests: fix a race condition in ftp server disconnect + + If a client disconnected and reconnected quickly, before the ftp server + had a chance to respond, the protocol message/ack (ping/pong) sequence + got out of sync, causing messages sent to the old client to be delivered + to the new. A disconnect must now be acknowledged and intermediate + requests thrown out until it is, which ensures that such synchronization + problems can't occur. This problem could affect ftp, pop3, imap and smtp + tests. + + Fixes #12002 + Closes #12049 + +Viktor Szakats (7 Oct 2023) + +- appveyor: bump mingw-w64 job to gcc 13 (was: 8) + + This sets gcc 6, 7, 9, 13 in our test mix (was: 6, 7, 8, 9). + Adding a modern gcc version to the tests. + + (The gcc 8 job used to take around 50 minutes. The new image with gcc 13 + finished in 32, 35, 34 minutes in the 3 test runs so far.) + + It also adds a modern CMake version and OS env to our mingw-w64 builds. + + Closes #12051 + +David Benjamin (6 Oct 2023) + +- openssl: use X509_ALGOR_get0 instead of reaching into X509_ALGOR + + While the struct is still public in OpenSSL, there is a (somewhat + inconvenient) accessor. Use it to remain compatible if it becomes opaque + in the future. + + Closes #12038 + +Daniel Stenberg (6 Oct 2023) + +- curl_easy_pause.3: mention it works within callbacks + + Reported-by: Maxim Dzhura + Bug: https://curl.se/mail/lib-2023-10/0010.html + Closes #12046 + +- curl_easy_pause.3: mention h2/h3 buffering + + Asked-by: Maxim Dzhura + Ref: https://curl.se/mail/lib-2023-10/0011.html + + Closes #12045 + +Viktor Szakats (6 Oct 2023) + +- cmake: re-add missed C89 headers for specific detections + + We removed C89 `setjmp.h` and `signal.h` detections and excluded them + from the global header list we use when detecting functions [1]. Then + missed to re-add these headers to the specific functions which need + them to be detected [2]. Fix this omission in this patch. + + [1] Follow-up to 3795fcde995d96db641ddbcc8a04f9f0f03bef9f #11951 + [2] Follow-up to 96c29900bcec32dd6bc8e9857c8871ff4b8b8ed9 #11940 + + Closes #12043 + +Daniel Stenberg (6 Oct 2023) + +- multi: set CURLM_CALL_MULTI_PERFORM after switch to DOING_MORE + + Since there is nothing to wait for there. Avoids the test 1233 hang + reported in #12033. + + Reported-by: Dan Fandrich + Closes #12042 + +Dan Fandrich (5 Oct 2023) + +- test1903: actually verify the cookies after the test + + The test otherwise could do just about anything (except leak memory in + debug mode) and its bad behaviour wouldn't be detected. Now, check the + resulting cookie file to ensure the cookies are still there. + + Closes #12041 + +- test: add missing s + + The tests will otherwise fail if curl has them disabled. + +- test1906: set a lower timeout since it's hit on Windows + + msys2 builds actually hit the connect timeout in normal operation, so + lower the timeout from 5 minutes to 5 seconds to reduce test time. + + Ref: #11328 + Closes #12036 + +Daniel Stenberg (5 Oct 2023) + +- RELEASE-NOTES: synced + +Jay Satiro (5 Oct 2023) + +- idn: fix WinIDN null ptr deref on bad host + + - Return CURLE_URL_MALFORMAT if IDN hostname cannot be converted from + UTF-8 to UTF-16. + + Prior to this change a failed conversion erroneously returned CURLE_OK + which meant 'decoded' pointer (what would normally point to the + punycode) would not be written to, remain NULL and be dereferenced + causing an access violation. + + Closes https://github.com/curl/curl/pull/11983 + +Dan Fandrich (4 Oct 2023) + +- tests: close the shell used to start sshd + + This shell isn't needed once sshd starts, so use "exec" so it doesn't + stick around. + + Closes #12032 + +Daniel Stenberg (4 Oct 2023) + +- base64: also build for curl + + Since the tool itself now uses the base64 code using the curlx way, it + needs to build also when the tool needs it. Starting now, the tool build + defines BULDING_CURL to allow lib-side code to use it. + + Follow-up to 2e160c9c6525 + + Closes #12010 + +Eduard Strehlau (4 Oct 2023) + +- tests: Fix zombie processes left behind by FTP tests. + + ftpserver.pl correctly cleans up spawned server processes, + but forgets to wait for the shell used to spawn them. + This is barely noticeable during a normal testrun, + but causes process exhaustion and test failure + during a complete torture run of the FTP tests. + + Fixes #12018 + Closes #12020 + +Dan Fandrich (4 Oct 2023) + +- github/labeler: improve labeler matches + +- test574: add a timeout to the test + + This one hangs occasionally, so this will speed up a test run and allow + logs to be seen when it does. + + Closes #12025 + +- tests: propagate errors in libtests + + Use the test macros to automatically propagate some errors, and check + and log others while running the tests. This can help in debugging + exactly why a test has failed. + +- tests: set --expect100-timeout to improve test reliability + + On an overloaded server, the default 1 second timeout can go by without + the test server having a chance to respond with the expected headers, + causing tests to fail. Increase the 1 second timeout to 99 seconds so + this failure mode is no longer a problem on test 1129. Some other tests + already set a high value, but make them consistently 99 seconds so if + something goes wrong the test is stalled for less time. + + Ref: #11328 + +- CI: ignore the "flaky" and "timing-dependent" test results in CMake + + This was already done for automake builds but CMake builds were missed. + Test 1086 actually causes the test harness to crash with: + + Warning: unable to close filehandle DWRITE properly: Broken pipe at C:/projec + ts/curl/tests/ftpserver.pl line 527 + + Rather than fix it now, this change leaves test 1086 entirely skipped on + those builds that show this problem. + + Follow-up to 589dca761 + + Ref: #11865 + +Viktor Szakats (4 Oct 2023) + +- cmake: improve OpenLDAP builds + + - cmake: detect OpenLDAP based on function `ldap_init_fd`. + autotools does this. autotools also publishes this detection result + in `HAVE_LDAP_INIT_FD`. We don't mimic that with CMake as the source + doesn't use this value. (it might need to be remove-listed in + `scripts/cmp-config.pl` for future OpenLDAP test builds.) + This also deletes existing self-declaration method via the + CMake-specific `CURL_USE_OPENLDAP` configuration. + + - cmake: define `LDAP_DEPRECATED=1` for OpenLDAP. + Like autotools does. This fixes a long list of these warnings: + ``` + /usr/local/opt/openldap/include/ldap.h:1049:5: warning: 'LDAP_DEPRECATED' i + s not defined, evaluates to 0 [-Wundef] + ``` + + - cmake: delete LDAP TODO comment no longer relevant. + + Also: + + - autotools: replace domain name `dummy` with `0.0.0.0` in LDAP feature + detection functions. + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #12024 + +- cmake: fix unity builds for more build combinations + + By using unique static function/variable names in source files + implementing these interfaces. + + - OpenLDAP combined with any SSH backend. + + - MultiSSL with mbedTLS, OpenSSL, wolfSSL, SecureTransport. + + Closes #12027 + +Daniel Stenberg (4 Oct 2023) + +- tests: remove leading spaces from some tags + + The threee tags ``, `` and `` were frequently used + with a leading space that this removes. The reason this habbit is so + widespread in testcases is probably that they have been copy and pasted. + + Hence, fixing them all now might curb this practice from now on. + + Closes #12028 + +Viktor Szakats (4 Oct 2023) + +- GHA: bump actions/checkout + + Follow-up to 2e0fa50fc16b9339f51e0a7bfff0352829323acb #11964 + Follow-up to c39585d9b7ef3cbfc1380812dec60e7b275b6af3 #12000 + + Closes #12023 + +- spelling: fix codespell 2.2.6 typos + + Closes #12019 + +Daniel Stenberg (3 Oct 2023) + +- GHA: add workflow to compare configure vs cmake outputs + + Uses scripts/cmp-config.pl two compare two curl_config.h files, + presumbly generated with configure and cmake. It displays the + differences and filters out a lot of known lines we ignore. + + The script also shows the matches that were *not* used. Possibly + subjects for removal. + + Closes #11964 + +- appveyor: enable test 571 + + Follow-up from 8a940fd55c175f7 / #12013 + + Closes #12017 + +Viktor Szakats (3 Oct 2023) + +- build: alpha-sort source files for lib and src + + Closes #12014 + +- cmake: delete old `HAVE_LDAP_URL_PARSE` logic + + Left there by accident after adding proper detection for this. + + Follow-up to 772f0d8edf1c3c2745543f42388ccec5a16ee2c0 #12006 + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #12015 + +Stefan Eissing (3 Oct 2023) + +- tests: increase lib571 timeout from 3s to 30s + + - 3s is too short for our CI, making this test fail occasionally + - test usually experiences no delay run locally, so 30s wont hurt + + Closes #12013 + +Viktor Szakats (3 Oct 2023) + +- cmake: fix unity with Windows Unicode + TrackMemory + + Found the root cause of the startup crash in unity builds with Unicode + and TrackMemory enabled at the same time. + + We must make sure that the `memdebug.h` header doesn't apply to + `lib/curl_multibyte.c` (as even noted in a comment there.) In unity + builds all headers apply to all sources, including `curl_multibyte.c`. + This probably resulted in an infinite loop on startup. + + Exclude this source from unity compilation with TrackMemory enabled, + in both libcurl and curl tool. Enable unity mode for a debug Unicode + CI job to keep it tested. Also delete the earlier workaround that + fully disabled unity for affected builds. + + Follow-up to d82b080f6374433ce7c98241329189ad2d3976f8 #12005 + Follow-up to 3f8fc25720900b14b7432f4bd93407ca15311719 #11095 + + Closes #11928 + +- cmake: disable unity mode with Windows Unicode + TrackMemory + + "TrackMemory" is `ENABLE_DEBUG=ON` (aka `ENABLE_CURLDEBUG=ON`, + aka `-DCURLDEBUG`). + + There is an issue with memory tracking and Unicode when built in "unity" + mode, which results in the curl tool crashing right on startup, even + without any command-line option. Interestingly this doesn't happen under + WINE (at least on the system I tested this on), but consistenly happens + on real Windows machines. Crash is 0xC0000374 heap corruption. Both + shared and static curl executables are affected. + + This limitation probably won't hit too many people, but it remains + a TODO to find and fix the root cause and drop this workaround. + + Example builds and runs: + https://ci.appveyor.com/project/curlorg/curl/builds/48169111/job/17cptxhtpubd + 7iwj#L313 (static) + https://ci.appveyor.com/project/curlorg/curl/builds/48169111/job/76e1ge758tby + qu9c#L317 (shared) + + Follow-up to 3f8fc25720900b14b7432f4bd93407ca15311719 #11095 + + Ref: #11928 + Closes #12005 + +- cmake: tidy-up `NOT_NEED_LBER_H` detection + + Follow-up to 772f0d8edf1c3c2745543f42388ccec5a16ee2c0 #12006 + +- appveyor: rewrite batch in PowerShell + CI improvements + + 1. Rewrite in PowerShell: + + - rewrite MS-DOS batch build script in PowerShell. + - move some bash operations into native PowerShell. + - fixups for PowerShell insisting on failure when a command outputs + something to stderr. + - fix to actually run `curl -V` after every build. + (and exclude ARM64 builds.) + - also say why we skipped `curl -V` if we had to skip. + - fix CMake warnings about unused configuration variables, by adapting + these dynamically for build cases. + - dedupe OpenSSL path into a variable. + - disable `test1451` failing with a warning anyway due to missing python + impacket. (after trying and failing to install impacket) + PowerShell promotes these warnings to errors by PowerShell. We can also + suppress they wholesale if they start causing issues in the future, + like we already to with `autoreconf` and `./configure`. + + PowerShell is better than MS-DOS batches, so the hope is this makes it + easier to extend and maintain the AppVeyor build logic. POSIX/bash isn't + supported inline by AppVeyor on Windows build machines, but we are okay + to keep it in an external script, so it's also an option. + + 2. CI improvements: + + - enable tests for a "unity" build job. + - speed-up CI initialization by using shallow clones of the curl repo. + - speed-up CMake MSVC jobs with `TrackFileAccess=false`. + - enable parallelism in `VisualStudioSolution` builds. + - display CMake version before builds. + - always show the CPU in job names. + - tell which jobs are build-only in job names. + - move `TESTING:` value next to `DISABLED_TESTS:` in two jobs. + - add `config.log` (autotools) to dumped logs (need to enable manually). + + 3. Style: + + - use single-quotes in YAML like we do in other CI YAML files. + It also allows to drop quoting characters and lighter to write/read. + (keep double quotes for PowerShell strings needing expansion.) + + Closes #11999 + +- cmake: fix `HAVE_LDAP_SSL`, `HAVE_LDAP_URL_PARSE` on non-Windows + + - set `HAVE_LDAP_URL_PARSE` if `ldap_url_parse` function exists. + Before this patch we set it based it on the presence of `stricmp`, + which correctly enabled it on e.g. Windows, but was inaccurate for + other platforms. + + - always set `HAVE_LDAP_SSL` if an LDAP backend is detected and + LDAPS is not explicitly disabled. This mimics autotools behaviour. + Previously we set it only for Windows LDAP. After this fix, LDAPS is + correctly enabled in default macOS builds. + + - enable LDAP[S] for a CMake macOS CI job. Target OS X 10.9 (Mavericks) + to avoid deprecation warnings for LDAP API. + + - always detect `HAVE_LDAP_SSL_H`, even with LDAPS explicitly disabled. + This doesn't make much sense, but let's do it to sync behaviour with + autotools. + + - fix benign typo in variable name. + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #12006 + +- autotools: restore `HAVE_IOCTL_*` detections + + This restores `CURL_CHECK_FUNC_IOCTL` detection. I deleted it in + 4d73854462f30948acab12984b611e9e33ee41e6 and + c3456652a0c72d1845d08df9769667db7e159949 (2022-08), because the + `HAVE_IOCTL` result it generated was unused in the source. But, + I did miss the fact that this had two dependent checks: + `CURL_CHECK_FUNC_IOCTL_FIONBIO`, + `CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR` that we do actually need: + `HAVE_IOCTL_FIONBIO`, `HAVE_IOCTL_SIOCGIFADDR`. + + Regression from 4d73854462f30948acab12984b611e9e33ee41e6 + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #12008 + +Daniel Stenberg (2 Oct 2023) + +- RELEASE-PROCEDURE.md: updated coming release dates + +- RELEASE-NOTES: synced + +Viktor Szakats (1 Oct 2023) + +- cmake: pre-cache `HAVE_POLL_FINE` on Windows + + Windows doesn't support `poll()`, so we can safely skip checking for + fine poll. + + Closes #12003 + +- gha: bump actions to latest versions + + - actions@checkout@v4 (from v3 and v2) + + - fsfe/reuse-action@v2 (from v1) + + Closes #12000 + +Stefan Eissing (30 Sep 2023) + +- h2: testcase and fix for pausing h2 streams + + - refs #11982 where it was noted that paused transfers may + close successfully without delivering the complete data + - made sample poc into tests/http/client/h2-pausing.c and + added test_02_27 to reproduce + + Closes #11989 + Fixes #11982 + Reported-by: Harry Sintonen + +Viktor Szakats (30 Sep 2023) + +- cmake: validate `CURL_DEFAULT_SSL_BACKEND` config value + + Before this patch CMake builds accepted any value and it was used at + runtime as-is. This patch make sure that the selected default backend + is also enabled in the build. It also enforces a full lowercase value. + + This improves reproducibility and brings CMake in sync with autotools + which already worked like described above. + + Follow-up to 26c7feb8b9d51a57fab3325571b4bbfa03b11af0 #11774 + + Closes #11998 + +- autotools: adjust `CURL_CA_PATH` value to CMake + + autotools was using the same value as CMake, but with an ending + slash. Delete the ending slash to match configurations. + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #11997 + +- cmake: detect `sys/wait.h` and `netinet/udp.h` + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #11996 + +Daniel Stenberg (30 Sep 2023) + +- lib: provide and use Curl_hexencode + + Generates a lower case ASCII hex output from a binary input. + + Closes #11990 + +- configure: check for the capath by default + + ... if the chosen TLS backend supports it: OpenSSL, GnuTLS, mbedTLS or wolfSS + L + + cmake: synced + + Assisted-by: Viktor Szakats + Closes #11987 + +- wolfssl: ignore errors in CA path + + The default wolfSSL_CTX_load_verify_locations() function is quite picky + with the certificates it loads and will for example return error if just + one of the certs has expired. + + With the *_ex() function and its WOLFSSL_LOAD_FLAG_IGNORE_ERR flag, it + behaves more similar to what OpenSSL does by default. + + Even the set of default certs on my Debian unstable has several expired + ones. + + Assisted-by: Juliusz Sosinowicz + Assisted-by: Michael Osipov + + Closes #11987 + +- create-dirs.d: clarify it also uses --output-dirs + + Reported-by: Robert Simpson + Fixes #11991 + Closes #11995 + +Viktor Szakats (30 Sep 2023) + +- appveyor: fix yamlint issues, indent + + Also: + - use double quotes in all batch if statements. + + Closes #11994 + +- cmake: detect `HAVE_CLOCK_GETTIME_MONOTONIC_RAW` + + Based on existing autotools logic. + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #11981 + +- cmake: detect `HAVE_GETADDRINFO_THREADSAFE` + + Based on existing autotools logic. + + autotools checks for old versions of the allowlisted target OSes and + disables this feature when seeing them. In CMake we assume we're running + on newer systems and enable regardless of OS version. + + autotools always runs all 3 probes for non-fast-tracked systems and + enables this feature if any one of them was successful. To save + configuration time, CMake stops at the first successful check. + + OpenBSD is not fast-tracked and then gets blocklisted as a generic BSD + system. I haven't double-checked if this is correct, but looks odd. + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #11979 + +- cmake: fix `HAVE_WRITABLE_ARGV` detection + + Move detection before the creation of detection results in + `curl_config.h`. + + Ref: #11964 (effort to sync cmake detections with autotools) + + Closes #11978 + +- appveyor: minor improvements + + - run `curl -V` after builds to see if they run and with what features. + Except for one job where a CRT DLL is missing. And ARM64 which should + fail, but is silently not launched instead. + + - copy libcurl DLL next to curl tool and tests binaries in shared mode. + This makes it possible to run the tests. (We don't run tests after + these builds yet.) + + - list the DLLs and EXEs present after the builds. + + - add `DEBUG` variable for CMake builds to allow disabling it, for + testing non-debug builds. (currently enabled for all) + + - add commented lines that dump CMake configuration logs for debugging + build/auto-detection issues. + + - add gcc version to jobs where missing. + + - switch a job to the native MSYS2 mingw-w64 toolchain. This adds gcc 9 + to the build mix. + + - make `SHARED=OFF` and `OPENSSL=OFF` defaults global. + + - delete a duplicate backslash. + + Closes #11976 + +- configure: replace adhoc domain with `localhost` in tests + + Reviewed-by: Daniel Stenberg + Closes #11988 + +- tidy-up: use more example domains + + Also make use of the example TLD: + https://en.wikipedia.org/wiki/.example + + Reviewed-by: Daniel Stenberg + Closes #11992 + +Dan Fandrich (29 Sep 2023) + +- runtests: display the test status if tests appear hung + + It sometimes happens that a test hangs during a test run and never + returns. The test harness will wait indefinitely for the results and on + CI servers the CI job will eventually be killed after an hour or two. + At the end of a test run, if results haven't come in within a couple of + minutes, display the status of all test runners and what tests they're + running to help in debugging the problem. + + This feature is really only kick in with parallel testing enabled, which + is fine because without parallel testing it's usually easy to tell what + test has hung. + + Closes #11980 + +- github/labeler: remove workaround for labeler + + This was added due to what seemed to be a bug regarding the sync-labels: + config option, but it looks like it wasn't necessary. + + Follow-up to b2b0534e7 + +Viktor Szakats (29 Sep 2023) + +- docs: upgrade an URL to HTTPS in `BINDINGS.md` [ci skip] + +Daniel Stenberg (29 Sep 2023) + +- docs: replace made up domains with example.com + + in FAQ and MANUAL.md + + - example.com was made for this purpose. + + - reduces the risk that one of those domains suddenly start hosting + something nasty and we provide links to them + + Closes #11986 + +Michael Osipov (29 Sep 2023) + +- acinclude.m4: Document proper system truststore on FreeBSD + + The default system truststore on FreeBSD has been /etc/ssl/certs for many + years now. It is managed canonically through certctl(8) and contains hashed + symlinks for OpenSSL and other TLS providers. + The previous ones require security/ca_root_nss which might not be installed o + r + will not contain any custom CA certificates. + + Closes #11985 + +Daniel Stenberg (29 Sep 2023) + +- FAQ: How do I upgrade curl.exe in Windows? + + This is a growing question, better answer it here to get somewhere to + point users to. + + Closes #11984 + +Viktor Szakats (28 Sep 2023) + +- cmake: pre-cache `HAVE_BASENAME` for mingw-w64 and MSVC + + `basename` is present in mingw-w64, missing from MSVC. Pre-cache + accordingly to make configure faster. + + Notice that `basename` has a bug so we later disable it even with + mingw-w64: + https://github.com/curl/curl/blob/781242ffa44a9f9b95b6da5ac5a1bf6372ec6257/li + b/curl_setup.h#L820-L825 + + Closes #11974 + +Daniel Stenberg (28 Sep 2023) + +- cmake: add missing checks + + - check for arc4random. To make rand.c use it accordingly. + - check for fcntl + - fix fseek detection + - add SIZEOF_CURL_SOCKET_T + - fix USE_UNIX_SOCKETS + - define HAVE_SNPRINTF to 1 + - check for fnmatch + - check for sched_yield + - remove HAVE_GETPPID duplicate from curl_config.h + - add HAVE_SENDMSG + + Ref: #11964 + + Co-authored-by: Viktor Szakats + Closes #11973 + +- configure: remove unused checks + + - for sys/uio.h + - for fork + - for connect + + Ref: #11964 + + Closes #11973 + +- lib: remove TIME_WITH_SYS_TIME + + It is not used in any code anywhere. + + Ref: #11964 + Closes #11975 + +- docs: update curl man page references + + Detected by the manpage-syntax update + + Closes #11963 + +- manpage-syntax: verify curl man page references + + 1. References to curl symbols are now checked that they indeed exist as + man pages. This for \f references as well as the names referenced in the + SEE ALSO section. + + Allowlist curl.1 since it is not always built in builds + + 2. References to curl symbols that lack section now causes warning, since tha + t + will prevent them from getting linked properly + + 3. Check for "bare" references to curl functions and warn, they should be + references + + Closes #11963 + +- cmake: add check for suseconds_t + + And fix the HAVE_LONGLONG define + + Ref: #11964 + Closes #11977 + +Viktor Szakats (28 Sep 2023) + +- tidy-up: whitespace fixes + + Closes #11972 + +- cmake: detect TLS-SRP in OpenSSL/wolfSSL/GnuTLS + + With new option `CURL_DISABLE_SRP=ON` to force-disable it. + To match existing option and detection logic in autotools. + + Also: + - fix detecting GnuTLS. + We assume `nettle` as a GnuTLS dependency. + - add CMake GnuTLS CI job. + - bump AppVeyor CMake OpenSSL MSVC job to OpenSSL 1.1.1 (from 1.0.2) + TLS-SRP fails to detect with 1.0.2 due to an OpenSSL header bug. + - fix compiler warning when building with GnuTLS and disabled TLS-SRP. + - fix comment typos, whitespace. + + Ref: #11964 + + Closes #11967 + +- tool: use our own stderr variable + + Earlier this year we changed our own stderr variable to use the standard + name `stderr` (to avoid bugs where someone is using `stderr` instead of + the curl-tool specific variable). This solution needed to override the + standard `stderr` symbol via the preprocessor. This in turn didn't play + well with unity builds and caused curl tool to crash or stay silent due + to an uninitialized stderr. This was a hard to find issue, fixed by + manually breaking out one file from the unity sources. + + To avoid two these two tricks, this patch implements a different + solution: Restore using our own local variable for our stderr output and + leave `stderr` as-is. To avoid using `stderr` by mistake, add a + `checksrc` rule (based on logic we already used in lib for `strerror`) + that detects any `stderr` use in `src` and points to using our own + variable instead: `tool_stderr`. + + Follow-up to 06133d3e9b8aeb9e9ca0b3370c246bdfbfc8619e + Follow-up to 2f17a9b654121dd1ecf4fc043c6d08a9da3522db + + Closes #11958 + +Loïc Yhuel (28 Sep 2023) + +- connect: only start the happy eyeballs timer when needed + + The timeout is only used when there is a second address family, for the + delayed eyeballer. + + Closes #11939 + +Daniel Stenberg (28 Sep 2023) + +- tool_operate: free 'gateway' correctly + + Pointed out by Coverity. The fix in 93885cf3a8d4e was incomplete. + + Also removed repeated wording in IPFS related error messages. + + Closes #11969 + +Stefan Eissing (28 Sep 2023) + +- lib: move handling of `data->req.writer_stack` into Curl_client_write() + + - move definitions from content_encoding.h to sendf.h + - move create/cleanup/add code into sendf.c + - installed content_encoding writers will always be called + on Curl_client_write(CLIENTWRITE_BODY) + - Curl_client_cleanup() frees writers and tempbuffers from + paused transfers, irregardless of protocol + + Closes #11908 + +Loïc Yhuel (28 Sep 2023) + +- multi: round the timeout up to prevent early wakeups + + Curl_timediff rounds down to the millisecond, so curl_multi_perform can + be called too early, then we get a timeout of 0 and call it again. + + The code already handled the case of timeouts which expired less than + 1ms in the future. By rounding up, we make sure we will never ask the + platform to wake up too early. + + Closes #11938 + +Daniel Stenberg (28 Sep 2023) + +- RELEASE-NOTES: spell out that IPFS is via gateway + +- RELEASE-NOTES: synced + +- tool_operate: avoid strlen() -1 on zero length content from file + + Follow-up to 65b563a96a226649ba12cb1e + + Closes #11959 + +- tool_operate: fix memory mixups + + Switch to plain getenv() from curl_getenv() to avoid the allocation and + having to keep track of which free() or curl_free() that need to be + used. + + Coverity found issues and a memory leak. + + Follow-up to 65b563a96a226649ba12cb1e + + Closes #11959 + +Viktor Szakats (27 Sep 2023) + +- curl-functions.m4: fixup recent bad edits + + Follow-up to 96c29900bcec32dd6bc8e9857c8871ff4b8b8ed9 #11940 + + Closes #11966 + +Daniel Stenberg (27 Sep 2023) + +- curl-functions.m4: fix include line + + This made the getaddrinfo detection fail, but we did not spot it in the + CI because it graciously falled back to using legacy functions instead! + + Follow-up to 96c29900bcec (#11940) + + Closes #11965 + +- inet_ntop: add typecast to silence Coverity + + CID 1024653: Integer handling issues (SIGN_EXTENSION) + + Suspicious implicit sign extension: "src[i]" with type "unsigned char + const" (8 bits, unsigned) is promoted in "src[i] << (1 - i % 2 << 3)" to + type "int" (32 bits, signed), then sign-extended to type "unsigned long" + (64 bits, unsigned). If "src[i] << (1 - i % 2 << 3)" is greater than + 0x7FFFFFFF, the upper bits of the result will all be 1. + + 111 words[i/2] |= (src[i] << ((1 - (i % 2)) << 3)); + + The value will not be greater than 0x7FFFFFFF so this still cannot + happen. + + Also, switch to ints here instead of longs. The values stored are 16 bit + so at least no need to use 64 bit variables. Also, longs are 32 bit on + some platforms so this logic still needs to work with 32 bits. + + Closes #11960 + +- docs: adapt SEE ALSO sections to new requirements + + To please manpage-syntax.pl used by test 1173 + + Closes #11957 + +- manpage-syntax.pl: verify SEE ALSO syntax + + - Enforce a single reference per .BR line + - Skip the quotes around the section number for example (3) + - Insist on trailing commas on all lines except the last + - Error on comma on the last SEE ALSO entry + + - List the entries alpha-sorted, not enforced just recommended + + Closes #11957 + +- connect: expire the timeout when trying next + + ... so that it gets called again immediately and can continue trying + addresses to connect to. Otherwise it might unnecessarily wait for a + while there. + + Fixes #11920 + Reported-by: Loïc Yhuel + Closes #11935 + +- http: remove wrong comment for http_should_fail + + Reported-by: Christian Schmitz + Ref: #11936 + Closes #11941 + +Dan Fandrich (26 Sep 2023) + +- tool_setopt: remove unused function tool_setopt_flags + + This function is identical to tool_setopt_bitmask except that it treats + the argument as unsigned. + + Closes #11943 + +Viktor Szakats (26 Sep 2023) + +- cmake: add feature checks for `memrchr` and `getifaddrs` + + - `HAVE_MEMRCHR` for `memrchr`. + - `HAVE_GETIFADDRS` for `getifaddrs`. + This was present in `lib/curl_config.h.cmake` but missed the detection + logic. + + To match existing autotools feature checks. + + Closes #11954 + +- cmake: move global headers to specific checks + + Before this patch we added standard headers unconditionally to the + global list of headers used for feature checks. This is unnecessary + and also doesn't help CMake 'Generate' performance. This patch moves + these headers to each feature check where they are actually needed. + Stop using `stddef.h`, as it seems unnecessary. + + I've used autotools' `m4/curl-functions.m4` to figure out these + dependencies. + + Also delete checking for the C89 standard header `time.h`, that I + missed in the earlier commit. + + Ref: 96c29900bcec32dd6bc8e9857c8871ff4b8b8ed9 #11940 + + Closes #11951 + +- src/mkhelp: make generated code pass `checksrc` + + Closes #11955 + +- tests: show which curl tool `runtests.pl` is using + + To help debugging when there is issue finding or running it. + + Closes #11953 + +- CI/azure: make `MAKEFLAGS` global to parallelize all jobs + + https://dev.azure.com/daniel0244/curl/_build/results?buildId=17528 (before) + https://dev.azure.com/daniel0244/curl/_build/results?buildId=17545 (after, wi + th -j3) + + Closes #11952 + +- CI/azure: migrate old mingw MSYS1 jobs to MSYS2 + + Also delete an accidental variable reference. + + Follow-up to 38029101e2d78ba125732b3bab6ec267b80a0e72 + + Closes #11945 + +Daniel Stenberg (26 Sep 2023) + +- docs: add see also curl_multi_get_handles to some man pages + + Assisted-by: Jay Satiro + + Closes #11942 + +Viktor Szakats (26 Sep 2023) + +- cmake: assume `_fseeki64` and no `fseeko` on Windows + + `_fseeki64` is present in mingw-w64 1.0 (2011-09-26) headers, and + at least Watcom C 1.9 (2010) headers and MSVS 2008 [1]. + + `fseeko` is not present in any of these. + + (mingw-w64 1.0 also offers `fseeko64`.) + + [1] https://github.com/curl/curl/pull/11944#issuecomment-1734995004 + + Follow-up to 9c7165e96a3a9a2d0b7059c87c699b5ca8cdae93 #11918 + + Closes #11950 + +- build: delete checks for C89 standard headers + + Delete checks and guards for standard C89 headers and assume these are + available: `stdio.h`, `string.h`, `time.h`, `setjmp.h`, `stdlib.h`, + `stddef.h`, `signal.h`. + + Some of these we already used unconditionally, some others we only used + for feature checks. + + Follow-up to 9c7165e96a3a9a2d0b7059c87c699b5ca8cdae93 #11918 (for `stdio.h` i + n CMake) + + Closes #11940 + +Stefan Eissing (26 Sep 2023) + +- multiif.h: remove Curl_multi_dump declaration + + Follow-up to d850eea2 which removed the Curl_multi_dump definition. + + Closes https://github.com/curl/curl/pull/11946 + +Jay Satiro (26 Sep 2023) + +- config-win32: define HAVE__FSEEKI64 + + Follow-up to 9c7165e9 which added an fseeko wrapper to the lib that + calls _fseeki64 if it is available. + + Closes https://github.com/curl/curl/pull/11944 + +- docs: explain how PINNEDPUBLICKEY is independent of VERIFYPEER + + - Explain that peer verification via CURLOPT_PINNEDPUBLICKEY takes place + even if peer verification via CURLOPT_SSL_VERIFYPEER is turned off. + + The behavior is verified by test2048. + + Bug: https://github.com/curl/curl/issues/2935#issuecomment-418371872 + Reported-by: claudiusaiz@users.noreply.github.com + + Bug: https://github.com/curl/curl/discussions/11910 + Reported-by: Hakan Sunay Halil + + Closes https://github.com/curl/curl/pull/11930 + +Stefan Eissing (26 Sep 2023) + +- openssl: improve ssl shutdown handling + + - If SSL shutdown is not finished then make an additional call to + SSL_read to gather additional tracing. + + - Fix http2 and h2-proxy filters to forward do_close() calls to the next + filter. + + For example h2 and SSL shutdown before and after this change: + + Before: + + Curl_conn_close -> cf_hc_close -> Curl_conn_cf_discard_chain -> + ssl_cf_destroy + + After: + + Curl_conn_close -> cf_hc_close -> cf_h2_close -> cf_setup_close -> + ssl_cf_close + + Note that currently the tracing does not show output on the connection + closure handle. Refer to discussion in #11878. + + Ref: https://github.com/curl/curl/discussions/11878 + + Closes https://github.com/curl/curl/pull/11858 + +Loïc Yhuel (26 Sep 2023) + +- multi: fix small timeouts + + Since Curl_timediff rounds down to the millisecond, timeouts which + expire in less than 1ms are considered as outdated and removed from the + list. We can use Curl_timediff_us instead, big timeouts could saturate + but this is not an issue. + + Closes #11937 + +Viktor Szakats (25 Sep 2023) + +- cmake: fix stderr initialization in unity builds + + Before this patch, in certain build configurations the curl tool may + not have displayed anything (debug, macOS), or crashed at startup + (debug, Windows). + + Follow-up to 3f8fc25720900b14b7432f4bd93407ca15311719 + Necessary after 2f17a9b654121dd1ecf4fc043c6d08a9da3522db + + Closes #11929 + +- cmake: fix missing `zlib.h` when compiling `libcurltool` + + Came up while testing debug/testing build for Windows. I'm not sure why + it didn't come up in earlier tests with similar config. + `tool_hugehelp.c` might indeed require `zlib.h` and without linking + `CURL_LIBS` to the `curltool` target, CMake doesn't seem to add detected + dependency headers to the compiler command. + + ``` + [ 25%] Building C object src/CMakeFiles/curltool.dir/tool_hugehelp.c.obj + cd .../curl/bld-cmake-llvm-x64/src && /usr/local/opt/llvm/bin/clang + --target=x86_64-w64-mingw32 --sysroot=/usr/local/opt/mingw-w64/toolchain-x8 + 6_64 + -DCURLDEBUG -DCURL_STATICLIB -DHAVE_CONFIG_H -DUNICODE -DUNITTESTS -D_UNICO + DE + -I.../curl/include -I.../curl/lib -I.../curl/bld-cmake-llvm-x64/lib + -I.../curl/bld-cmake-llvm-x64/include -I.../curl/src -Wno-unused-command-li + ne-argument + -D_UCRT -DDEBUGBUILD -DHAS_ALPN -DUSE_MANUAL=1 -fuse-ld=lld -Wl,-s -static + -libgcc + -lucrt [...] -O3 -DNDEBUG -municode -MD + -MT src/CMakeFiles/curltool.dir/tool_hugehelp.c.obj + -MF CMakeFiles/curltool.dir/tool_hugehelp.c.obj.d + -o CMakeFiles/curltool.dir/tool_hugehelp.c.obj -c .../curl/bld-cmake-llvm-x + 64/src/tool_hugehelp.c + .../curl/bld-cmake-llvm-x64/src/tool_hugehelp.c:6:10: fatal error: 'zlib.h' f + ile not found + 6 | #include + | ^~~~~~~~ + ``` + + Follow-up to 39e7c22bb459c2e818f079984989a26a09741860 + + Closes #11927 + +- cmake: fix duplicate symbols when linking tests + + The linker resolves this automatically in non-unity builds. In unity + builds the linker cannot drop a single object with the duplicates, + resulting in these errors. The root issue is that we started including + certain objects both via both libcurlu and libcurltool libs. + + Regression from 39e7c22bb459c2e818f079984989a26a09741860 + + Windows errors: + ``` + [ 3%] Linking C executable unit1303.exe + [ 3%] Building C object tests/server/CMakeFiles/rtspd.dir/__/__/lib/curl_mul + tibyte.c.obj + ../../lib/libcurlu-d.a(unity_0.c.obj): In function `curlx_convert_UTF8_to_wch + ar': + C:/projects/curl/lib/curl_multibyte.c:44: multiple definition of `curlx_conve + rt_UTF8_to_wchar' + ../../src/libcurltool-d.a(unity_0.c.obj):C:/projects/curl/lib/curl_multibyte. + c:44: first defined here + ../../lib/libcurlu-d.a(unity_0.c.obj): In function `curlx_convert_wchar_to_UT + F8': + C:/projects/curl/lib/curl_multibyte.c:66: multiple definition of `curlx_conve + rt_wchar_to_UTF8' + ../../src/libcurltool-d.a(unity_0.c.obj):C:/projects/curl/lib/curl_multibyte. + c:66: first defined here + ../../lib/libcurlu-d.a(unity_0.c.obj): In function `curlx_win32_open': + C:/projects/curl/lib/curl_multibyte.c:92: multiple definition of `curlx_win32 + _open' + ../../src/libcurltool-d.a(unity_0.c.obj):C:/projects/curl/lib/curl_multibyte. + c:92: first defined here + ../../lib/libcurlu-d.a(unity_0.c.obj): In function `curlx_win32_fopen': + C:/projects/curl/lib/curl_multibyte.c:120: multiple definition of `curlx_win3 + 2_fopen' + ../../src/libcurltool-d.a(unity_0.c.obj):C:/projects/curl/lib/curl_multibyte. + c:120: first defined here + ../../lib/libcurlu-d.a(unity_0.c.obj): In function `curlx_win32_stat': + [...] + ``` + Ref: https://ci.appveyor.com/project/curlorg/curl/builds/48110107/job/nvlhpt9 + aa4ehny5q#L247 + + macOS errors: + ``` + [ 56%] Linking C executable unit1302 + duplicate symbol '_curlx_sotouz' in: + ../../lib/libcurlu.a(unity_0_c.c.o) + ../../src/libcurltool.a(unity_0_c.c.o) + duplicate symbol '_curlx_sitouz' in: + ../../lib/libcurlu.a(unity_0_c.c.o) + ../../src/libcurltool.a(unity_0_c.c.o) + duplicate symbol '_curlx_uztosz' in: + ../../lib/libcurlu.a(unity_0_c.c.o) + ../../src/libcurltool.a(unity_0_c.c.o) + [...] + ``` + with config: + ``` + -DCMAKE_UNITY_BUILD=ON \ + -DENABLE_DEBUG=ON -DBUILD_TESTING=ON -DCMAKE_C_FLAGS=-DDEBUGBUILD \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=OFF + ``` + + Closes #11926 + +- cmake: lib `CURL_STATICLIB` fixes (Windows) + + - always define `CURL_STATICLIB` when building libcurl for Windows. + + This disables `__declspec(dllexport)` for exported libcurl symbols. + In normal mode (hide symbols) these exported symbols are specified + via `libcurl.def`. When not hiding symbols, all symbols are exported + by default. + + Regression from 1199308dbc902c52be67fc805c72dd2582520d30 + + Fixes #11844 + + - fix to omit `libcurl.def` when not hiding private symbols. + + Regression from 2ebc74c36a19a1700af394c16855ce144d9878e3 + + - fix `ENABLED_DEBUG=ON` + shared curl tool Windows builds by also + omitting `libcurl.def` in this case, and exporting all symbols + instead. This ensures that a shared curl tool can access all debug + functions which are not normally exported from libcurl DLL. + + - delete `INTERFACE_COMPILE_DEFINITIONS "CURL_STATICLIB"` for "objects" + target. + + Follow-up to 2ebc74c36a19a1700af394c16855ce144d9878e3 + + - delete duplicate `BUILDING_LIBCURL` definitions. + + - fix `HIDES_CURL_PRIVATE_SYMBOLS` to not overwrite earlier build settings. + + Follow-up to 1199308dbc902c52be67fc805c72dd2582520d30 + + Closes #11914 + +Daniel Stenberg (25 Sep 2023) + +- RELEASE-NOTES: synced + +Dan Fandrich (25 Sep 2023) + +- tests: fix log directory path in IPFS tests + + Hard-coding the log directory name fails with parallel tests. + + Follow-up to 65b563a96 + + Ref: #8805 + +Daniel Stenberg (25 Sep 2023) + +- curl_multi_get_handles: get easy handles from a multi handle + + Closes #11750 + +Stefan Eissing (25 Sep 2023) + +- http: h1/h2 proxy unification + + - use shared code for setting up the CONNECT request + when tunneling, used in HTTP/1.x and HTTP/2 proxying + - eliminate use of Curl_buffer_send() and other manipulations + of `data->req` or `data->state.ulbuf` + + Closes #11808 + +Natanael Copa (25 Sep 2023) + +- lib: use wrapper for curl_mime_data fseek callback + + fseek uses long offset which does not match with curl_off_t. This leads + to undefined behavior when calling the callback and caused failure on + arm 32 bit. + + Use a wrapper to solve this and use fseeko which uses off_t instead of + long. + + Thanks to the nice people at Libera IRC #musl for helping finding this + out. + + Fixes #11882 + Fixes #11900 + Closes #11918 + +- configure: sort AC_CHECK_FUNCS + + No functional changes. + +Daniel Stenberg (25 Sep 2023) + +- warnless: remove unused functions + + Previously put there for use with the intel compiler + + Closes #11932 + +- GHA/linux: run singleuse to detect single-use global functions + + Use --unit for configure --enable-debug builds + + Closes #11932 + +- singleuse: add scan for use in other source codes + + This should reduce false-positive to almost zero. Checks for presence in + unit tests if --unit is specified, which is intended for debug builds + where unit testing is enabled. + + Closes #11932 + +- multi: remove Curl_multi_dump + + A debug-only function that is basically never used. Removed to ease the + use of the singleuse script to detect non-static functions not used + outside the file where it is defined. + + Closes #11931 + +Viktor Szakats (24 Sep 2023) + +- tests: fix compiler warnings + + Seen with llvm 17 on Windows x64. + + ``` + .../curl/tests/server/rtspd.c:136:13: warning: no previous extern declaration + for non-static variable 'logdir' [-Wmissing-variable-declarations] + 136 | const char *logdir = "log"; + | ^ + .../curl/tests/server/rtspd.c:136:7: note: declare 'static' if the variable i + s not intended to be used outside of this translation unit + 136 | const char *logdir = "log"; + | ^ + .../curl/tests/server/rtspd.c:137:6: warning: no previous extern declaration + for non-static variable 'loglockfile' [-Wmissing-variable-declarations] + 137 | char loglockfile[256]; + | ^ + .../curl/tests/server/rtspd.c:137:1: note: declare 'static' if the variable i + s not intended to be used outside of this translation unit + 137 | char loglockfile[256]; + | ^ + .../curl/tests/server/fake_ntlm.c:43:13: warning: no previous extern declarat + ion for non-static variable 'logdir' [-Wmissing-variable-declarations] + 43 | const char *logdir = "log"; + | ^ + .../curl/tests/server/fake_ntlm.c:43:7: note: declare 'static' if the variabl + e is not intended to be used outside of this translation unit + 43 | const char *logdir = "log"; + | ^ + .../curl/src/tool_doswin.c:350:8: warning: possible misuse of comma operator + here [-Wcomma] + 350 | ++d, ++s; + | ^ + .../curl/src/tool_doswin.c:350:5: note: cast expression to void to silence wa + rning + 350 | ++d, ++s; + | ^~~ + | (void)( ) + ``` + + ``` + .../curl/tests/libtest/lib540.c:146:27: warning: result of comparison 'long' + > 2147483647 is always false [-Wtautological-type-limit-compare] + 146 | int itimeout = (L > (long)INT_MAX) ? INT_MAX : (int)L; + | ~ ^ ~~~~~~~~~~~~~ + 1 warning generated. + + .../curl/tests/libtest/libntlmconnect.c:195:31: warning: result of comparison + 'long' > 2147483647 is always false [-Wtautological-type-limit-compare] + 195 | int itimeout = (timeout > (long)INT_MAX) ? INT_MAX : (int)timeo + ut; + | ~~~~~~~ ^ ~~~~~~~~~~~~~ + 1 warning generated. + + .../curl/tests/libtest/lib591.c:117:31: warning: result of comparison 'long' + > 2147483647 is always false [-Wtautological-type-limit-compare] + 117 | int itimeout = (timeout > (long)INT_MAX) ? INT_MAX : (int)timeo + ut; + | ~~~~~~~ ^ ~~~~~~~~~~~~~ + 1 warning generated. + .../curl/tests/libtest/lib597.c:99:31: warning: result of comparison 'long' > + 2147483647 is always false [-Wtautological-type-limit-compare] + 99 | int itimeout = (timeout > (long)INT_MAX) ? INT_MAX : (int)timeo + ut; + | ~~~~~~~ ^ ~~~~~~~~~~~~~ + 1 warning generated. + ``` + + Seen on macOS Intel: + ``` + .../curl/tests/server/sws.c:440:64: warning: field precision should have type + 'int', but argument has type 'size_t' (aka 'unsigned long') [-Wformat] + msnprintf(logbuf, sizeof(logbuf), "Got request: %s %.*s HTTP/%d.%d" + , + ~~^~ + 1 warning generated. + ``` + + Closes #11925 + +Jay Satiro (24 Sep 2023) + +- url: fix netrc info message + + - Fix netrc info message to use the generic ".netrc" filename if the + user did not specify a netrc location. + + - Update --netrc doc to add that recent versions of curl on Windows + prefer .netrc over _netrc. + + Before: + * Couldn't find host google.com in the (nil) file; using defaults + + After: + * Couldn't find host google.com in the .netrc file; using defaults + + Closes https://github.com/curl/curl/pull/11904 + +Dan Fandrich (23 Sep 2023) + +- wolfssh: do cleanup in Curl_ssh_cleanup + + Closes: #11921 + +Daniel Stenberg (24 Sep 2023) + +- tool_listhelp: regenerated + + Polished the --ipfs-gateway description + + Fixed the --trace-config description + + The script also fixed some other small mistakes + + Closes #11923 + +Viktor Szakats (23 Sep 2023) + +- Makefile.mk: always set `CURL_STATICLIB` for lib (Windows) + + Also fix to export all symbols in Windows debug builds, making + `-debug-dyn` builds work with `-DCURL_STATICLIB` set. + + Ref: https://github.com/curl/curl/pull/11914 (same for CMake) + + Closes #11924 + +Daniel Stenberg (23 Sep 2023) + +- quic: set ciphers/curves the same way regular TLS does + + for OpenSSL/BoringSSL + + Fixes #11796 + Reported-by: Karthikdasari0423 on github + Assisted-by: Jay Satiro + Closes #11836 + +- test457: verify --max-filesize with chunked encoding + +- lib: let the max filesize option stop too big transfers too + + Previously it would only stop them from getting started if the size is + known to be too big then. + + Update the libcurl and curl docs accordingly. + + Fixes #11810 + Reported-by: Elliot Killick + Assisted-by: Jay Satiro + Closes #11820 + +Viktor Szakats (23 Sep 2023) + +- mingw: delete support for legacy mingw.org toolchain + + Drop support for "old" / "legacy" / "classic" / "v1" / "mingw32" MinGW: + https://en.wikipedia.org/wiki/MinGW, https://osdn.net/projects/mingw/ + Its homepage used to be http://mingw.org/ [no HTTPS], and broken now. + It supported the x86 CPU only and used a old Windows API header and + implib set, often causing issues. It also misses most modern Windows + features, offering old versions of both binutils and gcc (no llvm/clang + support). It was last updated 2 years ago. + + curl now relies on toolchains based on the mingw-w64 project: + https://www.mingw-w64.org/ https://sourceforge.net/projects/mingw-w64/ + https://www.msys2.org/ https://github.com/msys2/msys2 + https://github.com/mstorsjo/llvm-mingw + (Also available via Linux and macOS package managers.) + + Closes #11625 + +Mark Gaiser (23 Sep 2023) + +- curl: add support for the IPFS protocols: + + - ipfs:// + - ipns:// + + This allows you tu use ipfs in curl like: + curl ipfs:// + and + curl ipns:// + + For more information consult the readme at: + https://curl.se/docs/ipfs.html + + Closes #8805 + +Daniel Stenberg (23 Sep 2023) + +- bufq: remove Curl_bufq_skip_and_shift (unused) + + Closes #11915 + +- scripts/singleuse.pl: add curl_global_trace + +Viktor Szakats (22 Sep 2023) + +- cmake: fix unity symbol collisions in h2 builds + + Regression from 331b89a319d0067fa1e6441719307cfef9c7960f + + Reviewed-by: Daniel Stenberg + Reviewed-by: Jay Satiro + Closes #11912 + +Daniel Stenberg (22 Sep 2023) + +- RELEASE-NOTES: synced + +Dan Fandrich (21 Sep 2023) + +- github/labeler: improve the match patterns + + This includes new rules for setting the appleOS and logging labels and + matches on some example files. Also, enable dot mode for wildcard + matches in the .github directory. + +Daniel Stenberg (21 Sep 2023) + +- upload-file.d: describe the file name slash/backslash handling + + Closes #11911 + +Jakub Jelen (21 Sep 2023) + +- libssh: cap SFTP packet size sent + + Due to libssh limitations + + Signed-off-by: Jakub Jelen + + Closes #11804 + +Daniel Stenberg (21 Sep 2023) + +- curl.h: mark CURLSSLBACKEND_NSS as deprecated since 8.3.0 + + Closes #11905 + +- mailmap: unify Michael Osipov under a single email + +Ted Lyngmo (21 Sep 2023) + +- docs: use CURLSSLBACKEND_NONE + + [ssl] use CURLSSLBACKEND_NONE instead of (curl_sslbackend)-1 in + documentation and examples. + + Signed-off-by: Ted Lyngmo + + Closes #11909 + +Dan Fandrich (21 Sep 2023) + +- github/labeler: give the sync-labels config item a default value + + This shouldn't be necessary and is likely a bug with this beta version + of the labeller. + + Also, fix the negative matches for the documentation label. + + Follow-up to dd12b452a + Closes #11907 + +- github/labeler: fix up more the labeler config format + + The new version didn't like the workaround we had for a bug in the + previous labeler version, and it should no longer be needed. + + Follow-up to dd12b452a + Closes #11906 + +- github/labeler: fix indenting to try to appease labeller + + Follow-up to dd12b452a + +Jay Satiro (21 Sep 2023) + +- libssh2: fix error message on failed pubkey-from-file + + - If libssh2_userauth_publickey_fromfile_ex returns -1 then show error + message "SSH public key authentication failed: Reason unknown (-1)". + + When libssh2_userauth_publickey_fromfile_ex returns -1 it does so as a + generic error and therefore doesn't set an error message. AFAICT that is + not documented behavior. + + Prior to this change libcurl retrieved the last set error message which + would be from a previous function failing. That resulted in misleading + auth failed error messages in verbose mode. + + Bug: https://github.com/curl/curl/issues/11837#issue-1891827355 + Reported-by: consulion@users.noreply.github.com + + Closes https://github.com/curl/curl/pull/11881 + +Stefan Eissing (21 Sep 2023) + +- pytest: exclude test_03_goaway in CI runs due to timing dependency + + Closes #11860 + +- lib: disambiguate Curl_client_write flag semantics + + - use CLIENTWRITE_BODY *only* when data is actually body data + - add CLIENTWRITE_INFO for meta data that is *not* a HEADER + - debug assertions that BODY/INFO/HEADER is not used mixed + - move `data->set.include_header` check into Curl_client_write + so protocol handlers no longer have to care + - add special in FTP for `data->set.include_header` for historic, + backward compatible reasons + - move unpausing of client writes from easy.c to sendf.c, so that + code is in one place and can forward flags correctly + + Closes #11885 + +Patrick Monnerat (21 Sep 2023) + +- tftpd: always use curl's own tftp.h + + Using the system's provided arpa/tftp.h and optimizing, GCC 12 detects + and reports a stringop-overread warning: + + tftpd.c: In function ‘write_behind.isra’: + tftpd.c:485:12: warning: ‘write’ reading between 1 and 2147483647 bytes f + rom a region of size 0 [-Wstringop-overread] + 485 | return write(test->ofile, writebuf, count); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + In file included from tftpd.c:71: + /usr/include/arpa/tftp.h:58:30: note: source object ‘tu_data’ of size 0 + 58 | char tu_data[0]; /* data or error stri + ng */ + | ^~~~~~~ + + This occurs because writebuf points to this field and the latter + cannot be considered as being of dynamic length because it is not + the last field in the structure. Thus it is bound to its declared + size. + + This commit always uses curl's own version of tftp.h where the + target field is last in its structure, effectively avoiding the + warning. + + As HAVE_ARPA_TFTP_H is not used anymore, cmake/configure checks for + arpa/tftp.h are removed. + + Closes #11897 + +Dan Fandrich (20 Sep 2023) + +- test1474: make precheck more robust on non-Solaris systems + + If uname -r returns something odd, perl could return an error code and + the test would be erroneously skipped. The qx// syntax avoid this. + + Followup to 08f9b2148 + +- github/labeler: switch to the 5 beta version + + This version adds an important feature that will allow more PRs to be + labelled. Rather than being limited to labeling PRs with files that + match a single glob, it can now label them if multiple changed files + match any one of a number of globs. + +Daniel Stenberg (20 Sep 2023) + +- lib: enable hmac for digest as well + + Previously a build that disabled NTLM and aws-sigv4 would fail to build + since the hmac was disabled, but it is also needed for digest auth. + + Follow-up to e92edfbef64448ef + + Fixes #11890 + Reported-by: Aleksander Mazur + Closes #11896 + +- idn: if idn2_check_version returns NULL, return error + + ... this avoids a NULL dereference for this unusual case. + + Reported-by: s0urc3_ on hackerone + Closes #11898 + +- http: fix CURL_DISABLE_BEARER_AUTH breakage + + When bearer auth was disabled, the if/else logic got wrong and caused + problems. + + Follow-up to e92edfbef64448ef461 + Fixes #11892 + Reported-by: Aleksander Mazur + Closes #11895 + +Michael Osipov (20 Sep 2023) + +- wolfssl: allow capath with CURLOPT_CAINFO_BLOB + + Remain consistent with OpenSSL. While CAfile is nulled as documented + with CURLOPT_CAINFO_BLOB, CApath remains intact. + + Closes #11886 + +- wolfssl: use ssl_cafile/ssl_capath variables consistent with openssl.c + + Closes #11886 + +Dan Fandrich (19 Sep 2023) + +- test1474: disable test on NetBSD, OpenBSD and Solaris 10 + + These kernels only send a fraction of the requested amount of the first + large block, invalidating the assumptions of the test and causing it to + fail. + + Assisted-by: Christian Weisgerber + Ref: https://curl.se/mail/lib-2023-09/0021.html + Closes #11888 + +Ryan Schmidt (20 Sep 2023) + +- cmake, configure: also link with CoreServices + + When linking with CoreFoundation, also link with CoreServices which is + apparently required to avoid an NSInvalidArgumentException in software + linking with libcurl on macOS Sonoma 14 and later. + + Fixes #11893 + Closes #11894 + +Marc Hoersken (19 Sep 2023) + +- CI/azure: remove pip, wheel, cryptography, pyopenssl and impacket + + These dependencies are now already included in the Docker image. + + Ref: https://github.com/mback2k/curl-docker-winbuildenv/commit/2607a31bcab544 + b41d15606e97f38cf312c1ce56 + + Closes #11889 + +Daniel Stenberg (19 Sep 2023) + +- wolfssl: if CURLOPT_CAINFO_BLOB is set, ignore the CA files + + Ref: #11883 + Reported-by: Michael Osipov + Closes #11884 + +- RELEASE-NOTES: synced + +- test3103: CURLOPT_COOKIELIST test + +- cookie: set ->running in cookie_init even if data is NULL + + This is a regression introduced in b1b326ec500 (shipped in curl 8.1.0) + + Test 3103 verifies. + + Fixes #11875 + Reported-by: wangp on github + Closes #11876 + +- test498: total header size for all redirects is larger than accepted + +- http: use per-request counter to check too large headers + + Not the counter that accumulates all headers over all redirects. + + Follow-up to 3ee79c1674fd6 + + Do a second check for 20 times the limit for the accumulated size for + all headers. + + Fixes #11871 + Reported-by: Joshix-1 on github + Closes #11872 + +Jay Satiro (18 Sep 2023) + +- THANKS: add Eric Murphy + + He reported #11850 (quiche build error) but I forgot to add a + 'reported-by' entry in the fix 267e14f1. + +Daniel Stenberg (18 Sep 2023) + +- h2-proxy: remove left-over mistake in drain_tunnel() + + Left-over from 331b89a319 + + Reported-by: å—å®«é›ªçŠ + + Closes https://github.com/curl/curl/pull/11877 + +vvb2060 (18 Sep 2023) + +- lib: failf/infof compiler warnings + + Closes #11874 + +Daniel Stenberg (17 Sep 2023) + +- rand: fix 'alnum': array is too small to include a terminating null character + + It was that small on purpose, but this change now adds the null byte to + avoid the error. + + Follow-up to 3aa3cc9b052353b1 + + Reported-by: Dan Fandrich + Ref: #11838 + Closes #11870 + +Mathias Fuchs (16 Sep 2023) + +- cmake: fix the help text to the static build option in CMakeLists.txt + + Closes #11843 + +John Haugabook (16 Sep 2023) + +- MANUAL.md: change domain to example.com + + Closes #11866 + +Daniel Stenberg (16 Sep 2023) + +- doh: inherit DEBUGFUNCTION/DATA + + When creating new transfers for doing DoH, they now inherit the debug + settings from the initiating transfer, so that the application can + redirect and handle the verbose output correctly even for the DoH + transfers. + + Reported-by: calvin2021y on github + Fixes #11864 + Closes #11869 + +Dan Fandrich (16 Sep 2023) + +- http_aws_sigv4: fix sorting with empty parts + + When comparing with an empty part, the non-empty one is always + considered greater-than. Previously, the two would be considered equal + which would randomly place empty parts amongst non-empty ones. This + showed as a test 439 failure on Solaris as it uses a different + implementation of qsort() that compares parts differently. + + Fixes #11855 + Closes #11868 + +- CI: ignore the "flaky" and "timing-dependent" test results + + CI builds will now run these tests, but will ignore the results if they + fail. The relevant tests are ones that are sensitive to timing or + have edge conditions that make them more likely to fail on CI servers, + which are often heavily overloaded and slow. + + This change only adds two additional tests to be ignored, since the + others already had the flaky keyword. + + Closes #11865 + +- runtests: eliminate a warning on old perl versions + + The warning "Use of implicit split to @_ is deprecated" showed between + perl versions about 5.8 through 5.11. + +- tests: log the test result code after each libtest + + This makes it easier to determine the test status. Also, capitalize + FAILURE and ABORT messages in log lines to make them easier to spot. + +Harry Sintonen (16 Sep 2023) + +- misc: better random strings + + Generate alphanumerical random strings. + + Prior this change curl used to create random hex strings. This was + mostly okay, but having alphanumerical random strings is better: The + strings have more entropy in the same space. + + The MIME multipart boundary used to be mere 64-bits of randomness due + to being 16 hex chars. With these changes the boundary is 22 + alphanumerical chars, or little over 130 bits of randomness. + + Closes #11838 + +Daniel Stenberg (15 Sep 2023) + +- cookie: reduce variable scope, add const + +- cookie: do not store the expire or max-age strings + + Convert it to an expire time at once and save memory. + + Closes #11862 + +- cookie: remove unnecessary struct fields + + Plus: reduce the hash table size from 256 to 63. It seems unlikely to + make much of a speed difference for most use cases but saves 1.5KB of + data per instance. + + Closes #11862 + +- RELEASE-NOTES: synced + + Bumped to 8.4.0, the next presumed version + +Dan Fandrich (14 Sep 2023) + +- test2600: remove special case handling for USE_ALARM_TIMEOUT + + This was originally added to handle platforms that supported only 1 + second granularity in connect timeouts, but after some recent changes + the test currently permafails on several Windows platforms. + + The need for this special-case was removed in commit 8627416, which + increased the connect timeout in all cases to well above 1 second. + + Fixes #11767 + Closes #11849 + +Daniel Stenberg (14 Sep 2023) + +- SECURITY-PROCESS.md. call it vulnerability disclosure policy + + SECURITY-PROCESS.md -> VULN-DISCLOSURE-POLICY.md + + This a name commonly used for a document like this. This name helps + users find it. + + Closes #11852 + +Junho Choi (14 Sep 2023) + +- quiche: fix build error with --with-ca-fallback + + - Fix build error when curl is built with --with-quiche + and --with-ca-fallback. + + - Add --with-ca-fallback to the quiche CI job. + + Fixes https://github.com/curl/curl/issues/11850 + Closes https://github.com/curl/curl/pull/11847 + +Jay Satiro (14 Sep 2023) + +- escape: replace Curl_isunreserved with ISUNRESERVED + + - Use the ALLCAPS version of the macro so that it is clear a macro is + being called that evaluates the variable multiple times. + + - Also capitalize macro isurlpuntcs => ISURLPUNTCS since it evaluates + a variable multiple times. + + This is a follow-up to 291d225a which changed Curl_isunreserved into an + alias macro for ISUNRESERVED. The problem is the former is not easily + identified as a macro by the caller, which could lead to a bug. + + For example, ISUNRESERVED(*foo++) is easily identifiable as wrong but + Curl_isunreserved(*foo++) is not even though they both are the same. + + Closes https://github.com/curl/curl/pull/11846 + +Dan Fandrich (13 Sep 2023) + +- tests: increase the default server logs lock timeout + + This timeout is used to wait for the server to finish writing its logs + before checking them against the expected values. An overloaded machine + could take more than the two seconds previously allocated, so increase + the timeout to 5 seconds. + + Ref: #11328 + Closes #11834 + +- tests: increase TEST_HANG_TIMEOUT in two tests + + These tests had a 5 second timeout compared to 60 seconds for all other + tests. Make these consistent with the others for more reliability on + heavily-loaded machines. + + Ref: #11328 + +- test1056: disable on Windows + + This test relies on the IPv6 scope field being ignored when connecting to + ipv6-localhost (i.e. [::1%259999] is treated as [::1]). Maybe this is a bit + dodgy, but it works on all our test platforms except Windows. This + test was disabled manually on all Windows CI builds already, so instead + add an incompatible feature and precheck so it's skipped on Windows + everywhere automatically. + +- test587: add a slight delay after test + + This test is designed to connect to the server, then immediately send a + few bytes and disconnect. In some situations, such as on a loaded + server, this doesn't give the server enough time to write its lock file + before its existence is checked. The test harness then fails to find the + server's input log file (because it hasn't been written yet) and fails + the test. By adding a short delay after the test, the HTTP server has + enough time to write its lock file which gives itself more time to write + its remaining files. + + Ref: #11328 + +- tests: stop overriding the lock timeout + + These tests reduce the server lock wait timeout which can increase + flakiness on loaded machines. Since this is merely an optimization, + eliminate them in favour of reliability. + + Ref: #11328 + +- tests: add some --expect100-timeout to reduce timing dependencies + + These tests can fail when the test machine is so slow that the test HTTP + server didn't get a chance to complete before the client's one second + 100-continue timeout triggered. Increase that 1 second to 999 seconds so + this situation doesn't happen. + + Ref: #11328 + +- test661: return from test early in case of curl error + +- tests: add the timing-dependent keyword on several tests + + These are ones likely to fail on heavily-loaded machines that alter the + normal test timing. Most of these tests already had the flaky keyword + since this condition makes them more likely to fail on CI. + +- test1592: greatly increase the maximum test timeout + + It was too short to be reliable on heavily loaded CI machines, and + as a fail-safe only, it didn't need to be short. + + Ref: #11328 + +- test: minor test cleanups + + Remove an obsolete block of code in tests 2032 & 576. + Add a comment in test 1474. + +- tests: quadruple the %FTPTIME2 and %FTPTIME3 timeouts + + This gives more of a margin for error when running on overloaded CI + servers. + + Ref: #11328 + +- tests: improve SLOWDOWN test reliability by reducing sent data + + These tests are run in SLOWDOWN mode which adds a 10 msec delay after + each character output, which means it takes at least 1.6 seconds (and + 320 kernel calls) just to get through the long welcome banner. On an + overloaded system, this can end up taking much more than 1.6 seconds, + and even more than the 7 or 16 second curl timeout that the tests rely + on, causing them to fail. Reducing the size of the welcome banner drops + the total number of characters sent before the transfer starts by more + than half, which reduces the opportunity for test-breaking slowdowns by + the same amount. + + Ref: #11328 + +- test650: fix an end tag typo + +Jay Satiro (13 Sep 2023) + +- tool_cb_wrt: fix debug assertion + + - Fix off-by-one out-of-bounds array index in Windows debug assertion. + + Bug: https://github.com/curl/curl/commit/af3f4e41#r127212213 + Reported-by: Gisle Vanem + +Daniel Stenberg (13 Sep 2023) + +- ctype: add ISUNRESERVED() + + ... and make Curl_isunreserved() use that macro instead of providing a + separate funtion for the purpose. + + Closes #11840 + +Version 8.3.0 (13 Sep 2023) + +Daniel Stenberg (13 Sep 2023) + +- RELEASE-NOTES: syn ced + + curl 8.3.0 release + +- THANKS: contributors from 8.3.0 + +Thorsten Klein (12 Sep 2023) + +- cmake: set SIZEOF_LONG_LONG in curl_config.h + + in order to support 32bit builds regarding wolfssl CTC_SETTINGS + + Closes #11839 + +Jay Satiro (12 Sep 2023) + +- curl_ngtcp2: fix error message + +- http_aws_sigv4: handle no-value user header entries + + - Handle user headers in format 'name:' and 'name;' with no value. + + The former is used when the user wants to remove an internal libcurl + header and the latter is used when the user actually wants to send a + no-value header in the format 'name:' (note the semi-colon is converted + by libcurl to a colon). + + Prior to this change the AWS header import code did not special case + either of those and the generated AWS SignedHeaders would be incorrect. + + Reported-by: apparentorder@users.noreply.github.com + + Ref: https://curl.se/docs/manpage.html#-H + + Fixes https://github.com/curl/curl/issues/11664 + Closes https://github.com/curl/curl/pull/11668 + +Dan Fandrich (11 Sep 2023) + +- CI: run pytest with the -v option + + This lists of the test cases being run so it can be tracked over time. + + Closes #11824 + +Daniel Stenberg (11 Sep 2023) + +- HTTP3: the msquic backend is not functional + + I ask that we do not submit bugs for this backend just yet as we know it + does not fully work. + + Closes #11831 + Closes #11819 + +- aws_sigv4: the query canon code miscounted URL encoded input + + Added some extra ampersands to test 439 to verify "blank" query parts + + Follow-up to fc76a24c53b08cdf + + Closes #11829 + +vvb2060 (11 Sep 2023) + +- quic: don't set SNI if hostname is an IP address + + We already do this for TLS connections. + + RFC 6066 says: Literal IPv4 and IPv6 addresses are not permitted in + "HostName". + + Ref: https://www.rfc-editor.org/rfc/rfc6066#section-3 + + Fixes https://github.com/curl/curl/issues/11827 + Closes https://github.com/curl/curl/pull/11828 + +Daniel Stenberg (10 Sep 2023) + +- RELEASE-NOTES: synced diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/COPYING.txt b/windows/libs/curl-8.7.1_7-win64-mingw/COPYING.txt new file mode 100644 index 00000000..d9e7e0be --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/COPYING.txt @@ -0,0 +1,22 @@ +COPYRIGHT AND PERMISSION NOTICE + +Copyright (c) 1996 - 2024, Daniel Stenberg, , and many +contributors, see the THANKS file. + +All rights reserved. + +Permission to use, copy, modify, and distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright +notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/README.txt b/windows/libs/curl-8.7.1_7-win64-mingw/README.txt new file mode 100644 index 00000000..f5efbd70 --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/README.txt @@ -0,0 +1,55 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +README + + Curl is a command line tool for transferring data specified with URL + syntax. Find out how to use curl by reading the curl.1 man page or the + MANUAL document. Find out how to install Curl by reading the INSTALL + document. + + libcurl is the library curl is using to do its job. It is readily + available to be used by your software. Read the libcurl.3 man page to + learn how. + + You find answers to the most frequent questions we get in the FAQ document. + + Study the COPYING file for distribution terms. + + Those documents and more can be found in the docs/ directory. + +CONTACT + + If you have problems, questions, ideas or suggestions, please contact us + by posting to a suitable mailing list. See https://curl.se/mail/ + + All contributors to the project are listed in the THANKS document. + +WEBSITE + + Visit the curl website for the latest news and downloads: + + https://curl.se/ + +GIT + + To download the latest source code off the GIT server, do this: + + git clone https://github.com/curl/curl.git + + (you will get a directory named curl created, filled with the source code) + +SECURITY PROBLEMS + + Report suspected security problems via our HackerOne page and not in public. + + https://hackerone.com/curl + +NOTICE + + Curl contains pieces of source code that is Copyright (c) 1998, 1999 + Kungliga Tekniska Högskolan. This notice is included here to comply with the + distribution terms. diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/RELEASE-NOTES.txt b/windows/libs/curl-8.7.1_7-win64-mingw/RELEASE-NOTES.txt new file mode 100644 index 00000000..620578ab --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/RELEASE-NOTES.txt @@ -0,0 +1,379 @@ +curl and libcurl 8.7.0 + + Public curl releases: 255 + Command line options: 258 + curl_easy_setopt() options: 304 + Public functions in libcurl: 93 + Contributors: 3134 + +This release includes the following changes: + + o configure: add --disable-docs flag [16] + o CURLINFO_USED_PROXY: return bool whether the proxy was used [24] + o digest: support SHA-512/256 [118] + o DoH: add trace configuration [61] + o write-out: add '%{proxy_used}' [24] + +This release includes the following bugfixes: + + o ALTSVC.md: correct a typo [14] + o asyn-ares: fix data race warning [88] + o asyn-thread: use wakeup_close to close the read descriptor [1] + o badwords: use hostname, not host name [46] + o BINDINGS: add mcurl, the python binding [67] + o bufq: writing into a softlimit queue cannot be partial [49] + o c-hyper: add header collection writer in hyper builds [70] + o cd2nroff: gen: make `\>` in input to render as plain '>' in output + o cd2nroff: remove backticks from titles + o checksrc.pl: fix handling .checksrc with CRLF [43] + o cmake: add USE_OPENSSL_QUIC support [21] + o cmake: add warning for using TLS libraries without 1.3 support [25] + o cmake: enable `ENABLE_CURL_MANUAL` by default [112] + o cmake: fix `CURL_WINDOWS_SSPI=ON` with Schannel disabled [117] + o cmake: fix function description in comment [47] + o cmake: fix install for older CMake versions [53] + o cmake: fix libcurl.pc and curl-config library specifications [115] + o cmdline-docs/Makefile: avoid using a fixed temp file name [5] + o cmdline-docs: quote and angle bracket cleanup [45] + o cmdline-opts/_EXITCODES: sync with libcurl-errors [80] + o cmdline-opts/_VARIABLES.md: improve the description [105] + o cmdline-opts/_VERSION: provide %VERSION correctly [87] + o cmdline-opts: shorter help texts [148] + o configure: add pkg-config support to rustls detection [151] + o configure: add warning for using TLS libraries without 1.3 support [26] + o configure: build & install shell completions when enabled [85] + o configure: do not link with nghttp3 unless necessary [7] + o configure: Don't build shell completions when disabled [68] + o configure: Don't make shell completions without perl [83] + o configure: find libpsl with pkg-config [79] + o connect.c: fix typo [17] + o CONTRIBUTE: update the section on documentation format [96] + o cookie.md: provide an example sending a fixed cookie [13] + o cookie: if psl fails, reject the cookie [107] + o curl: exit on config file parser errors [40] + o curl: make --libcurl output better CURLOPT_*SSLVERSION [127] + o curl: when allocating variables, add the name into the struct [37] + o curl_setup.h: add curl_uint64_t internal type + o curldown: fix email address in Copyright [89] + o CURLMOPT_MAX*: mention what happens if changed mid-transfer [154] + o CURLOPT_INTERFACE.md: remove spurious amp, add see-also [137] + o CURLOPT_POSTQUOTE.md: fix typo [36] + o CURLOPT_SSL_CTX_FUNCTION.md: no promises of lifetime after return [104] + o CURLOPT_WRITEFUNCTION.md: typo fix [41] + o digest: add check for hashing error [111] + o dist: make sure the http tests are in the tarball [29] + o DISTROS: add document with distro pointers [144] + o docs/libcurl: add TLS backend info for all TLS options [155] + o docs/libcurl: generate PROTOCOLS from meta-data [153] + o docs: add missing slashes to SChannel client certificate documentation [11] + o docs: add necessary setup for nghttp3 [51] + o docs: ascii version of manpage without nroff [121] + o docs: dist curl*.1 and install without perl [64] + o docs: make curldown do angle brackets like markdown [54] + o docs: make each libcurl man specify protocol(s) [157] + o docs: make sure curl.1 is included in dist tarballs [35] + o docs: update minimal binary size in INSTALL.md + o docs: use present tense [103] + o examples: use present tense in comments [97] + o file: use xfer buf for file:// transfers [23] + o fopen: fix narrowing conversion warning on 32-bit Android [100] + o form-string.md: correct the example [4] + o ftp: do lineend conversions in client writer [32] + o ftp: fix socket wait activity in ftp_domore_getsock [28] + o ftp: tracing improvements [33] + o ftp: treat a 226 arriving before data as a signal to read data [19] + o gen.pl: make the "manpageification" faster [95] + o gen: make `\>` in input to render as plain '>' in output [78] + o getparam: make --ftp-ssl work again [90] + o GHA/linux: add sysctl trick to work-around GitHub runner issue [129] + o GIT-INFO: convert to markdown [114] + o GOVERNANCE: document the core team [133] + o header.md: remove backslash, make nicer markdown [48] + o HTTP/2: write response directly [12] + o http2, http3: return CURLE_PARTIAL_FILE when bytes were received [160] + o http2: fix push discard [124] + o http2: memory errors in the push callbacks are fatal [132] + o http2: minor tweaks to optimize two struct sizes [130] + o http2: push headers better cleanup [113] + o http2: remove the third (unused) argument from http2_data_done() [159] + o HTTP3.md: adjust the OpenSSL QUIC install instructions [34] + o http: better error message for HTTP/1.x response without status line [86] + o http: improve response header handling, save cpu cycles [138] + o http: move headers collecting to writer [71] + o http: remove stale comment about rewindbeforesend [136] + o http: separate response parsing from response action [158] + o http_chunks: fix the accounting of consumed bytes [22] + o http_chunks: remove unused 'endptr' variable [58] + o https-proxy: use IP address and cert with ip in alt names [50] + o hyper: implement unpausing via client reader [98] + o ipv6.md: mention IPv4 mapped addresses [147] + o KNOWN_BUGS: POP3 issue when reading small chunks [134] + o lib1598: fix `CURLOPT_POSTFIELDSIZE` usage [128] + o lib582: remove code causing warning that is never run [38] + o lib: add `void *ctx` to reader/writer instances [122] + o lib: convert Curl_get_line to use dynbuf [42] + o lib: Curl_read/Curl_write clarifications [101] + o lib: enhance client reader resume + rewind [92] + o lib: initialize output pointers to NULL before calling strto[ff,l,ul] [63] + o lib: keep conn IP information together [109] + o lib: move 'done' parameter to SingleRequests [142] + o lib: remove curl_mimepart object when CURL_DISABLE_MIME [72] + o libcurl-docs: cleanups + o libcurl-security.md: Active FTP passes on the local IP address [6] + o libssh/libssh2: return error on too big range [75] + o MANUAL.md: fix typo [66] + o mbedtls: fix building when MBEDTLS_X509_REMOVE_INFO flag is defined [27] + o mbedtls: fix pytest for newer versions [146] + o mbedtls: properly cleanup the thread-shared entropy [140] + o mbedtls: use mbedtls_ssl_conf_{min|max}_tls_version [59] + o md4: include strdup.h for the memdup proto [10] + o mime: add client reader [126] + o misc: fix typos in docs and lib [84] + o mkhelp: simplify the generated hugehelp program [120] + o mprintf: fix format prefix I32/I64 for windows compilers [77] + o multi: add xfer_buf to multi handle [30] + o multi: fix multi_sock handling of select_bits [81] + o multi: make add_handle free any multi_easy [102] + o ngtcp2: no recvbuf for stream [108] + o ntml_wb: fix buffer type typo [2] + o OpenSSL QUIC: adapt to v3.3.x [65] + o openssl-quic: check on Windows that socket conv to int is possible [8] + o openssl-quic: fix BIO leak and Windows warning [93] + o openssl-quic: fix unity build, casing, indentation [94] + o OS400: avoid using awk in the build scripts [20] + o paramhlp: fix CRLF-stripping files with "-d @file" [116] + o proxy1.0.md: fix example [15] + o pytest: adapt to API change [106] + o request: clarify message when request has been sent off [143] + o rustls: make curl compile with 0.12.0 [73] + o schannel: fix hang on unexpected server close [57] + o scripts: fix cijobs.pl for Azure and GHA + o sendf: ignore response body to HEAD [18] + o setopt: fix check for CURLOPT_PROXY_TLSAUTH_TYPE value [76] + o setopt: fix disabling all protocols [99] + o sha512_256: add support for GnuTLS and OpenSSL [110] + o smtp: fix STARTTLS [91] + o SPONSORS: describe the basics [131] + o strtoofft: fix the overflow check [74] + o test 1541: verify getinfo values on first header callback [149] + o test1165: improve pattern matching [60] + o tests: support setting/using blank content env variables + o TIMER_STARTTRANSFER: set the same for everyone [82] + o TLS: start shutdown only when peer did not already close [150] + o TODO: update 13.11 with more information [152] + o tool_cb_hdr: only parse etag + content-disposition for 2xx [9] + o tool_getparam: accept a blank -w "" [139] + o tool_getparam: handle non-existing (out of range) short-options [141] + o tool_operate: change precedence of server Retry-After time [44] + o tool_operate: do not set CURLOPT_QUICK_EXIT in debug builds [3] + o trace-config.md: remove the mutexed options list [119] + o transfer.c: break receive loop in speed limited transfers [125] + o transfer: improve Windows SO_SNDBUF update limit [56] + o urldata: move authneg bit from conn to Curl_easy [69] + o version: allow building with ancient libpsl [52] + o vquic-tls: fix the error code returned for bad CA file [135] + o vtls: fix tls proxy peer verification [55] + o vtls: revert "receive max buffer" + add test case [39] + o VULN-DISCLOSURE-POLICY.md: update detail about CVE requests [123] + o websocket: fix curl_ws_recv() [62] + o wolfSSL: do not call the stub function wolfSSL_BIO_set_init() [145] + o write-out.md: clarify error handling details [31] + +This release includes the following known bugs: + + o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html) + +Planned upcoming removals include: + + o support for space-separated NOPROXY patterns + + See https://curl.se/dev/deprecate.html for details + +This release would not have looked like this without help, code, reports and +advice from friends like these: + + 5533asdg on github, Alan Coopersmith, Andreas Kiefer, Andrew Kaster, + Andy Fiddaman, Arjan van de Ven, av223119 on github, awesomekosm on github, + Boris Verkhovskiy, Brett Buddin, Brian Clemens, chensong1211 on github, + Chris Webb, chrysos349 on github, Dan Fandrich, Daniel Gustafsson, + Daniel Stenberg, Daniel Szmulewicz, Dan McDonald, DasKutti on github, + dependabot[bot], Dexter Gerig, dfdity on github, Dirk Hünniger, + Dmitry Karpov, Dmitry Tretyakov, edmcln on github, Erik Schnetter, + Evgeny Grin (Karlson2k), Fabian Keil, Fabian Vogt, Fabrice Fontaine, + Faraz Fallahi, Gaelan Steele, Geeknik Labs, Gisle Vanem, graywolf on github, + Harry Sintonen, HsiehYuho on github, Jan Macku, Jiawen Geng, Jiří Bok, + Joel Depooter, John Marshall, Jonathan Perkin, Jon Rumsey, Jordan Brown, + Josh Soref, Karthikdasari0423, Karthikdasari0423 on github, Kevin Daudt, + Konstantin Vlasov, kpcyrd, Lars Kellogg-Stedman, LeeRiva, Louis Solofrizzo, + Lukáš Zaoral, Marcel Raad, Marcus Müller, Matt Jolly, Michael Forney, + Michael Kaufmann, MichaÅ‚ Antoniak, MichaÅ‚ Górny, Mohammadreza Hendiani, + Nikita Taranov, Outvi V, Patrick Monnerat, PaweÅ‚ Witas, PÄ“teris Caune, + Peter Krefting, RainRat, Ramiro Garcia, Ray Satiro, Richard Levitte, + Robert Moreton, Ross Burton, Rudi Heitbaum, Ryan Carsten Schmidt, + Scott Mutter, Scott Talbert, Sean Molenaar, Sebastian Neubauer, + Sergey Bronnikov, Simon K, Stefan Eissing, Tal Regev, Thomas Pyle, + Till Wegmüller, Viktor Szakats, vulnerabilityspotter on hackerone, + Winni Neessen + (92 contributors) + +References to bug reports and discussions on issues: + + [1] = https://curl.se/bug/?i=12836 + [2] = https://curl.se/bug/?i=12825 + [3] = https://curl.se/bug/?i=12834 + [4] = https://curl.se/bug/?i=12822 + [5] = https://curl.se/bug/?i=12829 + [6] = https://curl.se/bug/?i=12867 + [7] = https://curl.se/bug/?i=12833 + [8] = https://curl.se/bug/?i=12861 + [9] = https://curl.se/bug/?i=12866 + [10] = https://curl.se/bug/?i=12849 + [11] = https://curl.se/bug/?i=12854 + [12] = https://curl.se/bug/?i=12828 + [13] = https://curl.se/bug/?i=12868 + [14] = https://curl.se/bug/?i=12852 + [15] = https://curl.se/bug/?i=12856 + [16] = https://curl.se/bug/?i=12832 + [17] = https://curl.se/bug/?i=12858 + [18] = https://curl.se/mail/lib-2024-02/0000.html + [19] = https://curl.se/bug/?i=12823 + [20] = https://curl.se/bug/?i=12826 + [21] = https://curl.se/bug/?i=13034 + [22] = https://curl.se/bug/?i=12937 + [23] = https://curl.se/bug/?i=12750 + [24] = https://curl.se/bug/?i=12719 + [25] = https://curl.se/bug/?i=12900 + [26] = https://curl.se/bug/?i=12900 + [27] = https://curl.se/bug/?i=12904 + [28] = https://curl.se/bug/?i=12901 + [29] = https://curl.se/bug/?i=12914 + [30] = https://curl.se/bug/?i=12805 + [31] = https://curl.se/bug/?i=12909 + [32] = https://curl.se/bug/?i=12878 + [33] = https://curl.se/bug/?i=12902 + [34] = https://curl.se/bug/?i=12896 + [35] = https://curl.se/bug/?i=12892 + [36] = https://curl.se/bug/?i=12926 + [37] = https://curl.se/bug/?i=12891 + [38] = https://curl.se/bug/?i=12890 + [39] = https://curl.se/bug/?i=12885 + [40] = https://curl.se/mail/archive-2024-02/0008.html + [41] = https://curl.se/bug/?i=12889 + [42] = https://curl.se/bug/?i=12846 + [43] = https://curl.se/bug/?i=12924 + [44] = https://curl.se/mail/archive-2024-01/0022.html + [45] = https://curl.se/bug/?i=12884 + [46] = https://curl.se/bug/?i=12888 + [47] = https://curl.se/bug/?i=12879 + [48] = https://curl.se/bug/?i=12877 + [49] = https://curl.se/bug/?i=13020 + [50] = https://curl.se/bug/?i=12838 + [51] = https://curl.se/bug/?i=12859 + [52] = https://curl.se/mail/archive-2024-02/0004.html + [53] = https://curl.se/bug/?i=12920 + [54] = https://curl.se/bug/?i=12869 + [55] = https://curl.se/bug/?i=12831 + [56] = https://curl.se/bug/?i=12911 + [57] = https://curl.se/bug/?i=12894 + [58] = https://curl.se/bug/?i=12996 + [59] = https://curl.se/bug/?i=12905 + [60] = https://curl.se/bug/?i=12903 + [61] = https://curl.se/bug/?i=12411 + [62] = https://curl.se/bug/?i=12945 + [63] = https://curl.se/bug/?i=12995 + [64] = https://curl.se/bug/?i=12921 + [65] = https://curl.se/bug/?i=12933 + [66] = https://curl.se/bug/?i=12965 + [67] = https://curl.se/bug/?i=12962 + [68] = https://curl.se/bug/?i=13027 + [69] = https://curl.se/bug/?i=12949 + [70] = https://curl.se/bug/?i=12880 + [71] = https://curl.se/bug/?i=12880 + [72] = https://curl.se/bug/?i=12948 + [73] = https://curl.se/bug/?i=12989 + [74] = https://curl.se/bug/?i=12990 + [75] = https://curl.se/bug/?i=12983 + [76] = https://curl.se/bug/?i=12981 + [77] = https://curl.se/bug/?i=12944 + [78] = https://curl.se/bug/?i=12977 + [79] = https://curl.se/bug/?i=12947 + [80] = https://curl.se/bug/?i=13015 + [81] = https://curl.se/bug/?i=12971 + [82] = https://curl.se/bug/?i=13052 + [83] = https://curl.se/bug/?i=13022 + [84] = https://curl.se/bug/?i=13019 + [85] = https://curl.se/bug/?i=12906 + [86] = https://curl.se/bug/?i=13045 + [87] = https://curl.se/bug/?i=13008 + [88] = https://curl.se/bug/?i=13065 + [89] = https://curl.se/bug/?i=12997 + [90] = https://curl.se/bug/?i=13006 + [91] = https://curl.se/bug/?i=13048 + [92] = https://curl.se/bug/?i=13026 + [93] = https://curl.se/bug/?i=13043 + [94] = https://curl.se/bug/?i=13044 + [95] = https://curl.se/bug/?i=13041 + [96] = https://curl.se/bug/?i=13046 + [97] = https://curl.se/bug/?i=13003 + [98] = https://curl.se/bug/?i=13075 + [99] = https://curl.se/bug/?i=13004 + [100] = https://curl.se/bug/?i=12998 + [101] = https://curl.se/bug/?i=12964 + [102] = https://curl.se/bug/?i=12992 + [103] = https://curl.se/bug/?i=13001 + [104] = https://curl.se/bug/?i=12999 + [105] = https://curl.se/bug/?i=13040 + [106] = https://curl.se/bug/?i=13037 + [107] = https://curl.se/bug/?i=13033 + [108] = https://curl.se/bug/?i=13073 + [109] = https://curl.se/bug/?i=13084 + [110] = https://curl.se/bug/?i=13070 + [111] = https://curl.se/bug/?i=13072 + [112] = https://curl.se/bug/?i=13028 + [113] = https://curl.se/bug/?i=13054 + [114] = https://curl.se/bug/?i=13074 + [115] = https://curl.se/bug/?i=6169 + [116] = https://curl.se/bug/?i=13063 + [117] = https://curl.se/bug/?i=13061 + [118] = https://curl.se/bug/?i=12897 + [119] = https://curl.se/bug/?i=13031 + [120] = https://curl.se/bug/?i=13047 + [121] = https://curl.se/bug/?i=13047 + [122] = https://curl.se/bug/?i=13035 + [123] = https://curl.se/bug/?i=13088 + [124] = https://curl.se/bug/?i=13055 + [125] = https://curl.se/mail/lib-2024-03/0001.html + [126] = https://curl.se/bug/?i=13039 + [127] = https://curl.se/bug/?i=13127 + [128] = https://curl.se/bug/?i=13085 + [129] = https://curl.se/bug/?i=13124 + [130] = https://curl.se/bug/?i=13082 + [131] = https://curl.se/bug/?i=13119 + [132] = https://curl.se/bug/?i=13081 + [133] = https://curl.se/bug/?i=13118 + [134] = https://curl.se/bug/?i=12063 + [135] = https://curl.se/bug/?i=13115 + [136] = https://curl.se/bug/?i=13187 + [137] = https://curl.se/bug/?i=13149 + [138] = https://curl.se/bug/?i=13143 + [139] = https://curl.se/bug/?i=13144 + [140] = https://curl.se/bug/?i=11919 + [141] = https://curl.se/bug/?i=13101 + [142] = https://curl.se/bug/?i=13096 + [143] = https://curl.se/bug/?i=13093 + [144] = https://curl.se/bug/?i=13178 + [145] = https://curl.se/bug/?i=13164 + [146] = https://curl.se/bug/?i=13132 + [147] = https://curl.se/bug/?i=13112 + [148] = https://curl.se/bug/?i=13169 + [149] = https://curl.se/bug/?i=13128 + [150] = https://curl.se/bug/?i=10290 + [151] = https://curl.se/bug/?i=13179 + [152] = https://curl.se/bug/?i=13173 + [153] = https://curl.se/bug/?i=13175 + [154] = https://curl.se/bug/?i=13176 + [155] = https://curl.se/bug/?i=13168 + [157] = https://curl.se/bug/?i=13166 + [158] = https://curl.se/bug/?i=13134 + [159] = https://curl.se/bug/?i=13154 + [160] = https://curl.se/bug/?i=13151 diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/bin/curl-ca-bundle.crt b/windows/libs/curl-8.7.1_7-win64-mingw/bin/curl-ca-bundle.crt new file mode 100644 index 00000000..f78a6101 --- /dev/null +++ b/windows/libs/curl-8.7.1_7-win64-mingw/bin/curl-ca-bundle.crt @@ -0,0 +1,3581 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Mon Mar 11 15:25:27 2024 GMT +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.29. +## SHA256: 4d96bd539f4719e9ace493757afbe4a23ee8579de1c97fbebc50bba3c12e8c1e +## + + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) FÅ‘tanúsítvány +======================================== +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +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 +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GB CA +=============================== +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG +EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw +MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds +b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX +scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP +rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk +9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o +Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg +GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI +hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD +dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 +VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui +HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +SZAFIR ROOT CA2 +=============== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV +BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ +BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD +VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q +qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK +DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE +2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ +ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi +ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC +AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 +O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 +oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul +4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 ++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +Certum Trusted Network CA 2 +=========================== +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE +BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 +bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y +ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ +TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB +IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 +7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o +CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b +Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p +uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 +GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ +9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB +Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye +hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM +BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW +Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA +L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo +clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM +pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb +w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo +J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm +ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX +is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 +zAYspsbiDrW5viSP +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2015 +======================================================= +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT +BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 +aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx +MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg +QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV +BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw +MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv +bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh +iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ +6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd +FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr +i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F +GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 +fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu +iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI +hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ +D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM +d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y +d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn +82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb +davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F +Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt +J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa +JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q +p/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions ECC RootCA 2015 +=========================================================== +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 +aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw +MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj +IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD +VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 +Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP +dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK +Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA +GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn +dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +ISRG Root X1 +============ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE +BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD +EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG +EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT +DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r +Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 +3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K +b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN +Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ +4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf +1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu +hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH +usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r +OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY +9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV +0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt +hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw +TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx +e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA +JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD +YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n +JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ +m+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM +================ +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT +AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw +MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD +TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf +qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr +btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL +j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou +08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw +WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT +tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ +47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC +ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa +i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o +dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s +D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ +j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT +Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW ++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 +Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d +8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm +5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG +rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +Amazon Root CA 1 +================ +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 +MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH +FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ +gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t +dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce +VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 +DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM +CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy +8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa +2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 +xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +Amazon Root CA 2 +================ +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 +MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 +kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp +N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 +AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd +fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx +kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS +btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 +Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN +c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ +3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw +DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA +A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE +YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW +xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ +gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW +aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV +Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 +KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi +JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= +-----END CERTIFICATE----- + +Amazon Root CA 3 +================ +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB +f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr +Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 +rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc +eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +Amazon Root CA 4 +================ +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN +/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri +83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA +MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 +AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT +D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr +IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g +TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp +ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD +VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt +c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth +bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 +IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 +6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc +wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 +3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 +WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU +ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc +lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R +e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j +q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +GDCA TrustAUTH R5 ROOT +====================== +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw +BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD +DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow +YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs +AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p +OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr +pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ +9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ +xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM +R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ +D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 +oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx +9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 +H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 +6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd ++PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ +HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD +F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ +8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv +/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT +aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +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 +WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +SSL.com Root Certification Authority ECC +======================================== +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv +BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy +MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ +8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR +hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT +jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW +e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z +5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority RSA R2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w +DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u +MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI +DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD +VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh +hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w +cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO +Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ +B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh +CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim +9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto +RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm +JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 ++qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp +qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 +++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx +Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G +guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz +OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 +CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq +lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR +rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 +hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX +9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority ECC +=========================================== +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy +BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw +MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM +LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy +3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O +BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe +5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ +N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm +m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +GlobalSign Root CA - R6 +======================= +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX +R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i +YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs +U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss +grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE +3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF +vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM +PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ +azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O +WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy +CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP +0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN +b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE +AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV +HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 +lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY +BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym +Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr +3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 +0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T +uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK +oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t +JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GC CA +=============================== +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD +SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo +MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa +Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL +ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr +VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab +NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E +AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk +AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +UCA Global G2 Root +================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x +NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU +cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT +oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV +8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS +h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o +LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ +R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe +KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa +4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc +OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 +8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo +5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A +Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 +yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX +c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo +jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk +bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x +ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn +RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== +-----END CERTIFICATE----- + +UCA Extended Validation Root +============================ +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u +IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G +A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs +iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF +Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu +eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR +59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH +0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR +el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv +B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth +WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS +NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS +3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL +BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM +aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 +dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb ++7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW +F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi +GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc +GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi +djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr +dhh2n1ax +-----END CERTIFICATE----- + +Certigna Root CA +================ +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE +BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ +MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda +MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz +MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX +stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz +KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 +JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 +XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq +4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej +wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ +lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI +jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ +/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy +dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h +LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl +cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt +OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP +TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq +7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 +4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd +8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS +6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY +tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS +aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde +E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G4 +========================================= +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu +bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1 +dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT +AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D +umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV +3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds +8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ +e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7 +ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X +xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV +7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8 +dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW +Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n +MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q +jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht +7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK +YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt +jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+ +m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW +RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA +JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G ++TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT +kcpG2om3PVODLAgfi49T3f+sHw== +-----END CERTIFICATE----- + +Microsoft ECC Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND +IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 +MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 +thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB +eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM ++Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf +Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR +eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +Microsoft RSA Root Certificate Authority 2017 +============================================= +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg +UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw +NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml +7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e +S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 +1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ +dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F +yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS +MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr +lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ +0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ +ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og +6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 +dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk ++ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex +/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy +AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW +ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE +7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT +c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D +5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +e-Szigno Root CA 2017 +===================== +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw +DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt +MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa +Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE +CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp +Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx +s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv +vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA +tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO +svxyqltZ+efcMQ== +-----END CERTIFICATE----- + +certSIGN Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw +EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy +MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH +TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 +N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk +abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg +wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp +dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh +ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 +jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf +95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc +z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL +iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud +DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB +ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB +/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 +8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 +BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW +atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU +Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M +NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N +0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNVBAUTCUc2MzI4 +NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lv +bjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNVBAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3Qg +Q0EwHhcNMTkwOTA0MTAwMDM4WhcNMzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEw +MQswCQYDVQQGEwJFUzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQw +EgYDVQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9vdCBDQTCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCjcqQZAZ2cC4Ffc0m6p6zz +BE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9qyGFOtibBTI3/TO80sh9l2Ll49a2pcbnv +T1gdpd50IJeh7WhM3pIXS7yr/2WanvtH2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcv +B2VSAKduyK9o7PQUlrZXH1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXse +zx76W0OLzc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyRp1RM +VwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQzW7i1o0TJrH93PB0j +7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/SiOL9V8BY9KHcyi1Swr1+KuCLH5z +JTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJnLNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe +8TZBAQIvfXOn3kLMTOmJDVb3n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVO +Hj1tyRRM4y5Bu8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj +o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEATh65isagmD9uw2nAalxJ +UqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzx +j6ptBZNscsdW699QIyjlRRA96Gejrw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDt +dD+4E5UGUcjohybKpFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM +5gf0vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjqOknkJjCb +5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ/zo1PqVUSlJZS2Db7v54 +EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ92zg/LFis6ELhDtjTO0wugumDLmsx2d1H +hk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGy +g77FGr8H6lnco4g175x2MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3 +r5+qPeoott7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw= +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6MQswCQYDVQQG +EwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0g +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0Ew +HhcNMTgwMzE2MTIxMDEzWhcNNDMwMzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMY +QXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZn0EGze2jusDbCSzBfN8p +fktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/qp1x4EaTByIVcJdPTsuclzxFUl6s1wB52 +HO8AU5853BSlLCIls3Jy/I2z5T4IHhQqNwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2 +fJmItdUDmj0VDT06qKhF8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGt +g/BKEiJ3HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGamqi4 +NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi7VdNIuJGmj8PkTQk +fVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSFytKAQd8FqKPVhJBPC/PgP5sZ0jeJ +P/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0PqafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSY +njYJdmZm/Bo/6khUHL4wvYBQv3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHK +HRzQ+8S1h9E6Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1 +vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBAEii1QAL +LtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4WxmB82M+w85bj/UvXgF2Ez8s +ALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvozMrnadyHncI013nR03e4qllY/p0m+jiGPp2K +h2RX5Rc64vmNueMzeMGQ2Ljdt4NR5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8 +CYyqOhNf6DR5UMEQGfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA +4kZf5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq0Uc9Nneo +WWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7DP78v3DSk+yshzWePS/Tj +6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTMqJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmT +OPQD8rv7gmsHINFSH5pkAnuYZttcTVoP0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZck +bxJF0WddCajJFdr60qZfE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication RootCA3 +============================== +-----BEGIN CERTIFICATE----- +MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNVBAYTAkpQMSUw +IwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScwJQYDVQQDEx5TZWN1cml0eSBD +b21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQsw +CQYDVQQGEwJKUDElMCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UE +AxMeU2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4rCmDvu20r +hvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzAlrenfna84xtSGc4RHwsE +NPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MGTfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2 +/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF79+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGm +npjKIG58u4iFW/vAEGK78vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtY +XLVqAvO4g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3weGVPK +p7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst+3A7caoreyYn8xrC +3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M0V9hvqG8OmpI6iZVIhZdXw3/JzOf +GAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQT9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0Vcw +CBEF/VfR2ccCAwEAAaNCMEAwHQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS +YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PAFNr0Y/Dq9HHu +Tofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd9XbXv8S2gVj/yP9kaWJ5rW4O +H3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQIUYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASx +YfQAW0q3nHE3GYV5v4GwxxMOdnE+OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZ +XSEIx2C/pHF7uNkegr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml ++LLfiAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUVnuiZIesn +KwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD2NCcnWXL0CsnMQMeNuE9 +dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm +6Vwdp6POXiUyK+OVrCoHzrQoeIY8LaadTdJ0MN1kURXbg4NR16/9M51NZg== +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBjMQswCQYDVQQG +EwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJU +ZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAyMDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMy +NzIzNTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJp +dHkgR21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9cUD/h3VC +KSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHVcp6R+SPWcHu79ZvB7JPP +GeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMAU6DksquDOFczJZSfvkgdmOGjup5czQRx +UX11eKvzWarE4GC+j4NSuHUaQTXtvPM6Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWo +l8hHD/BeEIvnHRz+sTugBTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9 +FIS3R/qy8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73Jco4v +zLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg8qKrBC7m8kwOFjQg +rIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8rFEz0ciD0cmfHdRHNCk+y7AO+oML +KFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7S +WWO/gLCMk3PLNaaZlSJhZQNg+y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUtqeXgj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2 +p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQpGv7qHBFfLp+ +sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm9S3ul0A8Yute1hTWjOKWi0Fp +kzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErwM807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy +/SKE8YXJN3nptT+/XOR0so8RYgDdGGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4 +mZqTuXNnQkYRIer+CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtz +aL1txKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+w6jv/naa +oqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aKL4x35bcF7DvB7L6Gs4a8 +wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+ljX273CXE2whJdV/LItM3z7gLfEdxquVeE +HVlNjM7IDiPCtyaaEBRx/pOyiriA8A4QntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0 +o82bNSQ3+pCTE4FCxpgmdTdmQRCsu/WU48IxK63nI1bMNSWSs1A= +-----END CERTIFICATE----- diff --git a/windows/libs/curl-8.7.1_7-win64-mingw/bin/curl.exe b/windows/libs/curl-8.7.1_7-win64-mingw/bin/curl.exe new file mode 100644 index 0000000000000000000000000000000000000000..83d8708b25bf425e39edbebbd66d5db97bd62609 GIT binary patch literal 3330152 zcmd?Sd3;nw)<4{x1rj9QfV2bzX)s`r#Y909Aee>(ZfiH7g5r*{2s4TdbVC%B#_lG$ zbG?EKisPWnxZ%wBh>l`FfrKRqE*Nn`Q3Tg}ZI{4|kRa0U_gi&4=>&Y<_x=6*%jW~P z>eQ)Ir%s(Zb!u(@wdD?{!{JE7zvRD?f{c%}RHJ7&xrn(J^(DswnyEbrvlzbAE8 zf_$T+pX0QY(;bcjK-ixpz>R0%lP!WJ{%Vpz#7nVMl!DUEnC?ciRPy*D(j8>nN!t~y~F5d9X>mWY)c`2mqx%L@J11{HPsq*1D~VOb&D zHZTj>zCfauHN3|K4&4#04vgJMr7%5zb2`jn_)pbc?*K#Zs%4wK+QoC#&PY#ZdbrRT zm{d@$hIiy`U%8R`Wu92;bi`gKzshTqa%L?%cA7I##!pJHGF-*loUSZi9FNEKl}(5g z?27JDR@GQ@08#pc00Hf+WuR>ip4i!8(^mSFIvnBh0J4?u9K1ZbtXZnO6jP6uf0DBN!I z;h8+;>Z`5hvKIFE^1&)IFOjS?opD$RQml5lp;Jc_+iQEbyY&26Hj`)YF z*3_sfFI}ictAk&u`tTq2qv7Iuhj5cqiChIdy#v^fyoyj=`cvI65G`sa`v8o_mB>td z!EX(+s=5P|0-ehWsyDH*3UADSG5!~`Xt(P z6534feG3XP7CY7Hakb{VR8?y>E0O5a`+Ja}YCEI*l>5iA#PH7<1^c{u=U!%aAgIPX zr>Y$?uS3|YH9}my9bUa#FIB5i!`m~=k;EzbBDh<1{;bx~GK1KVA7Nt5y=6jI3c!+2 zPu~NOp7k02M`e5(nXMyM%037qYaN1G`m^{yx=V@Ff{N~1$=IGi0PW(w?#7#L@La!r zR-#Wpq>p``>(~m0AxcU$`i~Rw_{Khnn|G{nCV;O1h>|t~7ow`g$DD(RQDd*A!fPp2J3OiMh3UPo%AR2d#?6e<(cA{eAU%gs>^<; z2N$aGuiOy6K5e&8D=YD6A9=O6RXw_%FukfWjT+j!`-BS|p3qXaBQPvf>_o&7C{_)B zL)^7-61B3d0qy^#pK4a)%dAmrEO%g{`k41<696$^ZJFEQkAAI0yFiN8AMjt?m4S@V zusOTl_urC@3&SPfI7WdEh=7KdVwS8v;GZk3if!8HZsSyk}(Pj+UCpL zrq+D#h8S3oSKBGGT*)jwELKWn@gx#PAR%yDsMwFMGnk2vmyb}a2fCW;!6~T5KyaJh z3$WVsfy7ar0F*Vzip~Z`sjg<|8G1>Y=F82aSwTnq@7N1ykbYh|z_AIQfx}GIQovpD z+kls9XelIy_R(l%?E(nI+?%=)Z(n5!g%Y?Cg6-=FT|GvxX|HfRRf&edmB$$OTevAr3GYB8RNT>rrdFc;;q-yaR7aq% zIF$Ii3eA*{vFfX409~OJlr|75J zConYTrHea2(oYe)Hhm2~PU{U2@PtovP%2(V2nPH`pqE0m4cCs>2S6t}|5Rw#5-nygiXKrS=>)}hD-rs)UhVUOxX&p5 z%iRM|vzZMA`^pNA#Lif$#<%;lqw3Kw)S~|=5jv%zQ8}H0Ci*){b_7doaRqb4_~faA z>Y%pGe$6uHJqEAfET6Uns;61tXq+Hk=Jsm`&FOb`5Da;pwW`r=q#ECbq7vB;F?#{B zljYj+2 z9Mr4fvXT_a>>TgF{oZixHlOzE#!f(?(#&1$boiY=d5exHVGqc8wJ)HKDD)~6>W9)# zL18|9W=X-mf_SWFk`JiH>(uyL-uMo+=!W{hKfOlUXjMC`7BwyidX3Jb)p*TVWkcz( z6Kc_W3%ZWV3ZA|`YiwxAuy`jW5`c&d^+2fkCS^nQ#-U(E8Cz3|Fq#KN|G0R7!~A?v z2Zx{;u1+D*l_GOiuySl@)UZy$WwI{Yt@A-k_+zM*s(objLmZV2$1(oWqw^X49|Aon z(1ZBI2DFT)Eh6~iqe28e=j|mz3?qb9q71G;4$9zi@PgV8oQ1!n@wTi4Jf{^xUhG7J zfdrX&i+&57D;O_ooWE}q+TM}Son|jO`Y(?_cLZAS6VS|S;fM8?qW|$O)_-AwoD#Vl zb+Sn+;Zj6Ie?iewi1T+;QHHV2wdozkLm#a^r~xYc5a^)#Pv8^lxw56ci@^b!+^+9} z34;G)tmhn*37&chdD{H2YL~b064+?-v0!~W9vUPMyFktCixRBAfh85=4z1mHced4F z2MNNiNy$KMAQ@GA*W9}b!igRUbPO#S9q$yoyr4QZ35_YcQ>Zv^96NT;Btz|y6NP*> z89F4otk-!oA@4&z?U*23XD$Wd(5Q<$DXXe0)4wd^i1``*r$fJN2i=P6Zo1KPz2^qc zjh>rskZy?ZKj6OPt8icPL&dKXKQIVZwJGjepb9Ud30}ls0Z;NGhO~GQ=fzzgjQ<^< zVNNw&hS-4L^$|J>GO=`lpw=94Yr9nVDH?k7j(ovkTmDq70qzj2nLiIh3cpRt2Coyc zue*5wdUdtAQ@m+P`Q3 zB;5JUM2ou0(W2UWUU-ui2GE#-a4Fa`vi>bmYkb-s0k#f5i;YxARUrhGT9y`WnyysT z1Jh>=zEGvN6s~IE1VV{Km@&N7jYLP_E;QZ3J-IMJ7;2%WpO~v&Na0w2vnO;nOmQ>< zG;jPJ)wnF(XN>z*+29N}xdWNurc5Q8N%}>W66RD8_S_q-~ueWzGX8~YDZWpRiOQW=#QIHYW72p@9?th6JeQWt*ZEqZ4@HIc0VD`du3 zQrRA5RM=tjhyaLm^Dx3beXEK@FB*H4L1I zz*GjZ5I7eBCHgquM5lw6|XI!sk|;!Uf>8! zNv=q?U6B$mdaYLH9ry)$V>JmFu4C`!I?6Omi#{_|2t8=b_MJvoA3@y-0;WN)4HH}wm4@Ef-}F_nX#c$uUUNX6O!=Q`&D%lsC( z*;Lt~awnv{2{1Jd^SXl=*Art$Ta49hFu0U$9=0(Ogz2l9pC&fTNCtQcOxdAUQOQYgXOZPEM?ljm=iBu2#B? z%~|h^4JO7WV8mSwV+tI4hWRSd4VO=r<7LOIG1naxOHWcrt^N?Yh-#==rlpG_ln944 zbYXNFNS)1JhZJ<0(L*O1gGYPgJEh0w({6X5`r*PZf$rk#Qlc8NdcyG;^G~zxk-_PU z%EdwiW@4DRR=rI#&}`mbo`Sq}t@a=4k}ThMI!gKWNRqElPm~v28G8oe@o5*>1kk2XU&5lG)eU1*BK=#WpQI1Vey9{}A=jH`DFa^>eueg~pT_G0tYw9YpBgVhg zPT|0UJx32g;w|e&2`ZgzD%)cn1j=@w{sKn;bt9_6zon}Fh_ENoJ>>;nt=>DZ!SDR; zQX_4IzoZgn8&DePW9)Gt$llfV## z{bA+Cn!`%=@a^@vj>F0|jivgAN})lu&C1og4ttdIb^{Ew!8OGWaJrHIDZY9i7Ur-N z^71)U)LPBy7*ktX+yJ|o{>Uz@e;9YK-IND9FkM{s`6Y<{rQg3&K#p-eXqJ+ z<-T`B)^X*k7Ck`v)3=BU7~@Z9(H{U1Y+?R`(T55F8_JnKFjY*wOnc5Ah z+d3JOlvAemLh5#9V7<>6e$8zIu=>_{d09cciffwC!p-E{qg8A5a;CBxY&M)TR!_UX zUHp-D@h6hw&|3NxheIs8ufOw!|slH_$0;Q>2 zD4$YIeDvj&h=i+;iB91us=K>$Su}p<83om1fl9ldSu`Qh__%o*wjRE6tC{daM3bAd zP`Xc>izeC<0-`7MM(*ioTSuUqr#2#ksy@M8u*W?9L@K6_N}jL^m_^c9wDCJyhcXe8 z_T?%$qLpw&D}f0SCfbv)bn&?HFI(y24Bb`Y2xO@Gn0cx;4kJ=lY8|!+PV`F?*8MUV z5zK#0m|jnna14$wr}r2%y+tPi{k82JSq?>Er?Hgctnn7@4rYgcbuBq<*{=%5prxtW zjX6Ylq8?Hnhb7ry@y7qscDOQ%V7)M61^V0cC;ZDfG^53e9XaUE$>&E3j0$|;^Lg1i)9VHYJM&K5E zn>@ygRsA|S+WPf7v%UJVb?h|cD@!d}z8(=JvKf>-;jJ8n5Zi$NL&d#No+EIcs#$T@ zhu|ANF2s_4V)*aR&MyKQ*XK`K(f|KBJJ+uoHt;*g)YiUH^&1reY&W$*IDfySbxt|sy+^0Sf%hz3|He0 zsK$SOrgOGjWEmuoW9P?R)`$Y^hn^O6#a;Uml#^x7AF^L^#=2nLqqUIW;|04sl`E*{ zwttkg4AP>-qP>##bGVh`$qrS??$Nb2Bm#El_~LPNj$NU9W;;ZYN*T81xY?7m!z1Xy zxpNEWPWR3*M_@8qu#0W2JY3`4CDuCJEm;!yay>?@cVMjpYaXFHosK|ysK^mGtKHJa zN0a2z$Fd!wW^&ymQK1(7OYAR&f0#{HrujI+@4)Ej)pmRJKSA8fDQ>KXm8W{c8>`W9 zj$p6X*=bZ`1sjyJj~9N4$KlCFoRFeV`wH#)d08YL=&3H-O6&D5T#lt#p)K8LOq9qZ z3~=_;$9(EuC)6?Xr ztU!SwW`r>6I%)N0b$2sak`zoZ0CdJ4Eng|3Ml-Wni!ob6mLN8SHp)CXQGe z(W+woUNx52qt;57dGIRoVeT6dGl$*-eXLu~F#iBv^ z?iNHCwz1s=?~!1JZEzmJuS+n)HaMT)rzMzS8(c`RA;ApW;1YrtN-)DVIG=pqWD{xS zTP3zC!3^8jG`MDg1T$=drxM&#f*H2K(+EzLV1{k*Jc55%A}Y_Y4K646LkVWs2G1sV ziv%-lgF^&AC&3Kc;7Wp5N-)DVcqPGiN-)DVcs0SdNHD`TcrC$~Nif4UcpbsRB$#0v zyq@6R63nm-t|GXD1T$=ds|o&jv8X)5Hn^VPy%Nl@4Q?Q~MuHi(!Fvh*hXgZhgBuBc zNP-!*!4BATbBP2qY=cc=&y-+>ZEzF86C{{n8(fGEVO}i34BKG3OQu_b8MeVHu`?x@ zVH?avS@ZB+qVfz&@PygsegPXd+s5OdX&#<}<1PCA`3!$6!-WigD#Ozl-Yvtk8Qvzt zA%@Q!gw2$?-=Mj8IFZSdO41;ndLHEgAD;W;S@M?wwGF;7YiR74Jn_2_G10|SY z8@!j`t`f|!4Q?X%SNK<8iD4V;ppd?nV1{jQIl=EpFvAi&K{YoD*f`Y&Of}aLfXVh+ z@!cm!BZrd zVH;dR@MsBU*aoWvpDV!(+u%tAXG<`{Hh3z*&5K0k8MeXG2>w!n8MeW*34Tk08MeXm z2!2I^8MeW0g4ake!!|gF;N=p`uno>8_znqX*al}1JXL}jw!tBSJrc~Y4Xz~kJPBsl z2CpP|w2%qz(xJBi9Fnn!ZwVc`-$0EauVpS8l6+I8LJM&uFQ;FckE0YsVD{YqHhCZ1qAy; zNXL3#9~8s$J6&$!iMLP8LmLHoc1mo-nb+9` z_QXtZ8rIjvrqc!h%OYO~*IPc$2PN=t0LGp`1z5-%*qo!Sdj(%iD9}D_x2NK+(I`;Q zFg*VWH}zPA)fZQn>#^BxWIeG8pXq7KRA)UV0gln}14x^JwAj#P%~Pr^*7`#OdplE(fB?ovIuwZEyx<Y35~oySQc9BygqmdYdHH)Z1eqWgE*Su z6Z1I$MAIDPXio!yZP!<;QAzYrs_DY{*lwI55a=` zHu@A|V9nm#%_KkC_Li;OW(;OL#v9!i=;Dw580hRPiusiBF>HXvatO^pwXyXaI}NFR z<94TCDg6QK=$C+9zxJJ~y}BOc6X*M@z$1GK50?C_r#N0`ob}m;FIbeR(4sWf_8nj_ z@tJmsv8hO0Zzoo^OWec6heTrVj@QwFL6`rdRM4$rYEY(Lo?PIwOt@Yq^iEEAfC*z| zVG%gZoVSlpO?!7#=Ifw})x`HxTh6!noH$*AlL_u%ww#~Fx663o7pyV&3O5Z^BFu$u zr9{sMEofD$5?LqNGkf2WkiFTJ!D2R<61`s}e+wn^hJSJ@4^}7Z$yGq%?(zhDq4-Lq z3;`Sh7^#M9PN2g7z8dTwCpAhk4~gFJiIn;0ChSdVADk_Qy*V8zIP0i}e@%e~HPPNQ z!QNoQ^J26=R%k>!#xiPCZ;F+Z6=R|k%LCYk=c&3uD8N(O@h0rrqwU9{%;1$RDz#y5 zqFVBFz_W<|o=WvjR;lbHl@k2oBnzw+3JGRoZL70i`xzL}4=g2MUuCWNUr|yWs)}tx zYJOmtsvFe^m_0;Nv$+uqWwg)P^e)l>l){X;Ri3Rp8v|O*B@LRY+a2W-^D|`PxVCHu zhmW>PKEn86pPF-EeGK`HbM& zB>#dskAD8)Xn1`<>?f=d79bCsk07g8i^Jyai=8E?yGb1fgPP4V5h~!>rg$I|qk7!+ z$=TRz(3((v)<}3>@(7{uw_4ZBxjxD+ypjE_U=Pk`*k>1KWTZGM({JpJeF`IMB0h0f zZ&Z3C)|0U-GrteXr@#2C+?>Jv9At;;K1%>sjd!7ZXm4Z<;4NivV+i|eRsXyMT~Z#A z{H9(GP35vUTz{J?s^wRLLd{dja`UD-8BOLhu=(# zyEe;|vuo40^x|~`BWn?|nTOwjpX9Dhf1bb?{IM)Izy(JN_QYNHB1^^a?qBeCJ75;Gt%2P80g!k+5{ zNtit)=7SRR_z0W9RVQOMo+hetp{&ZD1SVR(J?^Af7c2AM=4X zVdLx4FG84qXe&k1xkA!8RAh_d&rEIKRxa6Aoo7oex|u52(oVIVgru@0p>>i_psXF+ zYbDlK&+|$lq!P06dbh(X2VSfzN0;4Wpq0(P+FB{J(JjwqC1$NB>7zcpNEY)1i`iwK zWfwBz_i8laR#~HwZEE!2Oi`mhC3yXyQ1-I+yuJ-Q$!kCI>i^$(CC@GM>*W1xY$2-p zHQ2>>O?Z}5j#hQ! zIuLRiHa2a@s}eG_74npXOl*ZbAR(2lkfjoG!8$S}#=+YqWN|CbbrKR$TgviENO>#H z#S*fx71AFNbeJbHWQWQ3>G_;FAo_cswuyTbvjHn}tUdcU^X- z@I5Ao6UrOoOGkgW|D`ofwWxmSwNQuOo?$~CGM(T!HU{_jfc-kF$Rn9E;Wr@;v|&P! zhp=O6e!Lr)m&IMFGG)Icz?98M5qV?hV3r-KIj`@8TTXDLW#i^CcYX8W!&^U6j~>LK z4$OtmDA)%MtG_sqGdxHvi4h=XID z)Z!~UrwpHuv$U>Ff;C(bYBc+SH8EY`p$$l@wM6TVTOhaJlRHp1ap5gV?pK0kcm*wT zKcD%-zs3WT)j72x92R8VZ6P~xm=jygxDEk3#XWy`moc;({NS_Vt{PG@T%|2+df>K{ z!}9}j-1Yt$xb+9D$0gPu+F)HltdpeHVlP|IU&!@Hoa9g<)8H%1B`3p!wYD;poi)*i z>Dn*9*<%@ZO(98iMJ`aUTiSPT`-fkQV-89K(igVh*wLb55Si z&&Cna*pPm1=4p0nsx0!4m!Y;DSzGiv4hkQk=+MY^ zwbg)yX-raW(@v`G-#<&#wpP^k2APMo{rG+%nnZ0Y|1N4fEJ3uTwl7M&Kx=LNAc~_1 ziP}Cgje1>&tFPvj2(msSNem<2h4}h3+^WIdb{*;|YunpSb&2l{&^fGK8(Gmy2RL4b zNFem#+n$0o_KEWj2hHKF1suLf7Vzoc__fSE_zLQyLA_>1wz(2MUjM#?z5# zzV@qBg)cG37Mk-diwggmJ|6?sI5P0-S{lah&CR%N1N9>P`GP){58jf<9Tv>-Yro*O z<^1cAp(8lv`HWV5yBAsMEcR|u4fj5=Sfk}*N=MPSK@nNs_S#unF&ga@`(Bzg>3=1kzE>hT1wfa^tHQPg(#?-iA^3Q_uZ7qy8FQQUH=urX z@}hnr`ttCpmVZ+Mo$R!UI4o?iVb zRS2QlyaMjq#(8K{u4r zy+D~NFOAa+Lmo~OEF4P0GY(&J2@o~<9-@FX#i=nob^t{?9Y8LDZF@<=wWH!d*$|Wg za{0`1wa5Y?DA6+|xCCHo#+nyw@!+~S3<@$7GDB^*4pM4L^cx9wvy^t5URIy3KocUO zS?b#f=jt~AJ*l}{=Tiy)0QWH{3wwXcFHUJf$2rBSD{Ewx@vXPN4fdBGtm+myg8hXv zylEcdX34eaSZt2BG1SQCio9A{u2<{GuKngUPRACslSKKI0s3z>n~IrtGEzleOC(@7 zAh=iA5S)iK8(y*)|E|xNjSE?~o3-N1=seuLJCO&^3L<O~1~E@r8I?OdLSX1oMqLiyl8_sipBg~)GyFqI=XTzXb6+8-cm6#grSTO&vwr%v#J zH9CI{P7p5LjuU}6k`77W_}NvEB5GNpM7fbJYKUX>-15c2^u4ju#eAv^tI?4Q;nu0~ zGSpmF9+hrjrLjJShYAo#5`%W=<-rMAnER2DQg|L;I9YgyBsc-m@PvOG94tzb$t=`D zv`z?!C&>hN7?WfY>x{+wR)0aCasa*3v)&2eA2)|6tQ=J2VzLYu4AR4$sutlT1fpFw zJAC)?p20zCc=1$+vVuN{s$Z64?!fMYS~pgXUv*=rvg_8Bam|NcYEN}(j)USYI?y})juD}S46g}a4nx4v>gwh+X_-gQX=T;hif3?i@ke$oT zTxqy;nJ$ee_^ra3Y9KnykB6o@a0?T+Wx#x!y`s0rzmP(n4@gCJRUxl8Tgqy`QL}O9SI#vUHD}z6$6^8Ng{fbg((~I zYjGat#K_=9%7!Ql)1uWZLw}XYWd%QC!k|UhBP;@|8Q@E0TC^U)*ktg;1`#%@SB8zn zqyoIiQjPpRZJ^~xf~v0~6;)d$>LBT(hNEj!;5O4~4aG+)(I>HdMAteF$Gkdt1y^AN zCtOdzHSwYWpIUlw6sF2=+$QE&k;@=#*tZVYcUO&9*~Y4|IUB`UpQ90yfVwr&-s94_# z#X1P<1xd{v$2FExhcQTp1UQeCJ* zEUS(DY(bSOTSnuKoe~)Xo=|vQxM`#k8IDL4h+mWq^{m*BqGi6bx%+*U7{el3`nwXn zf_(>l-fMXfO3>$lD7C9w19~{?ZhbB?e}Xt`D@lz^gx;fyW+4+ zV!h^bY{Pi<`*Lk(G#7L^FaEg-BV`TJk_$aih(e#4&25!K(P~?T19!FQwHdKaiT5)9 z&-&{#Uy)teUyIOHqBM(2^jz=)bzU^ZIujwT|Dz+>9VKv`-AMvhpo0YbRJVid9G|u8 z9B(I|hs1#`(LctB_C00)_~$VcDizk+Ai{gWPwY<*RN3MVdKLu81-~;^c4(#?Aeon#-p@wWs2 z9D}D_`adc9Cj}N0J?I-;=IQ{lPTc^F+~P(FF+34?6rEyRWuX6BygOrkk4PK)9T)Pn=-jLNX4wwS z=JLy=*LyDbr)8dnc)>28F4_b&CJWY^*s$^HZ-`D2cm3=Ti$@<^N^{P0U0a8XBcNP> zs(Tf(cns(`Utlc}-&QZ6rO%}gBc{|6CRtZ7JN(5|phKaLwhsTu z%w7Ottj8xX*mjU?p9o$+>{6ahiu?q@BzX{U5@N+jXp0^=JE^}3 z4buDS;KxQmtcM@IS+}H2W0A>x2RZ10rF*qY*uwEZ_au}uA)+SpIbhLe>x|Zw^-qlr zO2`6v`XuuBbRMoPAms(jgQofQ90*CeQg{hPc)4^7+jzO;Aiu?B!USzDRjSpVeSIMa z_9H>v5JIM&lA&jrDK+-wNm}>oFyuI}gE@rK#74HDtgnRhF<+ZZf{thfc6*FV-O#k$s zaV>DKf8ftBj%akhGU0e^Aqs0ELtJTn{GVJk+^`S!^1RU# zXqYiI#V+D}uY4R%nPXmS*iaBf&*MvYS$9;zisyh)u}KEa|F~cmlFb{6v2d-`!Rt<% zqpHB;?jz7fK}66_MByK`7o(h>j?3|Db0}BPctw~rkU%dSr1ZS(EGyVo z7oEg*$6vud3zKckLc|lDuJ``TQ`JnPB8`Hqs7J3O4qdAfiEwd6Vjm=;5xvH^j__E$ zN*PD&YT8yK{f|SbR9HPlt`*3o8U|C~QJ^f(MozBHJCI*!=_XRwwu3XQwaGUK=mJMy z034^Z!Us-xww#Hu@URySLFq;`n>95IUT_n3^{|m|-!87r5udJ!u-z&gkr zCW7lFv=PCzvaHn-T@=49-Rn_K!Kp3t}ZQmMvq2GL|D_(`2T3K&zI)as;bH zFdBkL5nC@~l`=L-##YK$y^O7vv9&fPKFGIH#@5QTkc_R9v3wb0qXDx-#;Rn@Eo0R( zwiX}Mg^do(1{vcAv5<`6pf6(M=K+m*5zIl5N`qiNf)p)+c?hy#1gU@r1VRNRftV>{ z*)rBBW7lJ7LRyoIl?t7SvbUjdRi?3)h)tF;8X%CLjZE1Rja?M692sknF}IAZ!v|^9 zdyrTyW7I2u=QUSpy2B^>85SmSV0YT$y{?8N#7MvLHe z@TIP{=7S8**K%B4fgnc3*+8##I*}t-7#ck!c%dLS1SvxG4cC*8=faa|G{0L%Usj0F zrwf6$u6IPS?v!4#RP2{FdY1i0xhWMTojK5$@T6Y6vCTGcofxm7F4)BpE&_wtZ|WNy z+d7t4vn6dVcpmUWv|yX!<@+Jg^ZR4C9o|dKimiT#fRI~>M8QI6H1^GK+a9jLEFP)v zzl6^5m*$R9(vLYGPBT1`5Bl(|$U$>Tl*pHXIbT=RUp7|KT=GBdMY@73mZ5#d*=A( z+P9C@jd_!4`X$Zd=Kx;$=tdGO_}cmrQ6Z{WkA$dP$L^x24w{c)p9TXHFzHM^Eu}IO zD#66uNQ%Q+4VYJdl3kRV8tsFMAYPBS)e&LLh|Kpv1*RbzWQ2=110`~%@YDzaXH#1@ z!7umJR!mC6%7?WBw<)nwPG7`RSy2KQ87)P&Q1Lro2*KP29}soVXWsrf0zpWp50E@{ z<457?rnuD=5!Cc$Fhc^VObbmM6+%YZFl#!>@#y16iJbSNCgFOgwF_T8Dm6~Diq#;I4Rc&7-oD9n5*7s|h^^6DZM zafS##daX?)jU|$~HKK3hd_q^~Ase<7Ef0Nq`Z4H}I8tMkphuxnY*y>z6gKIK)!>}( zG5yxbUb0xz7jUhDaF+Hkq9C%hoJ025kp^>c9hWj4yFo z*E1guSc)?MlaNd3NFQYL>Jzh>M^BVENR&7}o5h{mN6_6%`8|$4iPq_Eb8;3bVw&$1 zMS7~@2$&0T|J1r$A|3!Uq;c3yME^YNTEIE=vMxtJc4zY$Fx1}UR1CIdS%sV}n)5Kk z7p_mSR^SWSk0t3xfq?KBhIJ8sbe^4ei6}Ka_$e;`lutq@e;i#N{Bl6F8lWbso<6lD z@gAATkL1JBPiCIFJYdGw3 z2@{7r*E`Lp&zBZ#&lzOtG}HuBV_PChL=u_S%1k7JhJ6q*^c=1hp&E^=u=oCb2hk9h z10>AA9n7FtbVgjO2_HNGdLC^Bqk`TfB*Q4d6cA*25QV0MK;C*56H$ccG5i;V!F!I~ zoIQbNYjL09r_kaIlBfPdf-nc=&=54R`N!eE(|W|M6}Sd*twEx=t4j(0AHY#`54-3m zW%P9!#an{nrlJz90Nhho!5C#@En>X3f_Qvnnce)q!%o2}Gq9NPq?jL!3N2l3h*++K*BQBEgc?}o2z!v#%Df+AAb>fvk8Q8#0Cj zRI#%ypD!`=p~*Pjr_ApQl^s18o||OR{N{=F9tPTzsBBLPo9=<O=9j0*vcRVm%M#(W41a-esQ4u* zfd?RHFjPq0tVM$TRNJMJ&TP_o5n!Ca+`Ix#s9}_VMO#5>Lb{wMyGI{UK$NNQP}a-O zI(*1$EJuiltGA5)h-h8(3?%X|X>x)C3u3=b*?<=;;@b_iA=KPy{vkg8_!0~Tl<{7{ zgmi3i9{s*{)~K9Xulk$RfhK2#Q9a6KKX_JFZ^R&=zhO)HWC1niNdcV@t&tE= zH7ZU*?+I6SO|>YVZh+Z1NaF7XenEA3BqlbUfLyBh4_HqLY@Boio{5RG)rU1PTnkXL z-6rPRf1cC<#LUQAgv`P~c7UYN{vU`Q@BmtY9(o$NnM{<*M>pHGER)5V)(hYTaPF%T zZ3y6=H(=BpRzHDaOcngohp{SHPs26Bz|ea!4xET0*9vnuN)~yxT_k^l#5xFvL!kUw zp!Ad|zf!W`%1sn5KI4lDnz9%=FLw@*VtNk3A!doSoUV%wDa8S5^&3QISuD~LuEZ!( zolTG-7O5%DfiUy-1osknZn{vhX!XVmP)lWEeenO8 zfgtLFgH)WcRjT++tgo#{kN^jNk`q6lI0o0`Foa_8ECJ76%nr(jfWx2BAaFmjg&e7F z6y;FN;W=-