diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml
index 2d50517d8..9e07f3280 100644
--- a/.github/workflows/build-android.yml
+++ b/.github/workflows/build-android.yml
@@ -17,11 +17,18 @@ on:
- main
- dev
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ github.event_name == 'pull_request' }}
-
+
+# Least-privilege GITHUB_TOKEN scope: this workflow only checks out source
+# and builds + uploads artifacts (upload-artifact uses its own per-run SAS,
+# not GITHUB_TOKEN). Explicit block satisfies CodeQL rule
+# actions/missing-workflow-permissions if Actions analysis is enabled.
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
jobs:
build:
runs-on: windows-latest
diff --git a/.github/workflows/build-ios-mac.yml b/.github/workflows/build-ios-mac.yml
index be9ec53f9..81d93ad77 100644
--- a/.github/workflows/build-ios-mac.yml
+++ b/.github/workflows/build-ios-mac.yml
@@ -20,6 +20,12 @@ on:
- cron: 0 2 * * 1-5
+# Least-privilege GITHUB_TOKEN scope: this workflow only checks out source
+# and runs the iOS/macOS build matrix. Explicit block satisfies CodeQL rule
+# actions/missing-workflow-permissions if Actions analysis is enabled.
+permissions:
+ contents: read
+
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/build-posix-latest.yml b/.github/workflows/build-posix-latest.yml
index 657caa6e0..13ac881ab 100644
--- a/.github/workflows/build-posix-latest.yml
+++ b/.github/workflows/build-posix-latest.yml
@@ -20,6 +20,12 @@ on:
- cron: 0 2 * * 1-5
+# Least-privilege GITHUB_TOKEN scope: this workflow only checks out source
+# and runs the Linux/Mac build matrix. Explicit block satisfies CodeQL rule
+# actions/missing-workflow-permissions if Actions analysis is enabled.
+permissions:
+ contents: read
+
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/build-ubuntu-2204.yml b/.github/workflows/build-ubuntu-2204.yml
index e0ea03ac5..1fbcc6404 100644
--- a/.github/workflows/build-ubuntu-2204.yml
+++ b/.github/workflows/build-ubuntu-2204.yml
@@ -20,6 +20,12 @@ on:
- cron: 0 2 * * 1-5
+# Least-privilege GITHUB_TOKEN scope: this workflow only checks out source
+# and runs the Ubuntu 22.04 build. Explicit block satisfies CodeQL rule
+# actions/missing-workflow-permissions if Actions analysis is enabled.
+permissions:
+ contents: read
+
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/build-windows-vs2022.yaml b/.github/workflows/build-windows-vs2022.yaml
index 20605b442..b28aa1515 100644
--- a/.github/workflows/build-windows-vs2022.yaml
+++ b/.github/workflows/build-windows-vs2022.yaml
@@ -13,6 +13,12 @@ on:
- main
- dev
+# Least-privilege GITHUB_TOKEN scope: this workflow only checks out source
+# and runs the Visual Studio 2022 build. Explicit block satisfies CodeQL
+# rule actions/missing-workflow-permissions if Actions analysis is enabled.
+permissions:
+ contents: read
+
jobs:
build:
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 3a55f2bc5..74c630cc0 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -56,14 +56,12 @@ jobs:
# If this step fails, then you should remove it and run the build manually (see below)
- name: Build C++
env:
- SKIP_ARM_BUILD: 1
- SKIP_ARM64_BUILD: 1
PlatformToolset: v143
VSTOOLS_VERSION: vs2022
WindowsSDKVersion: 10.0.22621.0
shell: cmd
if: matrix.language == 'cpp'
- run: build-all.bat
+ run: build-codeql-cpp.bat
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml
index 912594c61..eeedb9c62 100644
--- a/.github/workflows/spellcheck.yml
+++ b/.github/workflows/spellcheck.yml
@@ -6,6 +6,12 @@ on:
pull_request:
branches: [ master, main ]
+# Least-privilege GITHUB_TOKEN scope: misspell only reads .md/.txt files
+# (no PR comments, no status updates, no package writes). Explicit block
+# satisfies CodeQL "actions/missing-workflow-permissions" and keeps the
+# token narrowly scoped if Actions analysis is enabled here later.
+permissions:
+ contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -22,9 +28,22 @@ jobs:
continue-on-error: true
- name: install misspell
+ env:
+ # misspell v0.3.4 linux 64-bit tarball SHA256 (from upstream
+ # release checksums.txt). Pinning version + verifying SHA
+ # avoids executing an unpinned bootstrap script from a floating
+ # ref (the prior 'curl https://git.io/misspell | sh' pattern is
+ # a supply-chain risk) and keeps CI reproducible. Bump
+ # deliberately when upstream releases.
+ MISSPELL_VERSION: "0.3.4"
+ MISSPELL_SHA256: "afd95caf1eecc72ff382791e00b3b11523a20b0579d95e2295c1c043688743d5"
run: |
- curl -L -o ./install-misspell.sh https://git.io/misspell
- sh ./install-misspell.sh
+ curl -fsSL -o misspell.tar.gz \
+ "https://github.com/client9/misspell/releases/download/v${MISSPELL_VERSION}/misspell_${MISSPELL_VERSION}_linux_64bit.tar.gz"
+ echo "${MISSPELL_SHA256} misspell.tar.gz" | sha256sum -c -
+ mkdir -p bin
+ tar -xzf misspell.tar.gz -C bin misspell
+ rm misspell.tar.gz
- name: run misspell
run: |
diff --git a/.github/workflows/test-win-latest.yml b/.github/workflows/test-win-latest.yml
index 19b20ef53..255868a88 100644
--- a/.github/workflows/test-win-latest.yml
+++ b/.github/workflows/test-win-latest.yml
@@ -20,6 +20,12 @@ on:
- cron: 0 2 * * 1-5
+# Least-privilege GITHUB_TOKEN scope: this workflow only checks out source
+# and runs Windows unit/functional tests. Explicit block satisfies CodeQL
+# rule actions/missing-workflow-permissions if Actions analysis is enabled.
+permissions:
+ contents: read
+
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/Android.bp b/Android.bp
index c3dfb4a6a..78ec0c65d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -81,6 +81,7 @@ cc_library_shared {
"lib/http/HttpClient_Android.cpp"
],
local_include_dirs: [
+ ".",
"lib",
"lib/include/public",
"lib/include",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9851cf4d9..6aee84cda 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.1.0)
-project(MSTelemetry)
+project(MSTelemetry LANGUAGES C CXX)
# Set installation prefix for macOS and Linux
if(UNIX AND NOT DEFINED CMAKE_INSTALL_PREFIX)
@@ -16,8 +16,9 @@ set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation d
#set(CMAKE_CXX_FLAGS -m32)
# End of i386 build
-# We ask for 14, but we may get C++11 on older gcc-4.x and gcc-5.x
+# Project's required C++ standard. gcc-5+, clang-3.4+, and MSVC 2015+ all support C++14.
set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (NOT TARGET_ARCH)
set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
@@ -25,7 +26,7 @@ endif()
# Enable ARC for obj-c on Apple
if(APPLE)
- message("-- BUILD_IOS: ${BUILD_IOS}")
+ message(STATUS "BUILD_IOS: ${BUILD_IOS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc")
# iOS build options
@@ -77,9 +78,9 @@ if(APPLE)
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
- message("-- CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT}")
- message("-- ARCHITECTURE: ${CMAKE_SYSTEM_PROCESSOR}")
- message("-- PLATFORM: ${IOS_PLATFORM}")
+ message(STATUS "CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT}")
+ message(STATUS "ARCHITECTURE: ${CMAKE_SYSTEM_PROCESSOR}")
+ message(STATUS "PLATFORM: ${IOS_PLATFORM}")
else()
if(${MAC_ARCH} STREQUAL "x86_64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch x86_64")
@@ -99,18 +100,18 @@ if(APPLE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch x86_64 -arch arm64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch x86_64 -arch arm64")
endif()
- message("-- MAC_ARCH: ${MAC_ARCH}")
+ message(STATUS "MAC_ARCH: ${MAC_ARCH}")
endif()
endif()
-message("-- CMAKE_SYSTEM_INFO_FILE: ${CMAKE_SYSTEM_INFO_FILE}")
-message("-- CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
-message("-- CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
-message("-- CMAKE_SYSTEM: ${CMAKE_SYSTEM}")
-message("-- CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}")
-message("-- CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
-message("-- TARGET_ARCH: ${TARGET_ARCH}")
-message("-- CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
+message(STATUS "CMAKE_SYSTEM_INFO_FILE: ${CMAKE_SYSTEM_INFO_FILE}")
+message(STATUS "CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
+message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
+message(STATUS "CMAKE_SYSTEM: ${CMAKE_SYSTEM}")
+message(STATUS "CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}")
+message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+message(STATUS "TARGET_ARCH: ${TARGET_ARCH}")
+message(STATUS "CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
include(tools/ParseOsRelease.cmake)
@@ -126,15 +127,15 @@ endif()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
# Using GCC with -s and -Wl linker flags
- set(REL_FLAGS "-s -Wl,--gc-sections -Os ${WARN_FLAGS} -ffunction-sections -fdata-sections -fmerge-all-constants -ffast-math -fno-finite-math-only")
+ set(REL_FLAGS "-s -Wl,--gc-sections -Os ${WARN_FLAGS} -ffunction-sections -fdata-sections -fmerge-all-constants")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set(REL_FLAGS "${WARN_FLAGS}")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
# AppleClang does not support -ffunction-sections and -fdata-sections with the -fembed-bitcode and -fembed-bitcode-marker
- set(REL_FLAGS "-Os ${WARN_FLAGS} -fmerge-all-constants -ffast-math -fno-finite-math-only")
+ set(REL_FLAGS "-Os ${WARN_FLAGS} -fmerge-all-constants")
else()
# Using clang - strip unsupported GCC options
- set(REL_FLAGS "-Os ${WARN_FLAGS} -ffunction-sections -fmerge-all-constants -ffast-math -fno-finite-math-only")
+ set(REL_FLAGS "-Os ${WARN_FLAGS} -ffunction-sections -fmerge-all-constants")
endif()
## Uncomment this to reduce the volume of note warnings on RPi4 w/gcc-8 Ref. https://gcc.gnu.org/ml/gcc/2017-05/msg00073.html
@@ -147,15 +148,16 @@ set(DBG_FLAGS "-ggdb -gdwarf-2 -O0 ${WARN_FLAGS} -fno-builtin-malloc -fno-built
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
#TODO: -fno-rtti
- message("Building Release ...")
+ message(STATUS "Building Release ...")
set(CMAKE_C_FLAGS "$ENV{CFLAGS} ${CMAKE_C_FLAGS} -std=c11 ${REL_FLAGS}")
- set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS} -std=c++11 ${REL_FLAGS}")
+ # C++ standard is set via CMAKE_CXX_STANDARD above; do not override here.
+ set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS} ${REL_FLAGS}")
else()
set(USE_TCMALLOC 1)
- message("Building Debug ...")
+ message(STATUS "Building Debug ...")
include(tools/FindTcmalloc.cmake)
set(CMAKE_C_FLAGS "$ENV{CFLAGS} ${CMAKE_C_FLAGS} -std=c11 ${DBG_FLAGS}")
- set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS} -std=c++11 ${DBG_FLAGS}")
+ set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS} ${DBG_FLAGS}")
endif()
#Remove /Zi for Win32 debug compiler issue
@@ -193,7 +195,7 @@ endif()
set(PAL_IMPLEMENTATION ${DEFAULT_PAL_IMPLEMENTATION})
-message(STATUS "-- PAL implementation: ${PAL_IMPLEMENTATION}")
+message(STATUS "PAL implementation: ${PAL_IMPLEMENTATION}")
string(TOUPPER ${PAL_IMPLEMENTATION} PAL_IMPLEMENTATION_UPPER)
add_definitions(-DMATSDK_PAL_${PAL_IMPLEMENTATION_UPPER}=1)
@@ -225,7 +227,7 @@ add_definitions(-DNOMINMAX)
set(SDK_VERSION_PREFIX "EVT")
add_definitions("-DMATSDK_VERSION_PREFIX=\"${SDK_VERSION_PREFIX}\"")
-set(MATSDK_API_VERSION "3.4")
+set(MATSDK_API_VERSION "3.10")
string(TIMESTAMP DAYNUMBER "%j")
string(REGEX REPLACE "^00" "" DAYNUMBER ${DAYNUMBER})
string(REGEX REPLACE "^0" "" DAYNUMBER ${DAYNUMBER})
@@ -241,7 +243,7 @@ else()
set(MATSDK_BUILD_VERSION ${MATSDK_API_VERSION}.${DAYNUMBER}.0)
endif()
-message(STATUS "-- SDK version: ${SDK_VERSION_PREFIX}-${MATSDK_BUILD_VERSION}")
+message(STATUS "SDK version: ${SDK_VERSION_PREFIX}-${MATSDK_BUILD_VERSION}")
################################################################################################
# HTTP stack section
@@ -289,9 +291,9 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
endif()
if(BUILD_UNIT_TESTS OR BUILD_FUNC_TESTS)
- message("Adding gtest")
+ message(STATUS "Adding gtest")
add_library(gtest STATIC IMPORTED GLOBAL)
- message("Adding gmock")
+ message(STATUS "Adding gmock")
add_library(gmock STATIC IMPORTED GLOBAL)
endif()
@@ -323,7 +325,7 @@ if(BUILD_LIBRARY)
endif()
if(BUILD_UNIT_TESTS OR BUILD_FUNC_TESTS)
- message("Building tests")
+ message(STATUS "Building tests")
enable_testing()
add_subdirectory(tests)
endif()
diff --git a/Solutions/Clienttelemetry/Clienttelemetry.vcxitems b/Solutions/Clienttelemetry/Clienttelemetry.vcxitems
index 4ed829608..065ca3118 100644
--- a/Solutions/Clienttelemetry/Clienttelemetry.vcxitems
+++ b/Solutions/Clienttelemetry/Clienttelemetry.vcxitems
@@ -87,7 +87,6 @@
-
@@ -116,7 +115,6 @@
-
@@ -159,7 +157,6 @@
-
diff --git a/Solutions/Clienttelemetry/Clienttelemetry.vcxitems.filters b/Solutions/Clienttelemetry/Clienttelemetry.vcxitems.filters
index 87a11c450..376e1dfba 100644
--- a/Solutions/Clienttelemetry/Clienttelemetry.vcxitems.filters
+++ b/Solutions/Clienttelemetry/Clienttelemetry.vcxitems.filters
@@ -72,7 +72,6 @@
-
@@ -101,7 +100,6 @@
-
@@ -124,8 +122,6 @@
-
-
@@ -146,7 +142,6 @@
-
diff --git a/Solutions/MSTelemetrySDK.sln b/Solutions/MSTelemetrySDK.sln
index 98af6ec6d..8e83ec54a 100644
--- a/Solutions/MSTelemetrySDK.sln
+++ b/Solutions/MSTelemetrySDK.sln
@@ -29,7 +29,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest", "..\tests\googletes
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite-uwp", "..\sqliteUWP\sqlite-uwp.vcxproj", "{6883A688-89F5-424A-9BFA-50D42F691B29}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\zlib\contrib\vstudio\vc14\zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\third_party\Solutions\zlib\vc14\zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PAL", "PAL", "{34B3E59D-E740-4C23-ACEE-E94C80E83A18}"
EndProject
diff --git a/Solutions/before.targets b/Solutions/before.targets
index 63a526c90..9145f2d4d 100644
--- a/Solutions/before.targets
+++ b/Solutions/before.targets
@@ -3,12 +3,12 @@
$(SolutionDir)\..\third_party\krabsetw\krabs;$(CustomIncludePath)
- v141
- v142
- v143
-
+
+
+ v143
+ v142
+ v141
v141
- $(PlatformToolset)
$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))
$(LatestTargetPlatformVersion)
diff --git a/Solutions/build.MIP.props b/Solutions/build.MIP.props
index 9bd6e6d91..a72841ce5 100644
--- a/Solutions/build.MIP.props
+++ b/Solutions/build.MIP.props
@@ -1,20 +1,24 @@
-
-
-
-
- %(PreprocessorDefinitions);CONFIG_CUSTOM_H="config-MIP.h";MATSDK_SHARED_LIB=1;
-
-
- ucrtbased.dll; %(DelayLoadDLLs)
-
-
-
- true
- v141
- 14.1
-
-
- mip_ClientTelemetry
-
-
-
+
+
+
+
+ %(PreprocessorDefinitions);CONFIG_CUSTOM_H="config-MIP.h";MATSDK_SHARED_LIB=1;
+
+
+ ucrtbased.dll; %(DelayLoadDLLs)
+
+
+
+ true
+ $(DefaultPlatformToolset)
+
+ v143
+ v142
+ v141
+ v141
+
+
+ mip_ClientTelemetry
+
+
+
diff --git a/Solutions/net40/net40.vcxproj b/Solutions/net40/net40.vcxproj
index 56b97bc3e..ec55747a0 100644
--- a/Solutions/net40/net40.vcxproj
+++ b/Solutions/net40/net40.vcxproj
@@ -1,4 +1,4 @@
-
+
@@ -282,7 +282,7 @@
{2ebc7b3c-2af1-442c-9285-cab39bbb8c00}
-
+
{8fd826f8-3739-44e6-8cc8-997122e53b8d}
diff --git a/Solutions/win10-cs/win10-cs.vcxproj b/Solutions/win10-cs/win10-cs.vcxproj
index 3d557d277..a89d26bc4 100644
--- a/Solutions/win10-cs/win10-cs.vcxproj
+++ b/Solutions/win10-cs/win10-cs.vcxproj
@@ -401,7 +401,7 @@
-
+
{8FD826F8-3739-44E6-8CC8-997122E53B8D}
diff --git a/Solutions/win10-dll/win10-dll.vcxproj b/Solutions/win10-dll/win10-dll.vcxproj
index da6a93471..f53e396c7 100644
--- a/Solutions/win10-dll/win10-dll.vcxproj
+++ b/Solutions/win10-dll/win10-dll.vcxproj
@@ -1,4 +1,4 @@
-
+
@@ -415,7 +415,7 @@
-
+
{8FD826F8-3739-44E6-8CC8-997122E53B8D}
diff --git a/Solutions/win10-lib/win10-lib.vcxproj b/Solutions/win10-lib/win10-lib.vcxproj
index 68679a0fc..8307a0a9b 100644
--- a/Solutions/win10-lib/win10-lib.vcxproj
+++ b/Solutions/win10-lib/win10-lib.vcxproj
@@ -1,4 +1,4 @@
-
+
@@ -372,7 +372,7 @@
-
+
{8fd826f8-3739-44e6-8cc8-997122e53b8d}
diff --git a/Solutions/win32-dll/win32-dll.vcxproj b/Solutions/win32-dll/win32-dll.vcxproj
index 0f91d829c..026356130 100644
--- a/Solutions/win32-dll/win32-dll.vcxproj
+++ b/Solutions/win32-dll/win32-dll.vcxproj
@@ -327,7 +327,7 @@
-
+
{8fd826f8-3739-44e6-8cc8-997122e53b8d}
diff --git a/build-codeql-cpp.bat b/build-codeql-cpp.bat
new file mode 100644
index 000000000..c33de9c7b
--- /dev/null
+++ b/build-codeql-cpp.bat
@@ -0,0 +1,15 @@
+@echo off
+
+cd %~dp0
+@setlocal ENABLEEXTENSIONS
+
+call tools\gen-version.cmd
+if errorLevel 1 goto end
+
+git -c submodule."lib/modules".update=none submodule update --init --recursive --depth=1
+if errorLevel 1 goto end
+
+call tools\RunMsBuild.bat x64 Release "sqlite:Rebuild,zlib:Rebuild,sqlite-uwp:Rebuild,win32-lib:Rebuild,win10-lib:Rebuild"
+
+:end
+exit /b %errorLevel%
diff --git a/build-ios.sh b/build-ios.sh
index 1fc411a7c..d316fe2fa 100755
--- a/build-ios.sh
+++ b/build-ios.sh
@@ -56,7 +56,7 @@ if [ "$IOS_PLAT" == "iphoneos" ] || [ "$IOS_PLAT" == "iphonesimulator" ]; then
SYS_NAME="iOS"
DEPLOYMENT_TARGET="$IOS_DEPLOYMENT_TARGET"
if [ -z "$DEPLOYMENT_TARGET" ]; then
- DEPLOYMENT_TARGET="10.0"
+ DEPLOYMENT_TARGET="12.0"
FORCE_RESET_DEPLOYMENT_TARGET=YES
fi
elif [ "$IOS_PLAT" == "xros" ] || [ "$IOS_PLAT" == "xrsimulator" ]; then
diff --git a/cgmanifest.json b/cgmanifest.json
index b24f9900d..db83b24fa 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -6,7 +6,7 @@
"Type": "git",
"git": {
"RepositoryUrl": "https://github.com/nlohmann/json",
- "CommitHash": "9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03"
+ "CommitHash": "55f93686c01528224f448c19128836e7df245f72"
}
},
"DevelopmentDependency": false
@@ -26,10 +26,10 @@
"Type": "git",
"git": {
"RepositoryUrl": "https://github.com/madler/zlib",
- "CommitHash": "cacf7f1d4e3d44d871b605da3b647f07d718623f"
+ "CommitHash": "da607da739fa6047df13e66a2af6b8bec7c2a498"
}
},
"DevelopmentDependency": false
}
]
-}
\ No newline at end of file
+}
diff --git a/docs/List-of-OSS-Components.md b/docs/List-of-OSS-Components.md
index 094ea1472..a08423af3 100644
--- a/docs/List-of-OSS-Components.md
+++ b/docs/List-of-OSS-Components.md
@@ -22,7 +22,7 @@ The SDK provides an option to use a secure version of the traditional `memset` f
JSON for Modern C++.
-SDK maintains its own snapshot of the mainline `nlohmann/json` header-only library [here](../lib/include/mat/json.hpp).
+SDK maintains its own snapshot of the mainline `nlohmann/json` header-only library [here](../nlohmann/json.hpp).
## [libcurl](https://curl.haxx.se/libcurl/)
@@ -38,12 +38,6 @@ Google's C++ test framework. Used only for tests and not included in products.
Google's C++ benchmarking framework. Used only for tests and not included in products.
-## [Tony Million Reachability Framework](https://github.com/tonymillion/Reachability)
-
-Reachability is a drop-in replacement for Apple's Reachability class. It is ARC-compatible, and it uses the new GCD methods to notify of network interface changes.
-SDK maintains its own snapshot of the mainline `tonymillion/Reachability` [here](../third_party/Reachability). This code is not used nor included in the build of non-Apple OS.
-Please note if customer product is adding dependency to this component, they should ensure it meets their product security and licensing requirements.
-
## SHA-1 by Steve Reid
Classic implementation of SHA-1 (Public Domain).
diff --git a/examples/cpp/EventSender/EventSender.vcxproj b/examples/cpp/EventSender/EventSender.vcxproj
index b55221e14..50332eda6 100644
--- a/examples/cpp/EventSender/EventSender.vcxproj
+++ b/examples/cpp/EventSender/EventSender.vcxproj
@@ -200,13 +200,13 @@
-
+
{1DC6B38A-B390-34CE-907F-4958807A3D42}
-
+
{2ebc7b3c-2af1-442c-9285-cab39bbb8c00}
-
+
{8fd826f8-3739-44e6-8cc8-997122e53b8d}
diff --git a/examples/cpp/EventSender/EventSender.vcxproj.filters b/examples/cpp/EventSender/EventSender.vcxproj.filters
index f5b9ccda5..3eed0873f 100644
--- a/examples/cpp/EventSender/EventSender.vcxproj.filters
+++ b/examples/cpp/EventSender/EventSender.vcxproj.filters
@@ -19,99 +19,4 @@
Source Files
-
-
-
- Header Files
-
-
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
\ No newline at end of file
diff --git a/examples/cpp/SampleCpp/SampleCpp.vcxproj b/examples/cpp/SampleCpp/SampleCpp.vcxproj
index 500d966f6..a8548808f 100644
--- a/examples/cpp/SampleCpp/SampleCpp.vcxproj
+++ b/examples/cpp/SampleCpp/SampleCpp.vcxproj
@@ -1080,7 +1080,6 @@
-
@@ -1093,13 +1092,13 @@
-
+
{1DC6B38A-B390-34CE-907F-4958807A3D42}
-
+
{2ebc7b3c-2af1-442c-9285-cab39bbb8c00}
-
+
{8fd826f8-3739-44e6-8cc8-997122e53b8d}
diff --git a/examples/cpp/SampleCpp/SampleCpp.vcxproj.filters b/examples/cpp/SampleCpp/SampleCpp.vcxproj.filters
index 9a605a027..ae87cc1f8 100644
--- a/examples/cpp/SampleCpp/SampleCpp.vcxproj.filters
+++ b/examples/cpp/SampleCpp/SampleCpp.vcxproj.filters
@@ -15,9 +15,6 @@
-
- Header Files
-
Source Files
diff --git a/examples/cpp/SampleCppMini/SampleCppMini.vcxproj b/examples/cpp/SampleCppMini/SampleCppMini.vcxproj
index 88bca8d6d..424394f7e 100644
--- a/examples/cpp/SampleCppMini/SampleCppMini.vcxproj
+++ b/examples/cpp/SampleCppMini/SampleCppMini.vcxproj
@@ -1542,7 +1542,6 @@
-
diff --git a/examples/cpp/SampleCppMini/SampleCppMini.vcxproj.filters b/examples/cpp/SampleCppMini/SampleCppMini.vcxproj.filters
index ad3de7523..2df19ab39 100644
--- a/examples/cpp/SampleCppMini/SampleCppMini.vcxproj.filters
+++ b/examples/cpp/SampleCppMini/SampleCppMini.vcxproj.filters
@@ -14,11 +14,6 @@
rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
-
- Header Files
-
-
Source Files
diff --git a/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj b/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj
index 0f493a588..a55fbf088 100644
--- a/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj
+++ b/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj
@@ -281,7 +281,6 @@
-
diff --git a/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj.filters b/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj.filters
index 6aa826060..98247e7a6 100644
--- a/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj.filters
+++ b/examples/cpp/SampleCppUWP/SampleCppUWP.vcxproj.filters
@@ -46,6 +46,5 @@
-
\ No newline at end of file
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 4ebe7ddb0..7321a6de5 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -1,7 +1,7 @@
# Honor visibility properties for all target types
cmake_policy(SET CMP0063 NEW)
-include_directories( . ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include/public ${CMAKE_CURRENT_SOURCE_DIR}/include/public ${CMAKE_CURRENT_SOURCE_DIR}/include/mat ${CMAKE_CURRENT_SOURCE_DIR}/pal ${CMAKE_CURRENT_SOURCE_DIR}/utils ${CMAKE_CURRENT_SOURCE_DIR}/modules/exp ${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer ${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard ${CMAKE_CURRENT_SOURCE_DIR}/modules/liveeventinspector ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/Reachability ${CMAKE_CURRENT_SOURCE_DIR}/modules/cds ${CMAKE_CURRENT_SOURCE_DIR}/modules/signals ${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer /usr/local/include )
+include_directories( . ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include/public ${CMAKE_CURRENT_SOURCE_DIR}/include/mat ${CMAKE_CURRENT_SOURCE_DIR}/pal ${CMAKE_CURRENT_SOURCE_DIR}/utils ${CMAKE_CURRENT_SOURCE_DIR}/modules/exp ${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer ${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard ${CMAKE_CURRENT_SOURCE_DIR}/modules/liveeventinspector ${CMAKE_CURRENT_SOURCE_DIR}/modules/cds ${CMAKE_CURRENT_SOURCE_DIR}/modules/signals ${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer /usr/local/include )
set(SRCS decorators/BaseDecorator.cpp
packager/BondSplicer.cpp
@@ -60,7 +60,7 @@ if(BUILD_AZMON)
include(modules/azmon/CMakeLists.txt OPTIONAL)
endif()
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/exp/)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/exp/")
list(APPEND SRCS
modules/exp/afd/afdclient/AFDClientUtils.cpp
modules/exp/afd/afdclient/AFDClient.cpp
@@ -74,14 +74,14 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/exp/)
)
endif()
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer/)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer/")
list(APPEND SRCS
modules/dataviewer/DefaultDataViewer.cpp
modules/dataviewer/OnDisableNotificationCollection.cpp
)
endif()
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard/ AND BUILD_PRIVACYGUARD)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard/" AND BUILD_PRIVACYGUARD)
list(APPEND SRCS
modules/privacyguard/PrivacyGuard.cpp
modules/privacyguard/RegisteredFileTypes.cpp
@@ -89,14 +89,14 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard/ AND BUILD_PRIVACYGUA
)
endif()
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/liveeventinspector/ AND BUILD_LIVEEVENTINSPECTOR)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/liveeventinspector/" AND BUILD_LIVEEVENTINSPECTOR)
list(APPEND SRCS
modules/liveeventinspector/LiveEventInspector.cpp
modules/liveeventinspector/LiveEventInspector.hpp
)
endif()
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/cds/ AND BUILD_CDS)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/cds/" AND BUILD_CDS)
add_definitions(-DHAVE_MAT_CDS)
list(APPEND SRCS
modules/cds/CdsFactory.hpp
@@ -104,14 +104,14 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/cds/ AND BUILD_CDS)
)
endif()
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/signals/ AND BUILD_SIGNALS)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/signals/" AND BUILD_SIGNALS)
list(APPEND SRCS
modules/signals/Signals.cpp
modules/signals/SignalsEncoder.cpp
)
endif()
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer/ AND BUILD_SANITIZER)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer/" AND BUILD_SANITIZER)
list(APPEND SRCS
modules/sanitizer/detectors/EmailAddressDetector.cpp
modules/sanitizer/detectors/JwtDetector.cpp
@@ -170,8 +170,6 @@ if(PAL_IMPLEMENTATION STREQUAL "CPP11")
list(APPEND SRCS
pal/posix/NetworkInformationImpl.mm
- # TODO: this unit below needs to be deprecated and removed
- ../third_party/Reachability/ODWReachability.m
)
else()
list(APPEND SRCS
@@ -181,7 +179,7 @@ if(PAL_IMPLEMENTATION STREQUAL "CPP11")
)
endif()
if(APPLE AND BUILD_OBJC_WRAPPER)
- message("Include ObjC Wrappers")
+ message(STATUS "Include ObjC Wrappers")
list(APPEND SRCS
../wrappers/obj-c/ODWLogger.mm
../wrappers/obj-c/ODWLogManager.mm
@@ -189,19 +187,19 @@ if(PAL_IMPLEMENTATION STREQUAL "CPP11")
../wrappers/obj-c/ODWLogConfiguration.mm
../wrappers/obj-c/ODWSemanticContext.mm
)
- if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer/)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer/")
list(APPEND SRCS
../wrappers/obj-c/ODWDiagnosticDataViewer.mm
)
endif()
- if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard/ AND BUILD_PRIVACYGUARD)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard/" AND BUILD_PRIVACYGUARD)
list(APPEND SRCS
../wrappers/obj-c/ODWCommonDataContext.mm
../wrappers/obj-c/ODWPrivacyGuard.mm
../wrappers/obj-c/ODWPrivacyGuardInitConfig.mm
)
endif()
- if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer/ AND BUILD_SANITIZER)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer/" AND BUILD_SANITIZER)
list(APPEND SRCS
../wrappers/obj-c/ODWSanitizerInitConfig.mm
../wrappers/obj-c/ODWSanitizer.mm
@@ -210,7 +208,7 @@ if(PAL_IMPLEMENTATION STREQUAL "CPP11")
endif()
if(APPLE AND BUILD_SWIFT_WRAPPER)
- message("Building Swift Wrappers")
+ message(STATUS "Building Swift Wrappers")
# Run swift build for the Swift Wrappers Package
string(TOLOWER ${CMAKE_BUILD_TYPE} LOWER_BUILD_TYPE)
execute_process(
@@ -222,9 +220,9 @@ if(PAL_IMPLEMENTATION STREQUAL "CPP11")
)
if(SWIFT_BUILD_RESULT EQUAL 0)
- message("Swift Wrappers build succeeded!")
+ message(STATUS "Swift Wrappers build succeeded!")
else()
- message(FATAL_ERROR, "Swift build failed with error code: ${SWIFT_BUILD_RESULT}")
+ message(FATAL_ERROR "Swift build failed with error code: ${SWIFT_BUILD_RESULT}")
endif()
endif()
@@ -247,7 +245,7 @@ remove_definitions(-D_MBCS)
)
# UTC module
- if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/utc)
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/utc")
list(APPEND SRCS
modules/utc/desktop/UtcHelpers.cpp
modules/utc/UtcTelemetrySystem.cpp
@@ -259,7 +257,7 @@ else()
endif()
# Filtering module
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/filter)
+if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/filter")
list(APPEND SRCS
modules/filter/CompliantByDefaultEventFilterModule.cpp
modules/filter/CompliantByDefaultFilterApi.cpp
@@ -278,7 +276,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
endif()
if(BUILD_SHARED_LIBS STREQUAL "ON")
- message("-- Building shared SDK library")
+ message(STATUS "Building shared SDK library")
# include(FindCURL)
# find_package(CURL REQUIRED)
@@ -313,7 +311,7 @@ if(BUILD_SHARED_LIBS STREQUAL "ON")
# target_link_libraries(mat PUBLIC libsqlite3 libcurl.a libz.a libssl.a libcrypto.a "${SQLITE_LIBRARY}" "${CMAKE_THREAD_LIBS_INIT}" "${CMAKE_DL_LIBS}" )
install(TARGETS mat EXPORT mat LIBRARY DESTINATION ${INSTALL_LIB_DIR})
else()
- message("-- Building static SDK library")
+ message(STATUS "Building static SDK library")
add_library(mat STATIC ${SRCS})
if(LINK_STATIC_DEPENDS)
if(PAL_IMPLEMENTATION STREQUAL "WIN32")
@@ -336,10 +334,4 @@ else()
install(TARGETS mat EXPORT mat ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
endif()
-message("-- Library will be installed to ${INSTALL_LIB_DIR}")
-
-#if(PAL_IMPLEMENTATION STREQUAL "CPP11")
-# #target_link_libraries(mat PUBLIC libcurl.a libz.a libssl.a libcrypto.a "${SQLITE_LIBRARY}" "${CMAKE_THREAD_LIBS_INIT}" "${CMAKE_DL_LIBS}" )
-# #target_link_libraries(mat PUBLIC libsqlite3.a libz.a ${LIBS} "${CMAKE_THREAD_LIBS_INIT}" "${CMAKE_DL_LIBS}" )
-#endif()
-
+message(STATUS "Library will be installed to ${INSTALL_LIB_DIR}")
diff --git a/lib/http/HttpClient_Curl.hpp b/lib/http/HttpClient_Curl.hpp
index 972cc4fec..c7a5bdecb 100644
--- a/lib/http/HttpClient_Curl.hpp
+++ b/lib/http/HttpClient_Curl.hpp
@@ -109,6 +109,7 @@ class CurlHttpOperation {
m_callback(callback),
m_method(method),
m_url(url),
+ m_sslCaInfo(sslCaInfo),
// Local vars
requestHeaders(requestHeaders),
@@ -140,8 +141,8 @@ class CurlHttpOperation {
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, sslVerify ? 1L : 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, sslVerify ? 2L : 0L);
- if (!sslCaInfo.empty()) {
- curl_easy_setopt(curl, CURLOPT_CAINFO, sslCaInfo.c_str());
+ if (!m_sslCaInfo.empty()) {
+ curl_easy_setopt(curl, CURLOPT_CAINFO, m_sslCaInfo.c_str());
}
// HTTP/2 please, fallback to HTTP/1.1 if not supported
curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
@@ -434,6 +435,7 @@ class CurlHttpOperation {
// Request values
std::string m_method;
std::string m_url;
+ std::string m_sslCaInfo;
const std::map& requestHeaders;
const std::vector& requestBody;
struct curl_slist *m_headersChunk = nullptr;
@@ -534,4 +536,3 @@ class CurlHttpOperation {
#endif // HAVE_MAT_DEFAULT_HTTP_CLIENT
#endif // HTTPCLIENTCURL_HPP
-
diff --git a/lib/include/mat/json.hpp b/lib/include/mat/json.hpp
deleted file mode 100644
index 901c90e2f..000000000
--- a/lib/include/mat/json.hpp
+++ /dev/null
@@ -1,24769 +0,0 @@
-// __ _____ _____ _____
-// __| | __| | | | JSON for Modern C++
-// | | |__ | | | | | | version 3.11.3
-// |_____|_____|_____|_|___| https://github.com/nlohmann/json
-//
-// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann
-// SPDX-License-Identifier: MIT
-
-/****************************************************************************\
- * Note on documentation: The source files contain links to the online *
- * documentation of the public API at https://json.nlohmann.me. This URL *
- * contains the most recent documentation and should also be applicable to *
- * previous versions; documentation for deprecated functions is not *
- * removed, but marked deprecated. See "Generate documentation" section in *
- * file docs/README.md. *
-\****************************************************************************/
-
-#ifndef INCLUDE_NLOHMANN_JSON_HPP_
-#define INCLUDE_NLOHMANN_JSON_HPP_
-
-#ifdef _WIN32
-#undef max
-#undef min
-#endif
-
-#include // all_of, find, for_each
-#include // nullptr_t, ptrdiff_t, size_t
-#include // hash, less
-#include // initializer_list
-#ifndef JSON_NO_IO
-#include // istream, ostream
-#endif // JSON_NO_IO
-#include // random_access_iterator_tag
-#include // unique_ptr
-#include // string, stoi, to_string
-#include // declval, forward, move, pair, swap
-#include // vector
-
-// #include
-// __ _____ _____ _____
-// __| | __| | | | JSON for Modern C++
-// | | |__ | | | | | | version 3.11.3
-// |_____|_____|_____|_|___| https://github.com/nlohmann/json
-//
-// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann
-// SPDX-License-Identifier: MIT
-
-
-
-#include
-
-// #include
-// __ _____ _____ _____
-// __| | __| | | | JSON for Modern C++
-// | | |__ | | | | | | version 3.11.3
-// |_____|_____|_____|_|___| https://github.com/nlohmann/json
-//
-// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann
-// SPDX-License-Identifier: MIT
-
-
-
-// This file contains all macro definitions affecting or depending on the ABI
-
-#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
-#if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
-#if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3
-#warning "Already included a different version of the library!"
-#endif
-#endif
-#endif
-
-#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
-#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum)
-#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum)
-
-#ifndef JSON_DIAGNOSTICS
-#define JSON_DIAGNOSTICS 0
-#endif
-
-#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
-#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
-#endif
-
-#if JSON_DIAGNOSTICS
-#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
-#else
-#define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
-#endif
-
-#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
-#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
-#else
-#define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
-#endif
-
-#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
-#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
-#endif
-
-// Construct the namespace ABI tags component
-#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
-#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
- NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
-
-#define NLOHMANN_JSON_ABI_TAGS \
- NLOHMANN_JSON_ABI_TAGS_CONCAT( \
- NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
- NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
-
-// Construct the namespace version component
-#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
- _v ## major ## _ ## minor ## _ ## patch
-#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
- NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
-
-#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
-#define NLOHMANN_JSON_NAMESPACE_VERSION
-#else
-#define NLOHMANN_JSON_NAMESPACE_VERSION \
- NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
- NLOHMANN_JSON_VERSION_MINOR, \
- NLOHMANN_JSON_VERSION_PATCH)
-#endif
-
-// Combine namespace components
-#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
-#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
- NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
-
-#ifndef NLOHMANN_JSON_NAMESPACE
-#define NLOHMANN_JSON_NAMESPACE \
- nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
- NLOHMANN_JSON_ABI_TAGS, \
- NLOHMANN_JSON_NAMESPACE_VERSION)
-#endif
-
-#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
-#define NLOHMANN_JSON_NAMESPACE_BEGIN \
- namespace nlohmann \
- { \
- inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
- NLOHMANN_JSON_ABI_TAGS, \
- NLOHMANN_JSON_NAMESPACE_VERSION) \
- {
-#endif
-
-#ifndef NLOHMANN_JSON_NAMESPACE_END
-#define NLOHMANN_JSON_NAMESPACE_END \
- } /* namespace (inline namespace) NOLINT(readability/namespace) */ \
- } // namespace nlohmann
-#endif
-
-// #include
-// __ _____ _____ _____
-// __| | __| | | | JSON for Modern C++
-// | | |__ | | | | | | version 3.11.3
-// |_____|_____|_____|_|___| https://github.com/nlohmann/json
-//
-// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann
-// SPDX-License-Identifier: MIT
-
-
-
-#include // transform
-#include // array
-#include // forward_list
-#include // inserter, front_inserter, end
-#include