diff --git a/scripts/validation/opcua-server-lifecycle-linux/.gitignore b/scripts/validation/opcua-server-lifecycle-linux/.gitignore new file mode 100644 index 00000000..c18dd8d8 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/scripts/validation/opcua-server-lifecycle-linux/README.md b/scripts/validation/opcua-server-lifecycle-linux/README.md new file mode 100644 index 00000000..7566e2f4 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/README.md @@ -0,0 +1,107 @@ +# Linux SDK 2 server lifecycle soak + +This launcher publishes and runs the existing +`Sdk2LifecycleSoakTests.Repeated_lifecycles_return_resources_to_a_steady_baseline` +without copying, rewriting, suppressing or changing its test logic. It imports the +canonical descriptor fixes from `642aefe3`: physical symlink resolution, path +separator boundaries, open/closed PKI positive controls, and bounded probe process +and stream cleanup. The same test still owns the production server, node manager, +sessions, subscriptions, continuation points, revocation, stalled TCP proxy, +surgical changes/rebuild and same-PKI restarts. + +A diagnostic run: + +```sh +python3 scripts/validation/opcua-server-lifecycle-linux/run.py \ + --duration 90 --output /tmp/otopcua-server-linux-diagnostic-unique +``` + +The coordinator must launch and own a full run in its persistent execution +session. A diagnostic cannot satisfy the full gate: + +```sh +python3 scripts/validation/opcua-server-lifecycle-linux/run.py \ + --full --duration 7200 --output /tmp/otopcua-server-linux-full-unique +``` + +An already published artifact can be reused with +`--published-app /absolute/path/to/app`. Its parent must contain the launcher's +`publish-receipt.json`; the test source, apphost and test assembly hashes must +match. The recorded diagnostic artifact can be reused with: + +```sh +python3 /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/scripts/validation/opcua-server-lifecycle-linux/run.py \ + --full --duration 7200 \ + --published-app /tmp/opcua2-server-linux-diagnostic-20261110a/app \ + --output /tmp/opcua2-server-linux-full-20261110 +``` + +The output directory must be fresh. It is mode 0700 and can contain task-owned +private PKI under `task/tmp` during a run or after a failure. Never commit the +entire output. The existing successful test removes its own stores. Only selected +redacted receipt/log/JSONL/TRX files belong under this directory's `evidence/`. + +The exact publish command uses the host .NET SDK (recorded as 10.0.403 for the +verified diagnostic), RID `linux-arm64`, self-contained runtime 10.0.14, explicit +`UseAppHost=true`, `PublishSingleFile=false`, `PublishTrimmed=false`, one MSBuild +node, and an external task-owned artifacts directory. All runtime packs were +already cached. No production or test source is patched during publish. The +launcher requires an empty production/package source diff against `7b353d7b` and +records the actual published revision separately from the launcher revision. +That is source equivalence, not a claim that separately built Linux and macOS +assemblies have identical hashes. The full publish file hashes, exact test source +hash, runtimeconfig and SDK dependency versions are retained. + +The cached official SDK image +`mcr.microsoft.com/dotnet/sdk:10.0.103-noble` is resolved to its immutable local +image ID and must be Linux arm64. The container has `--network none`, no host +ports and only a read-only application mount plus its fresh task volume. +`TMPDIR=/task/tmp` and `XDG_DATA_HOME=/task/data` isolate temporary files and PKI; +`HOME` is not changed. Nothing targets fleet instances, production stores or +other task fixtures. + +The image's VSTest runner first executes exactly the two existing descriptor +controls. A separate invocation executes exactly one lifecycle test. Both TRX +files must contain the expected exact executed/passed counts, no skips and no +failure/error/abort/timeout. The published xUnit v3 application must be ELF64 +AArch64. During the live test, `/proc//exe` must point to the published +application and the mapped CLR must be `/app/libcoreclr.so`, proving that the +out-of-process test host is the self-contained Linux publish rather than an +accidentally copied macOS host. + +The original test resource limits remain **64 MiB retained managed growth, +128 MiB RSS growth, and 32 additional FDs**, using its original third-cycle +baseline and original managed trend check. Quiescent sessions, subscriptions, +items, browse/history points, monitored-node/live-item counts and PKI FDs must be +zero. Cached certificate stores and address-space shape must remain at baseline. +The original exact-tag read-only diagnostics and manager/store disposal assertions +are unchanged. The wrapper verifies the same limits in the header and requires +one start, one completion, no failed row, one active/stall/quiescent row per +completed cycle and one restart per four cycles. Full mode requires both requested +and actual monotonic observation time of at least 7200 seconds and a true final +`satisfiesTwoHourDuration`. The outer container deadline is duration plus 300 +seconds. Its own container is forcibly removed on timeout/interruption. + +Artifacts include `publish.log`, `publish-receipt.json`, `source.json`, +`artifact-manifest.json`, `command.json`, `result.json`, `container.log`, and +`task/{soak.jsonl,soak.log,descriptor-controls.log,linux-precheck.txt, +linux-runtime-process.txt,container-dotnet-info.txt,results/*.trx}`. A reused +artifact keeps its original publish receipt; `source.json` identifies both source +revisions. `result.json` is passing only after TRX and completion validation. + +This supplies supported Linux runtime evidence. It does not resolve the observed +macOS RSS failure or establish its cause. A short Linux pass is not a two-hour +pass, and a later Linux pass alone cannot explain away the macOS failure. This +lane makes no Windows, AVEVA, interoperability or complete G4 performance claim. + +The final checked-in diagnostic completed **91.602 seconds**, 25 cycles, six +actual server restarts, 25 recovered network stalls, and one passing lifecycle +TRX result. Both descriptor tests passed: the symlink control observed +`before=0, opened=1, closed=0`, excluded the sibling path, and the timed-out probe +was reaped in 267 ms. All quiescent logical-resource counts and PKI FDs were zero. +Third-cycle to final deltas were **−145,080 managed bytes, +53,739,520 RSS bytes, +and +2 FDs**, within the unchanged diagnostic limits. These short observations do +not establish a two-hour resource trend. The full Linux gate remains pending. +CLI rejection of `--full --duration 90`, rejection of a short completion as a full +run, and rejection of the wrong TRX executed count were also verified. Selected +receipts are in `evidence/2026-11-10-diagnostic/`. diff --git a/scripts/validation/opcua-server-lifecycle-linux/container.sh b/scripts/validation/opcua-server-lifecycle-linux/container.sh new file mode 100755 index 00000000..ee4c057d --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/container.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# Task-owned Linux namespace only. Existing test logic and limits are unchanged. +set -euo pipefail +mkdir -p /task/tmp /task/data /task/results +export TMPDIR=/task/tmp +export XDG_DATA_HOME=/task/data +export OTOPCUA_SDK2_SOAK=1 +export OTOPCUA_SDK2_SOAK_OUTPUT=/task/soak.jsonl +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +export DOTNET_NOLOGO=1 +[[ $(uname -s) == Linux && $(uname -m) == aarch64 ]] +[[ -d /proc/self/fd ]] +printf 'kernel=%s machine=%s tmp=%s procfs=yes\n' "$(uname -s)" "$(uname -m)" "$(readlink -f "$TMPDIR")" > /task/linux-precheck.txt +dotnet --info > /task/container-dotnet-info.txt +dotnet vstest /app/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.dll \ + --TestCaseFilter:'FullyQualifiedName~Sdk2LifecycleSoakTests.Descriptor_probe_' \ + --ResultsDirectory:/task/results '--Logger:trx;LogFileName=descriptor-controls.trx' > /task/descriptor-controls.log 2>&1 +# VSTest launches the published xUnit v3 self-contained Linux ELF apphost. +# A distinct invocation gives the soak its own otherwise idle test process. +dotnet vstest /app/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.dll \ + --TestCaseFilter:'FullyQualifiedName=ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.Sdk2LifecycleSoakTests.Repeated_lifecycles_return_resources_to_a_steady_baseline' \ + --ResultsDirectory:/task/results '--Logger:trx;LogFileName=soak.trx' > /task/soak.log 2>&1 & +vstest_pid=$! +observed=0 +for attempt in $(seq 1 600); do + if [[ -s /task/soak.jsonl ]]; then + test_pid=$(head -n 1 /task/soak.jsonl | sed -n 's/.*"processId":\([0-9]*\),.*/\1/p') + [[ -n "$test_pid" ]] + test_exe=$(readlink "/proc/$test_pid/exe") + [[ "$test_exe" == /app/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests ]] + printf 'testProcessId=%s\nactualExecutable=%s\n' "$test_pid" "$test_exe" > /task/linux-runtime-process.txt + awk '$6 ~ /\/(libcoreclr.so|libhostfxr.so|libhostpolicy.so|System.Private.CoreLib.dll)$/ {print $6}' "/proc/$test_pid/maps" | sort -u >> /task/linux-runtime-process.txt + grep -Fx /app/libcoreclr.so /task/linux-runtime-process.txt > /dev/null + observed=1 + break + fi + kill -0 "$vstest_pid" 2>/dev/null || break + sleep 0.1 +done +[[ "$observed" == 1 ]] +wait "$vstest_pid" diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/artifact-manifest.json b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/artifact-manifest.json new file mode 100644 index 00000000..6eb35c09 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/artifact-manifest.json @@ -0,0 +1,3407 @@ +[ + { + "name": "Akka.Cluster.Hosting.dll", + "bytes": 52736, + "sha256": "d9b44216b34fc9655c86c3e9d30422e47683969577e205a17096a9a706db768e" + }, + { + "name": "Akka.Cluster.Sharding.dll", + "bytes": 389120, + "sha256": "9f5b418e908a4d579858889af823f780a5e7ff6be2f27c24aa38309759d09423" + }, + { + "name": "Akka.Cluster.Tools.dll", + "bytes": 225280, + "sha256": "a819b0c3e73e08ea474936ad429763ec11681f43c090e2b92dbc1d37d7c94e35" + }, + { + "name": "Akka.Cluster.dll", + "bytes": 330752, + "sha256": "e64aee4dbd305f533c9eea995c9676c0ce7bc8e55a77437afd14b0cf8fe3c0a9" + }, + { + "name": "Akka.Coordination.dll", + "bytes": 14336, + "sha256": "2472a627de9cf9185b3a98860266b7751c173f859d3bd185b272d5f4078be26b" + }, + { + "name": "Akka.DependencyInjection.dll", + "bytes": 10752, + "sha256": "ebea19a2f75f2e275531fbd62be5499a5132563958ebccfc25a450979cfa0039" + }, + { + "name": "Akka.Discovery.dll", + "bytes": 27136, + "sha256": "8c1733537b6cedfb4e7234b86ae63a45cd204ad3c6bc8843f52a85643c507a89" + }, + { + "name": "Akka.DistributedData.LightningDB.dll", + "bytes": 14848, + "sha256": "56100ac684f6acef390b2e546d198899366f035aaa51bb64bc494ebaf2d85007" + }, + { + "name": "Akka.DistributedData.dll", + "bytes": 386048, + "sha256": "9ba2724f0cd49676338241b6249e3b9b95a5c50ddadea5e28adedf31b3ef9fc6" + }, + { + "name": "Akka.Hosting.dll", + "bytes": 64512, + "sha256": "937444c766e641d7c1f86e718e97a148587136a249f91c2986e1f77e2f8d9f92" + }, + { + "name": "Akka.Logger.Serilog.dll", + "bytes": 16896, + "sha256": "49068dc58456684f3c2804bb541223c3aa2dade07f4b1e9877b2e7e058d2056a" + }, + { + "name": "Akka.Persistence.Hosting.dll", + "bytes": 25600, + "sha256": "a9e840a8bc6d7c404e0c83ec5576fcaac3a848880c0ab2b0ed9f1bae33ec2076" + }, + { + "name": "Akka.Persistence.dll", + "bytes": 247296, + "sha256": "c11fc9b044bb927d764f85c0ca8a02c16e8084c05c5ecffd050869ed7810c390" + }, + { + "name": "Akka.Remote.Hosting.dll", + "bytes": 17408, + "sha256": "f0d2ca67e9affd0c68ef32dc859974fe415c00ec5a4710a8e06467542799ad6b" + }, + { + "name": "Akka.Remote.dll", + "bytes": 460288, + "sha256": "b1d27508442727938c4076561f6b4ee81cdd3caa0ef76a481cb45dbfc4c5a0fb" + }, + { + "name": "Akka.Streams.dll", + "bytes": 973824, + "sha256": "e3d9024ece608d6f8b2a15d15f211d50919ed983834fa85d9cc3c9be3c56eb73" + }, + { + "name": "Akka.dll", + "bytes": 944128, + "sha256": "b2d2b8422ba6759d315cbd07622e705fb69daf64e9425cda45f5605132303e34" + }, + { + "name": "Azure.Core.dll", + "bytes": 437304, + "sha256": "224d09cb39eae4d8c30272a0c49beb19d873c87347eae9487f0ddd859d752b56" + }, + { + "name": "Azure.Identity.dll", + "bytes": 356912, + "sha256": "af18f20be25b2895c912f3ba0a9f2901a82dda823edcad76e6a19eac9886a40f" + }, + { + "name": "BitFaster.Caching.dll", + "bytes": 195584, + "sha256": "a58275640773dc3ff06ceafad752fd399e4ed7cef93039354b7eb06a126590ff" + }, + { + "name": "DiffEngine.dll", + "bytes": 109568, + "sha256": "0c6b99a47c609a4263b80feaed95a357e30be3ad5a1cda79355663e407682aa7" + }, + { + "name": "DotNetty.Buffers.dll", + "bytes": 180256, + "sha256": "65f066d108192cefc6e44f18e2d92cf338be30056f4fad02d6b8ea692f81bd37" + }, + { + "name": "DotNetty.Codecs.dll", + "bytes": 143280, + "sha256": "809d9e582ce909356b34ef8d4f212adea5d5ca25e1492a31ccb81a6f9be23070" + }, + { + "name": "DotNetty.Common.dll", + "bytes": 152096, + "sha256": "7a375647446f11a5d5f5eddf72f0327b4b69956a91917100d0f4d8f120fa7962" + }, + { + "name": "DotNetty.Handlers.dll", + "bytes": 59936, + "sha256": "08ce96ee9108adda52adb87119c54fdb819806817867943987d77983c3f1a9c5" + }, + { + "name": "DotNetty.Transport.dll", + "bytes": 187824, + "sha256": "f393993cc027ec61f758b8832029b21f2efd8583807e0aa06af4df90d239eb09" + }, + { + "name": "EmptyFiles.dll", + "bytes": 75264, + "sha256": "d5b63e68b8966567f73df025b449e1a2e3b2306c8cec364fd240310c757b3adc" + }, + { + "name": "FASTER.core.dll", + "bytes": 515520, + "sha256": "318092fdd4eccb8e30ab04493a5ce3e827714df2721770af62ef81aea8bd21d8" + }, + { + "name": "Google.Protobuf.dll", + "bytes": 498328, + "sha256": "c2769d0bc587db846b99fefcd778a8ffbb7fbcb4a03d2fcd8ce9573c7ef7042a" + }, + { + "name": "Grpc.AspNetCore.Server.ClientFactory.dll", + "bytes": 31896, + "sha256": "7340bd5dccbe5298825df443d4971a90afd87388e381c008a90556e42c2c04d1" + }, + { + "name": "Grpc.AspNetCore.Server.dll", + "bytes": 168088, + "sha256": "f200b4cae34c51f4f607c684dd72107ad2487808673ae20960edacdf437ec9dd" + }, + { + "name": "Grpc.Core.Api.dll", + "bytes": 70296, + "sha256": "3535e79c38523d239303a33d420c8a856babdcc4d08a167d532decdcc5453951" + }, + { + "name": "Grpc.Net.Client.dll", + "bytes": 359576, + "sha256": "ad2dae77484dabaa9dade62035d761a0d1ec26394e8b600e80dff7b792c088e7" + }, + { + "name": "Grpc.Net.ClientFactory.dll", + "bytes": 54936, + "sha256": "9bf1e593838013238a56d5b4e4e2dd2e8c93589063eaf2a3b2f71e3d3219fd3d" + }, + { + "name": "Grpc.Net.Common.dll", + "bytes": 22168, + "sha256": "d91c6969c65943f22f8a6f67f832e763def7fcb2af0ce16862b3748fa06e0521" + }, + { + "name": "LightningDB.dll", + "bytes": 38400, + "sha256": "b0ebedf36fd19f1dedd7547e49c5a7b6e4a6b53015dde70699e4e69ae8f50406" + }, + { + "name": "MQTTnet.dll", + "bytes": 243624, + "sha256": "1bb34492a9018fec3f627458364dc6e46fef076a647df181403246da65f5bce2" + }, + { + "name": "Microsoft.ApplicationInsights.dll", + "bytes": 386080, + "sha256": "bf9a4b88c7f94267e1cc7ed0700c575d3eb3266ff25bcb76e4f40f1b0fba022d" + }, + { + "name": "Microsoft.AspNetCore.Antiforgery.dll", + "bytes": 121128, + "sha256": "5bf3a07b135de6de8251b9df75a5911817dd57c98af6ae5df36d16c0c1762ccd" + }, + { + "name": "Microsoft.AspNetCore.Authentication.Abstractions.dll", + "bytes": 61736, + "sha256": "82c4995a0e324a3ba610a01e446f83e54a4e1f79fa5fb9c64ed9fd036a366d97" + }, + { + "name": "Microsoft.AspNetCore.Authentication.BearerToken.dll", + "bytes": 68392, + "sha256": "9ceab08f49139517ae375bab9ef2becf3940b77beae65dd1ebb627dc128ba5b7" + }, + { + "name": "Microsoft.AspNetCore.Authentication.Cookies.dll", + "bytes": 116520, + "sha256": "e2128e7f9f53dd1e0500deb467c39e2fcae8853757b11abe2fc9548085386143" + }, + { + "name": "Microsoft.AspNetCore.Authentication.Core.dll", + "bytes": 117032, + "sha256": "47996ffefd2010bbe36aa355ac6060870cf4ff5ef33a493e7515041fbb6a12db" + }, + { + "name": "Microsoft.AspNetCore.Authentication.JwtBearer.dll", + "bytes": 52488, + "sha256": "2a2f99ce877c62a8c600c390ce1f15bb0cc2a92a973a9da60ddcf4bd60bdcb64" + }, + { + "name": "Microsoft.AspNetCore.Authentication.OAuth.dll", + "bytes": 101200, + "sha256": "8f437843fefb792b6ff0a79dcae5921eae370f8f9176e89d9761926602c479a5" + }, + { + "name": "Microsoft.AspNetCore.Authentication.dll", + "bytes": 157992, + "sha256": "2926077686122f1487cd2c90d516af0a05ba5e7b1f6e87f15deeba119b80b160" + }, + { + "name": "Microsoft.AspNetCore.Authorization.Policy.dll", + "bytes": 73512, + "sha256": "dd96ee7d385de5cfa5cd961905b27dd0d57a3c806ecf3456f410ab669115af20" + }, + { + "name": "Microsoft.AspNetCore.Authorization.dll", + "bytes": 122664, + "sha256": "11bdfd1de3e16e7ed2daf5c09c137cf6b94d12de6a2371251cc1d98545beb124" + }, + { + "name": "Microsoft.AspNetCore.Components.Authorization.dll", + "bytes": 57168, + "sha256": "b78efb1723abf519c1fead7d4f5b0f245f0d9eee043728225cc7aa67ac3d8e14" + }, + { + "name": "Microsoft.AspNetCore.Components.Endpoints.dll", + "bytes": 783144, + "sha256": "eaa2d755484d66086c3e8880bae90c261c04d011c294991eb23aa26d029fcb80" + }, + { + "name": "Microsoft.AspNetCore.Components.Forms.dll", + "bytes": 101160, + "sha256": "56695785b8b43af62be7976570b5450f1354129be8660f6299f7122d90549d89" + }, + { + "name": "Microsoft.AspNetCore.Components.Server.dll", + "bytes": 1030440, + "sha256": "7f90bfe0bab8b43a477a206e6d41b93cb7826a1da58af226cee01089b772e868" + }, + { + "name": "Microsoft.AspNetCore.Components.Web.dll", + "bytes": 470312, + "sha256": "4c8f8b586cf6712d754e3d9e5ebcd5d295343fb4811cf26e67337f69301aacec" + }, + { + "name": "Microsoft.AspNetCore.Components.dll", + "bytes": 1062184, + "sha256": "cb79e2016b6ce88d6f2c4bdda809abc14292de9b19021a72d9a5f58bd7c6dfd5" + }, + { + "name": "Microsoft.AspNetCore.Connections.Abstractions.dll", + "bytes": 66344, + "sha256": "576be4623e6b63386527e53bb8c4b11b4aec99f98899172b2b9b01d5410c87f2" + }, + { + "name": "Microsoft.AspNetCore.CookiePolicy.dll", + "bytes": 48936, + "sha256": "094e3931609e4d094e0830edda31df50e7e1a181cbd29a26df350590c617e67f" + }, + { + "name": "Microsoft.AspNetCore.Cors.dll", + "bytes": 91984, + "sha256": "39375cadb6babf5cb4dba92fc8e2b943d2a8dc860cba1df506af2fae886f0cb9" + }, + { + "name": "Microsoft.AspNetCore.Cryptography.Internal.dll", + "bytes": 105768, + "sha256": "2b5768428d2a60b1c1e8a407c10b6092359a6c62453c8e54c4464e8590b39701" + }, + { + "name": "Microsoft.AspNetCore.Cryptography.KeyDerivation.dll", + "bytes": 36136, + "sha256": "bf47d380b4c2756737178a794aebb7f1c48f39e07543d7d3edaac272bc82fd66" + }, + { + "name": "Microsoft.AspNetCore.DataProtection.Abstractions.dll", + "bytes": 41768, + "sha256": "82ec0c5e26ce6e43fd9940455db8cb0b76d28bc14e044e752cf267b62f8581a4" + }, + { + "name": "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.dll", + "bytes": 24888, + "sha256": "a768ee07664430adbbdf9a761ed0b691dbf52d67d2f1af833de606b851516394" + }, + { + "name": "Microsoft.AspNetCore.DataProtection.Extensions.dll", + "bytes": 38696, + "sha256": "1ac0e3631b5593a4a9aec55baf6081abea66bd69644f49d1f85b19a5e222edea" + }, + { + "name": "Microsoft.AspNetCore.DataProtection.dll", + "bytes": 502568, + "sha256": "4d1979c91b6e0d1280ce4b23a79b236884e9b15c2efe9291194e4e62305c24b2" + }, + { + "name": "Microsoft.AspNetCore.Diagnostics.Abstractions.dll", + "bytes": 22824, + "sha256": "cec9d4d5f7261e52247f80307dc0f4c82f4725a0cccee2792d07f156d366dcb1" + }, + { + "name": "Microsoft.AspNetCore.Diagnostics.HealthChecks.dll", + "bytes": 44840, + "sha256": "eeef98c85fe928251018b63915ec2d5b4df0504f287e04ccb7b80622b2cdfdb7" + }, + { + "name": "Microsoft.AspNetCore.Diagnostics.dll", + "bytes": 494928, + "sha256": "0a4fd373431bfe20f6bda6461664c7169740ad0fda7bd6479a7d3c5e4a9932e4" + }, + { + "name": "Microsoft.AspNetCore.HostFiltering.dll", + "bytes": 45392, + "sha256": "ffb9750e65d3ebf99767a039427992cd6ea0d935575b24bb42a8a7e42a940dfd" + }, + { + "name": "Microsoft.AspNetCore.Hosting.Abstractions.dll", + "bytes": 35664, + "sha256": "bb33e7779045de0cd83cee8c68bd5172f32f8a5f62f942b0cc5bcb9b3fe7b16d" + }, + { + "name": "Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", + "bytes": 19280, + "sha256": "3a3caa8ce09d7c56ac2f8b0a8dd2c8902d69351085bc948ff246d7d374a5ce20" + }, + { + "name": "Microsoft.AspNetCore.Hosting.dll", + "bytes": 528680, + "sha256": "fa16dd33f9325fd89e038480558e3df694f03b664b3e1d293ded2a99f21924b6" + }, + { + "name": "Microsoft.AspNetCore.Html.Abstractions.dll", + "bytes": 31528, + "sha256": "c65b2afce516e538e33d4ac978a2cae2b2dcc48f58152f0b95e18cd12914d8ce" + }, + { + "name": "Microsoft.AspNetCore.Http.Abstractions.dll", + "bytes": 361296, + "sha256": "288c5d1656f9cbb4820c21d3150feb9b9fc2064665f276c63bf832ff63306da1" + }, + { + "name": "Microsoft.AspNetCore.Http.Connections.Client.dll", + "bytes": 117008, + "sha256": "1ce2e273eab3c4ca003e65bfdf78318b3195f08385c814a02f10890bdd34d05f" + }, + { + "name": "Microsoft.AspNetCore.Http.Connections.Common.dll", + "bytes": 47440, + "sha256": "70828135ef30abb23edf92db33678c1e1e2e0eac29496f8c8c728876822225c4" + }, + { + "name": "Microsoft.AspNetCore.Http.Connections.dll", + "bytes": 343848, + "sha256": "b0eb705453b0c42ebea1fc673d0f45f4578e24411b2fdf2737860be94d944dfa" + }, + { + "name": "Microsoft.AspNetCore.Http.Extensions.dll", + "bytes": 828712, + "sha256": "9f993fe2e23ee2fa6bfce5e686322b4a55c700ff2b7143700c067df6733197ed" + }, + { + "name": "Microsoft.AspNetCore.Http.Features.dll", + "bytes": 67408, + "sha256": "f1f268dde9757a5fcd1c8fe59ed6cfc1cfa59814a9396462eda5573c9dd9817d" + }, + { + "name": "Microsoft.AspNetCore.Http.Results.dll", + "bytes": 304424, + "sha256": "ceb363c80b876a44253707800d852a0e3becd2f99132a545c91952f18f8c08c7" + }, + { + "name": "Microsoft.AspNetCore.Http.dll", + "bytes": 332584, + "sha256": "acd0ac0b6cb4f6b03bc13e32b0226e5b8fd6f9444b4b86fca0bc2469fb89e7cc" + }, + { + "name": "Microsoft.AspNetCore.HttpLogging.dll", + "bytes": 215376, + "sha256": "acd56360ba36a4d946900743e895942ca35d8bbd493d1d3134f71476ad4008f3" + }, + { + "name": "Microsoft.AspNetCore.HttpOverrides.dll", + "bytes": 81192, + "sha256": "2a951cf1e07d87e091df339f694e7025de64c36e37316678f7c042af201eca50" + }, + { + "name": "Microsoft.AspNetCore.HttpsPolicy.dll", + "bytes": 41768, + "sha256": "55c7aec6183b688ce99ac52d0bd322fd50a5c80d714679ef310ac6332bd20c3b" + }, + { + "name": "Microsoft.AspNetCore.Identity.dll", + "bytes": 1127208, + "sha256": "ef273232539e11a719fd2049c6b44e06cd52b7ac1b73773cf6f1e5d9ec7078db" + }, + { + "name": "Microsoft.AspNetCore.Localization.Routing.dll", + "bytes": 20264, + "sha256": "a84967d6641718a208b103ae490e67536b3d14a4b9938af377957deb7eb64d9a" + }, + { + "name": "Microsoft.AspNetCore.Localization.dll", + "bytes": 61224, + "sha256": "77c6e3183f45fc1fb7df4d59586b24374e27fee238cf0bd22300a2a4b6fbe152" + }, + { + "name": "Microsoft.AspNetCore.Metadata.dll", + "bytes": 16168, + "sha256": "9d5965da27179194bb6140dc04d46bd3c684befcd08af41ba3e2d293028247d1" + }, + { + "name": "Microsoft.AspNetCore.Mvc.Abstractions.dll", + "bytes": 290128, + "sha256": "f233902dba9178c030974ea490a1499c3138c047ac8a571b4c684cc354b12752" + }, + { + "name": "Microsoft.AspNetCore.Mvc.ApiExplorer.dll", + "bytes": 143696, + "sha256": "4135fa8fabeab5baa41719504a713657b8f6628e7c15c5c4fb8c56c0bf95d99d" + }, + { + "name": "Microsoft.AspNetCore.Mvc.Core.dll", + "bytes": 2180904, + "sha256": "71a1fa1a0d8c453a3746648e16edb322984ba79be55e321d43f10bedab756321" + }, + { + "name": "Microsoft.AspNetCore.Mvc.Cors.dll", + "bytes": 43816, + "sha256": "c4abce0293da1038a74eecb3ef4b80ce6c96636ea8021d3e55b558fb6735257d" + }, + { + "name": "Microsoft.AspNetCore.Mvc.DataAnnotations.dll", + "bytes": 104232, + "sha256": "5c02b9adb00342c168c089a097d398addd5a91cda61d914e3d88e0b93b626275" + }, + { + "name": "Microsoft.AspNetCore.Mvc.Formatters.Json.dll", + "bytes": 15696, + "sha256": "f7b009716f6972b65121f4eb8d224e47a48f835554c89491dc87bedd1f7e15f5" + }, + { + "name": "Microsoft.AspNetCore.Mvc.Formatters.Xml.dll", + "bytes": 120616, + "sha256": "d2b075c29387b1bb1fe5e6662baccad87dc32ed983bb95234ac6b0d2e9c6ca5c" + }, + { + "name": "Microsoft.AspNetCore.Mvc.Localization.dll", + "bytes": 43304, + "sha256": "d9ce1f0ea69f3cbec66aa0631d6485ad00d69f804de971f9c335a47d2161c495" + }, + { + "name": "Microsoft.AspNetCore.Mvc.Razor.dll", + "bytes": 258384, + "sha256": "33f08255554c71cb9c4b6b0ede0d5488da01bad3b63af0332a6d225705aa025d" + }, + { + "name": "Microsoft.AspNetCore.Mvc.RazorPages.dll", + "bytes": 503592, + "sha256": "e779c583eb70962d4a44162baac03efe83f394cb004260b6ce8340856a0a9bfb" + }, + { + "name": "Microsoft.AspNetCore.Mvc.TagHelpers.dll", + "bytes": 312616, + "sha256": "60f50d1491ada21030864820c44e1259ebac28dda4943d95ca0b5824f6ebf29e" + }, + { + "name": "Microsoft.AspNetCore.Mvc.ViewFeatures.dll", + "bytes": 828200, + "sha256": "d839e436da4cae43618a9fbd3d4fc04af216d78a114e683b1c65b6aa66e7032a" + }, + { + "name": "Microsoft.AspNetCore.Mvc.dll", + "bytes": 33064, + "sha256": "5141d4e16edb9b8a83c0809cac258f76ad6585fddf6ede39cc34042dcba76ac5" + }, + { + "name": "Microsoft.AspNetCore.OutputCaching.dll", + "bytes": 276776, + "sha256": "7d3de3e09d1124cd8901872842448f02a057d5189c35614f9ef41854d2785e26" + }, + { + "name": "Microsoft.AspNetCore.RateLimiting.dll", + "bytes": 104232, + "sha256": "e19e1b9f3c0d9ae262fce9f266c98b8e52991e267c220b5098ba2e54b17e08c6" + }, + { + "name": "Microsoft.AspNetCore.Razor.Runtime.dll", + "bytes": 68904, + "sha256": "d5ad65a1244d683c85d03dd3ce424fe660d925ba49ee2d2e05120ffc863d1162" + }, + { + "name": "Microsoft.AspNetCore.Razor.dll", + "bytes": 64808, + "sha256": "5c1db35a2e6c7780c4fe8ab670fee1635c4769e29ee47f672813de43463e4d82" + }, + { + "name": "Microsoft.AspNetCore.RequestDecompression.dll", + "bytes": 43344, + "sha256": "1233672f8a7a7a6930e24688d4c9d3f9370f57763f06c7b05af3779d3f6721d9" + }, + { + "name": "Microsoft.AspNetCore.ResponseCaching.Abstractions.dll", + "bytes": 16208, + "sha256": "b26c43ffed51f30c734fd1a37e3a245be9d81ff539cc040d4d175fb8d0497864" + }, + { + "name": "Microsoft.AspNetCore.ResponseCaching.dll", + "bytes": 155432, + "sha256": "ad770f438cb8fd7c9a0d6ffff6faa74baf48acc4020116dc7bced39569f57f02" + }, + { + "name": "Microsoft.AspNetCore.ResponseCompression.dll", + "bytes": 77096, + "sha256": "e53c3ae8c70d591099a84be369a8ec1b608dff051a15b86e60732ce66992481b" + }, + { + "name": "Microsoft.AspNetCore.Rewrite.dll", + "bytes": 234792, + "sha256": "8df7070f6179fb32e6382bd24f361e832c37ebf94db94fb1d3cf1d573cee245a" + }, + { + "name": "Microsoft.AspNetCore.Routing.Abstractions.dll", + "bytes": 53032, + "sha256": "f1700be89b067772d76c0c043108f7b3328df536616e418c1ca706b971aae0a3" + }, + { + "name": "Microsoft.AspNetCore.Routing.dll", + "bytes": 963368, + "sha256": "8754307b8e2f49c27818a22ae31476bf0b93a6d4739139951434d0f71c4b585f" + }, + { + "name": "Microsoft.AspNetCore.Server.HttpSys.dll", + "bytes": 900392, + "sha256": "f3ca86695946f8a7565b936cf8efe06f5aef2db248dd4662da8c7844bee75890" + }, + { + "name": "Microsoft.AspNetCore.Server.IIS.dll", + "bytes": 758568, + "sha256": "ddf2312f4e63da802b722f4f3bad2806608c5bf8a56a613f188985ed2ad78280" + }, + { + "name": "Microsoft.AspNetCore.Server.IISIntegration.dll", + "bytes": 46376, + "sha256": "de45b5ae85fb23f621553ae0583fc7c838879a79802bb83977322c070d5e76df" + }, + { + "name": "Microsoft.AspNetCore.Server.Kestrel.Core.dll", + "bytes": 2633000, + "sha256": "14e39993bc7c543a16cd88e85327b23561e6e3fd02023eb09d1377dc54aa96a5" + }, + { + "name": "Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll", + "bytes": 161616, + "sha256": "74685acb38563840b875919645f21036b74d7b2d95e85a8bb0e683266b30cd7b" + }, + { + "name": "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll", + "bytes": 263976, + "sha256": "00a3e9e6452aa24cf89988e5bf41a6b5bf381dc0f612a18f46b5dd46a31fe0c7" + }, + { + "name": "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll", + "bytes": 138576, + "sha256": "4211f3cf15adeff4e713e61a4d71b3abb9af396c44b08a9c8f70c7112cb05d9b" + }, + { + "name": "Microsoft.AspNetCore.Server.Kestrel.dll", + "bytes": 26920, + "sha256": "a5771b506bd6ab16bf34655ec2c0e40f4c30cb01beddc3188bdc39ad11c9a447" + }, + { + "name": "Microsoft.AspNetCore.Session.dll", + "bytes": 85800, + "sha256": "eb467d0ab8f1e06601900f3543c5cd7e95cb47756ab11c2be767845f7ea08e3e" + }, + { + "name": "Microsoft.AspNetCore.SignalR.Client.Core.dll", + "bytes": 210192, + "sha256": "5833a8070a9c50faa38331fead1c106c4c4bf4e6eca773b00a1d44e16c6911f8" + }, + { + "name": "Microsoft.AspNetCore.SignalR.Client.dll", + "bytes": 21296, + "sha256": "f5201eaf736cab8651013a49b6bd8bbd2d80fb2f46ffdef0e40ce21bfcb161f3" + }, + { + "name": "Microsoft.AspNetCore.SignalR.Common.dll", + "bytes": 84776, + "sha256": "721e8223211a88210cbcf13135e6272cedd13ae8dd1116ed947481b26e5a34e5" + }, + { + "name": "Microsoft.AspNetCore.SignalR.Core.dll", + "bytes": 588584, + "sha256": "09a64ab55ce2bd0e9bbd0257f03ab675b37b434cf4a918f507ae7a51a14eb75b" + }, + { + "name": "Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "bytes": 78672, + "sha256": "0865970ae63255d51120fbea70108b9c35c49064e422155e8cf6312a7906207d" + }, + { + "name": "Microsoft.AspNetCore.SignalR.dll", + "bytes": 27944, + "sha256": "b5d3d8f8f8a5feaca814f83bfea3b741c09381d874157d8af405b87009605881" + }, + { + "name": "Microsoft.AspNetCore.StaticAssets.dll", + "bytes": 208680, + "sha256": "10b77565c1ff8dc03de70f8af02fafa356a1c91ed91534cb0683a569a3e5e9b7" + }, + { + "name": "Microsoft.AspNetCore.StaticFiles.dll", + "bytes": 168744, + "sha256": "d176a061dcf08e0912802216a4b5776a61a907ff744cbe21e574bdaa6b0dac06" + }, + { + "name": "Microsoft.AspNetCore.WebSockets.dll", + "bytes": 72016, + "sha256": "68f03ce5b0cdfe4fce60a8c9b2469b0c1e545886ce4ab3f8f6fc07beae8da4a0" + }, + { + "name": "Microsoft.AspNetCore.WebUtilities.dll", + "bytes": 283984, + "sha256": "f6f1211ca1559be939b36f1f0bb18dd4d681b6de875da464f4bd32715420555c" + }, + { + "name": "Microsoft.AspNetCore.dll", + "bytes": 117032, + "sha256": "1ba017c115c262d1e0eec2d42c880d93d60230247de82ea8f5122b364f3db9a4" + }, + { + "name": "Microsoft.Bcl.AsyncInterfaces.dll", + "bytes": 19104, + "sha256": "136d5965cf4768e8420b547a8bddea882921f426c371833d558a858a2f0c235a" + }, + { + "name": "Microsoft.Bcl.Cryptography.dll", + "bytes": 16688, + "sha256": "009a27b8e3093fdd2960bba63e4acd48eab05c4f8f8a6d9fe8c24b4657f44c4f" + }, + { + "name": "Microsoft.Bcl.TimeProvider.dll", + "bytes": 16208, + "sha256": "febbda76f97e6c1b13d03da160cb0b65bb441d67e2d486e1f2bc46eba50e9854" + }, + { + "name": "Microsoft.CSharp.dll", + "bytes": 893224, + "sha256": "0c6a721047b0d43aaf3028f1a0a54aaa00775bb3899d0fb3a2377cd1d8d43b3b" + }, + { + "name": "Microsoft.CodeAnalysis.CSharp.Scripting.dll", + "bytes": 34064, + "sha256": "d0f4798de9cb78c13463a0f3df747814c177ec15e03e1c03aee17136798a2cfe" + }, + { + "name": "Microsoft.CodeAnalysis.CSharp.dll", + "bytes": 6555408, + "sha256": "cfb5f2785c30485eda803d58fb8330d737cb07d469cd3d7bc1113d58e8d8e4bb" + }, + { + "name": "Microsoft.CodeAnalysis.Scripting.dll", + "bytes": 135984, + "sha256": "7c3973a0997a1901c4f5978ef901e3ae96ddb780dead70a42f65f2e3f6f23e8f" + }, + { + "name": "Microsoft.CodeAnalysis.dll", + "bytes": 2988856, + "sha256": "0a7fb1d94e0e7f46798b138caa67e5d5fb8fb98fd31b5294c917def057ab3d80" + }, + { + "name": "Microsoft.CodeCoverage.Core.dll", + "bytes": 465464, + "sha256": "7541eac205f62d606226a2eaa23ac64b7b20f36efd69762c6611a6707047a963" + }, + { + "name": "Microsoft.CodeCoverage.Instrumentation.Core.dll", + "bytes": 30128, + "sha256": "0fc90fefe87cc0db46a6b9f20dd47df6242ae59ea6b0a638a6a03e61d6202bb4" + }, + { + "name": "Microsoft.CodeCoverage.Instrumentation.dll", + "bytes": 228400, + "sha256": "aab296cc6eea353064b179ccd8dba29259ee8d304ac502aaa5f0e51d2553ddae" + }, + { + "name": "Microsoft.CodeCoverage.Interprocess.dll", + "bytes": 145464, + "sha256": "58e4a8546f17f14edc381b82f3e604125ef7a7482d86edbf9d90eec8d8cee7e2" + }, + { + "name": "Microsoft.CodeCoverage.props", + "bytes": 769, + "sha256": "584a16eced25aada4bba74d788c31c6cb0b0fba683fe4bbac532e117aba62e17" + }, + { + "name": "Microsoft.CodeCoverage.targets", + "bytes": 3877, + "sha256": "1e40c0d12c8b077104acb504dbe07b621a135b6a60ff1781f7374c5b26b89a2c" + }, + { + "name": "Microsoft.Data.SqlClient.dll", + "bytes": 2102944, + "sha256": "4a95c42d14d8a83ca1007793648b6dae59cee957ea12470578f10c918f91d225" + }, + { + "name": "Microsoft.Data.Sqlite.dll", + "bytes": 177464, + "sha256": "9f1fe804321767b6cc8db751ecedd56ab308e5f15492a7f40d7093bb61ab7638" + }, + { + "name": "Microsoft.DiaSymReader.dll", + "bytes": 87168, + "sha256": "7f3e7543321ff4c2675b94e56a4a32c935c11c82fcc60d4f6cb611cb0a8daadc" + }, + { + "name": "Microsoft.EntityFrameworkCore.Abstractions.dll", + "bytes": 34848, + "sha256": "34aaa94035fdb18400c9c40df82a731d935153e71c99932a92830e5807cf41d6" + }, + { + "name": "Microsoft.EntityFrameworkCore.Relational.dll", + "bytes": 2194464, + "sha256": "ae537828754942c45e884795bf666205f5cff414c9238641bbe8687ea455cb79" + }, + { + "name": "Microsoft.EntityFrameworkCore.SqlServer.dll", + "bytes": 642120, + "sha256": "9261df9184d4aa3914e9f20cbe9a8abc478702de3ebdddcb622143f798698464" + }, + { + "name": "Microsoft.EntityFrameworkCore.dll", + "bytes": 2827808, + "sha256": "1783882ff577f09cd2b220f322e0b3eea0f77bb86f80611089274482ae1dbf75" + }, + { + "name": "Microsoft.Extensions.AmbientMetadata.Application.dll", + "bytes": 34616, + "sha256": "a7e80a5ed7efaaa21da13993a01be345a3221ce92422c2cb33655399a357dc6f" + }, + { + "name": "Microsoft.Extensions.Caching.Abstractions.dll", + "bytes": 66344, + "sha256": "32c098be554ee390056bc403efa10d04f0ff6f928d05bdbd82cffe06354d6c08" + }, + { + "name": "Microsoft.Extensions.Caching.Memory.dll", + "bytes": 102184, + "sha256": "43e632f99120b5118a6d5812353079f1294b5842db0dd1efff138ef71dbf4d9e" + }, + { + "name": "Microsoft.Extensions.Compliance.Abstractions.dll", + "bytes": 43832, + "sha256": "b99d010d6b9e5bb863399959d6140bc59ed29ef921957bea3f666ada7995aa50" + }, + { + "name": "Microsoft.Extensions.Configuration.Abstractions.dll", + "bytes": 40232, + "sha256": "d919f0c9c31a6a2cb79f6be1e88ef2fd532043fc67ef2ec410720a6359144475" + }, + { + "name": "Microsoft.Extensions.Configuration.Binder.dll", + "bytes": 83752, + "sha256": "475fb43f732f4fdeab743f7320df6940b77c2a5cdfd10a104ecdb97c12325e90" + }, + { + "name": "Microsoft.Extensions.Configuration.CommandLine.dll", + "bytes": 36688, + "sha256": "fe7c5200bb19024094c930d76811f15024222d11c2bf5be449b004924d3b3d2a" + }, + { + "name": "Microsoft.Extensions.Configuration.EnvironmentVariables.dll", + "bytes": 32552, + "sha256": "6636f7aa7f3d4895c4df6c4c89a00d889503d58360bab44c9cb28be6f8016757" + }, + { + "name": "Microsoft.Extensions.Configuration.FileExtensions.dll", + "bytes": 42792, + "sha256": "ffeedcf9afe9e56d18a929db13798f484b0dbce0cf791c41d55a1faefaf7c0cf" + }, + { + "name": "Microsoft.Extensions.Configuration.Ini.dll", + "bytes": 36648, + "sha256": "0b1f614940a246d7390cc89f739ad0b409d58ff78bee23cbb42c9a5543e7e8c4" + }, + { + "name": "Microsoft.Extensions.Configuration.Json.dll", + "bytes": 42832, + "sha256": "cd804df8fd3869b5f2240d39f02fe3f2c6aa0b4ef711719055b3eb8326c9af84" + }, + { + "name": "Microsoft.Extensions.Configuration.KeyPerFile.dll", + "bytes": 31016, + "sha256": "619fd7a7a746507b7bdb5e84de674624a2a806130cf126d73de544a609c9cecf" + }, + { + "name": "Microsoft.Extensions.Configuration.UserSecrets.dll", + "bytes": 37672, + "sha256": "bbaeb7f859ef780e5a4ae668bd69512421114d423f6e7d4b6ff468d32e58a4e5" + }, + { + "name": "Microsoft.Extensions.Configuration.Xml.dll", + "bytes": 59688, + "sha256": "f3d23dd665a5737a05a66b297011f49fd9b9c9d9eced81129cd23f6f0bd5d1e5" + }, + { + "name": "Microsoft.Extensions.Configuration.dll", + "bytes": 91944, + "sha256": "2feb7f1d90a403658d9472efe8273c5c83e7383a3e826add710726798ec836ee" + }, + { + "name": "Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "bytes": 148264, + "sha256": "86b9858b09bacacdd28592780bc29c043e58c4f7b0c08f1725b9674f92a7a9ca" + }, + { + "name": "Microsoft.Extensions.DependencyInjection.AutoActivation.dll", + "bytes": 33632, + "sha256": "a73a6c6404212d70a80f8cccde2bc527976f9fcb693360f6cf32e9b2d38c9a8b" + }, + { + "name": "Microsoft.Extensions.DependencyInjection.dll", + "bytes": 239912, + "sha256": "985234efcd2cf8f07e804ab633f506b4895b9ff81d200a73dccc2b8b459f457a" + }, + { + "name": "Microsoft.Extensions.DependencyModel.dll", + "bytes": 85264, + "sha256": "0d7fae30684654fa9173ad248ab41b713a48d81df0ef446ee4e40c8d380893e8" + }, + { + "name": "Microsoft.Extensions.Diagnostics.Abstractions.dll", + "bytes": 39760, + "sha256": "b2cde19fff437952a898778a9ad6da562d0d3898729f130f28aaedbc4a69780c" + }, + { + "name": "Microsoft.Extensions.Diagnostics.ExceptionSummarization.dll", + "bytes": 30008, + "sha256": "476e2c7298b102b6cfce2d6ae2acad52ce7248d4511f36d42ce35a77fde1df55" + }, + { + "name": "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll", + "bytes": 32040, + "sha256": "2e6a48c996ff652498625e4594b99bd9e1fe0ad32c77c24deeb75291721e274e" + }, + { + "name": "Microsoft.Extensions.Diagnostics.HealthChecks.dll", + "bytes": 108840, + "sha256": "1da6d0288deb8d82a1bad6cd77cb014fd7e93352297d26976dfdcaec3bfe95ab" + }, + { + "name": "Microsoft.Extensions.Diagnostics.dll", + "bytes": 64808, + "sha256": "932a078fb0d8f989872b735cb2a4eddc28d503caabed88c00b1d1f87a7e80019" + }, + { + "name": "Microsoft.Extensions.Features.dll", + "bytes": 37200, + "sha256": "97279057d862d88f5f4f430a51ad632d6a4418ba850a72766b6d5718aecb1843" + }, + { + "name": "Microsoft.Extensions.FileProviders.Abstractions.dll", + "bytes": 26920, + "sha256": "3415177de28fef46b0d8a2ec48c056ddba98b1264feb4fb34e02f83c5d8aeb62" + }, + { + "name": "Microsoft.Extensions.FileProviders.Composite.dll", + "bytes": 24360, + "sha256": "8e6c99279c17d78dcaba5ee1260d36520527e120855d0c7f6bbda22a406ea895" + }, + { + "name": "Microsoft.Extensions.FileProviders.Embedded.dll", + "bytes": 67368, + "sha256": "246b9f3dda90063ee297d4e65207738d5be68c156082358a2c75d6fcd423bf33" + }, + { + "name": "Microsoft.Extensions.FileProviders.Physical.dll", + "bytes": 89384, + "sha256": "bfe52bd227422f93b94e63d823af52be8f08a5a4ed638ac681bd6cb670605dce" + }, + { + "name": "Microsoft.Extensions.FileSystemGlobbing.dll", + "bytes": 102224, + "sha256": "92808eb97ea35ce274ca3b1d5342b9c1062178c753d6641d4ca7c99aae8d9898" + }, + { + "name": "Microsoft.Extensions.Hosting.Abstractions.dll", + "bytes": 70992, + "sha256": "07a8bb5e87309a76be24c21b97f2a65e088e58a833406331fdd96a0cc0355509" + }, + { + "name": "Microsoft.Extensions.Hosting.WindowsServices.dll", + "bytes": 28968, + "sha256": "7b2b4645b30652d74a40aa00cf25c6db15f4d35b3768f03caef79404c0dabce7" + }, + { + "name": "Microsoft.Extensions.Hosting.dll", + "bytes": 157480, + "sha256": "df779d0b040a06bb5ae9f1504ab52706dc1677122a4a7fc13ca12dc6a4a8a5a7" + }, + { + "name": "Microsoft.Extensions.Http.Diagnostics.dll", + "bytes": 118072, + "sha256": "347d266abd3c7376b56ab7b10b36510abe2fe3a36e0cda5e7ad0fd668f5f8102" + }, + { + "name": "Microsoft.Extensions.Http.Resilience.dll", + "bytes": 135992, + "sha256": "eb573ea6c8f24d2178d733c1f7f6fdf2856056c6aa5322f667d685afdd20afbb" + }, + { + "name": "Microsoft.Extensions.Http.dll", + "bytes": 214352, + "sha256": "36401bbb8f43fb4cdf021c240747691905866d350a29b3e527e7828f0adb8daa" + }, + { + "name": "Microsoft.Extensions.Identity.Core.dll", + "bytes": 594728, + "sha256": "e8a15c0a40e42a66a4a1d67a956b037b63987c02e962a9bbf8c3ce66b30ab6db" + }, + { + "name": "Microsoft.Extensions.Identity.Stores.dll", + "bytes": 88360, + "sha256": "1272322c697581a5e6e24339535322adf24d56c539bdb76dbd24cdbe2da039fe" + }, + { + "name": "Microsoft.Extensions.Localization.Abstractions.dll", + "bytes": 22824, + "sha256": "4b7b1e8bfafb173754aead2fc812297802432b882e3c85dc76cce69c3bb500b2" + }, + { + "name": "Microsoft.Extensions.Localization.dll", + "bytes": 53032, + "sha256": "6ab7036f072da79d58a3f37a5cfc651d7b17fefbabe5e911c098fcb37d3893e4" + }, + { + "name": "Microsoft.Extensions.Logging.Abstractions.dll", + "bytes": 157520, + "sha256": "4cc8a4160f64b463cae26b0b5cb60a84befc292b21449dd874a893f88ff9be19" + }, + { + "name": "Microsoft.Extensions.Logging.Configuration.dll", + "bytes": 40232, + "sha256": "2a1a28e759431f00f1c664714d54ed572a261c681d6851229129976645677cbb" + }, + { + "name": "Microsoft.Extensions.Logging.Console.dll", + "bytes": 171856, + "sha256": "6f2ecf443d927f6b163ba345027ffab284be0191d53fde2f688ad80d6fd5b543" + }, + { + "name": "Microsoft.Extensions.Logging.Debug.dll", + "bytes": 23848, + "sha256": "e3a622214e43616471657fe80053d7c6e8bdc4bc92194d67a6f5d8332e635161" + }, + { + "name": "Microsoft.Extensions.Logging.EventLog.dll", + "bytes": 37712, + "sha256": "e9fcfdbcdec468dc78c4701046b496afdbaca335c007e2c1790a02aff7cdef77" + }, + { + "name": "Microsoft.Extensions.Logging.EventSource.dll", + "bytes": 58704, + "sha256": "7e8e9425a2dbbcba8d7ef3629b701100226520abc660c780024fe53badc4d53e" + }, + { + "name": "Microsoft.Extensions.Logging.TraceSource.dll", + "bytes": 31016, + "sha256": "c8b0b9e7b8b603b090134031e6aec23264936789f17f2404042f3004ec0fc975" + }, + { + "name": "Microsoft.Extensions.Logging.dll", + "bytes": 99664, + "sha256": "ee66ee72f6c04de9ac320448f31ed7f4ef0b9afea0e7cf481a3027bf3538e4b2" + }, + { + "name": "Microsoft.Extensions.ObjectPool.dll", + "bytes": 32080, + "sha256": "9a16ecc03f397d57ce10a9ce9570d50133e2c7e9cba9886a99ebfc615436b89d" + }, + { + "name": "Microsoft.Extensions.Options.ConfigurationExtensions.dll", + "bytes": 30504, + "sha256": "6b07f0cc7ffdcb46d021e46a217d675bae0b10d47913998d649d9aa0db8fa4c9" + }, + { + "name": "Microsoft.Extensions.Options.DataAnnotations.dll", + "bytes": 26920, + "sha256": "859dd5a4f3a345ef9903ce83c60433e8916ccee12d6ac297d53f8118fb8fd6c5" + }, + { + "name": "Microsoft.Extensions.Options.dll", + "bytes": 142632, + "sha256": "fdfacc66440decb94136926dc582dc389ccb80b985234a1a9a9749579d922f35" + }, + { + "name": "Microsoft.Extensions.Primitives.dll", + "bytes": 81744, + "sha256": "350b3dd3d3d1e7cc1e00d5bd5e1b57c2b9b6f321f83ce8dea477b0069848e041" + }, + { + "name": "Microsoft.Extensions.Resilience.dll", + "bytes": 33120, + "sha256": "ef993eca52f7d1dfa47d34678c4d4d69ad35e4052797f679a2f6fec2eea820ef" + }, + { + "name": "Microsoft.Extensions.Telemetry.Abstractions.dll", + "bytes": 58720, + "sha256": "052ae9f51b926b0a61b06081eebca430c603ca41af463fa925aba4434d0b4628" + }, + { + "name": "Microsoft.Extensions.Telemetry.dll", + "bytes": 150880, + "sha256": "7cea61a2885a8fef83e85dc3615a9e8add8748cec129e45e7cf4240cce61528b" + }, + { + "name": "Microsoft.Extensions.Validation.dll", + "bytes": 82216, + "sha256": "abf068cc356677e029bf20dd1defb93331932e1f525259fdf4e161b84cab90d5" + }, + { + "name": "Microsoft.Extensions.WebEncoders.dll", + "bytes": 30504, + "sha256": "6ebd81d38678f18a5c93c6dcc3a0d7796aa28eaa9e6f45a6db1fbd13a0e4fcdc" + }, + { + "name": "Microsoft.Identity.Client.Extensions.Msal.dll", + "bytes": 66616, + "sha256": "9c1f736b16cacd318afe07d3b9d707a4b4b56def5e403b0aff471c1af413aaf0" + }, + { + "name": "Microsoft.Identity.Client.dll", + "bytes": 1028656, + "sha256": "10d59df4170053ea9597e3c20adc9607ad17318ad5d8747eda3d930a5a4b463a" + }, + { + "name": "Microsoft.IdentityModel.Abstractions.dll", + "bytes": 19512, + "sha256": "b438fd27bdd5ba7dc4a482c1f135d6305301b1685f624bb36ac0ed24f499fc2d" + }, + { + "name": "Microsoft.IdentityModel.JsonWebTokens.dll", + "bytes": 170552, + "sha256": "cf889db7a04e956d03726954f9389a23a952666a66137021c712ee977630bd37" + }, + { + "name": "Microsoft.IdentityModel.Logging.dll", + "bytes": 36920, + "sha256": "da14a0467587838b7fedc6670315452ff9c7a9fe54fb7f0742fe7a34274753b7" + }, + { + "name": "Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "bytes": 137288, + "sha256": "3fdcb7b20fe91de47857aa3fee0d13affaecfd0544cae5a3ad3f7f105a3d8cd6" + }, + { + "name": "Microsoft.IdentityModel.Protocols.dll", + "bytes": 46648, + "sha256": "1126552d469948ed6d7887e8c24cbd65fddad103193eeea869930e27da2bc010" + }, + { + "name": "Microsoft.IdentityModel.Tokens.dll", + "bytes": 372280, + "sha256": "b3d4bcb1d9f9c469825e7aa041bc35c33d85651a88ee24b5ef9ea29d7502d214" + }, + { + "name": "Microsoft.JSInterop.dll", + "bytes": 175440, + "sha256": "9090d846c942cfe540577d9423c90cd3a7c3ff791fee36b2086fdbe0e35727ff" + }, + { + "name": "Microsoft.Net.Http.Headers.dll", + "bytes": 239440, + "sha256": "734cacbd7af763e440ff4ed51e2ca432e976a21b490c9ba3b3ea49a0ecf80444" + }, + { + "name": "Microsoft.SqlServer.Server.dll", + "bytes": 23976, + "sha256": "a9dca1b42bc875f966b78b2c0880e62b838f0ed6567166d7f1f07ae4b76ec4bf" + }, + { + "name": "Microsoft.TestPlatform.CommunicationUtilities.dll", + "bytes": 137264, + "sha256": "467b1df61023901a09de9a0052ac69e5961c846de0152c4d8d6afdec090cf889" + }, + { + "name": "Microsoft.TestPlatform.CoreUtilities.dll", + "bytes": 97824, + "sha256": "a4f6023603d624fbc76b58ab60558320d29f562eef10488e48ed27cc6ceb4b9c" + }, + { + "name": "Microsoft.TestPlatform.CrossPlatEngine.dll", + "bytes": 315416, + "sha256": "322fbf9184012a02309fa57c6c70fd05c372d761e7f9b8497cc62a4d91f1b9ce" + }, + { + "name": "Microsoft.TestPlatform.PlatformAbstractions.dll", + "bytes": 53280, + "sha256": "36e62b27cb37b5587d6acb3533c9bcebb2368edcfd2c8203157faca3aa3fb404" + }, + { + "name": "Microsoft.TestPlatform.Utilities.dll", + "bytes": 67104, + "sha256": "23fca5df9a5bdf954a09116547b77e9599484a7bf457d1694bec3cb7392278d2" + }, + { + "name": "Microsoft.Testing.Extensions.MSBuild.dll", + "bytes": 60448, + "sha256": "f6ef5ef03b5c22f7900fb67fe741847e75cf3ce26f652106a27d8cfcc834bb7f" + }, + { + "name": "Microsoft.Testing.Extensions.Telemetry.dll", + "bytes": 44576, + "sha256": "548751ae749bca1e823f1bc3698ac751a0dc0ca47c396a9d32b432bd828848df" + }, + { + "name": "Microsoft.Testing.Extensions.TrxReport.Abstractions.dll", + "bytes": 32800, + "sha256": "acae6c525ead26f77ceab1b1d640fe7e8c07fec2acdfc78bf753b220a49ef3e6" + }, + { + "name": "Microsoft.Testing.Platform.dll", + "bytes": 1153568, + "sha256": "519744d3b6321320e366495fbed0d8c37f9b0e11207667eb89eb5c0c425a7462" + }, + { + "name": "Microsoft.VisualBasic.Core.dll", + "bytes": 1335080, + "sha256": "299cdffbb67cee8cfdc3ca4c585dd51ff483258e7ee81e2da3ee121e1ecce895" + }, + { + "name": "Microsoft.VisualBasic.dll", + "bytes": 17192, + "sha256": "48142cb8083132f3823f8cee30b07bd8bf5e816ea94855c4fded07ab3b05b9db" + }, + { + "name": "Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "bytes": 17328, + "sha256": "5619c8dfbd19198780ed0b834b1f79a07310aaef5510f02f9025735e135e0100" + }, + { + "name": "Microsoft.VisualStudio.TestPlatform.Common.dll", + "bytes": 247856, + "sha256": "25c6a0465aa98ad84be35c68eb516d95fb86043f1d3066b326cb6e8ae4af3ce9" + }, + { + "name": "Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "bytes": 334888, + "sha256": "28b2cddea8b257785baf77e3c59f80c97c9eb38b616ce41b58b1e99e07ad0a11" + }, + { + "name": "Microsoft.VisualStudio.TraceDataCollector.dll", + "bytes": 89672, + "sha256": "2f240c5e9ba44580bf810f7b79d58a35d8aebc0c79ed2ed04568c4e134614924" + }, + { + "name": "Microsoft.Win32.Primitives.dll", + "bytes": 15696, + "sha256": "491daa552f9716081333347442429b83ae96f53b7ddafb34855ecdd4cf527454" + }, + { + "name": "Microsoft.Win32.Registry.dll", + "bytes": 34600, + "sha256": "a6f949e3ba058f03765e368b50eac591382387ee058d8a459429fa6a93560fce" + }, + { + "name": "Mono.Cecil.Pdb.dll", + "bytes": 110736, + "sha256": "547ee67366e425917528d89f1fd531934b7401e22379be3da63a42804c3aee10" + }, + { + "name": "Mono.Cecil.Rocks.dll", + "bytes": 47752, + "sha256": "7d0f7cb4c21d2c2eed4c63085f062dc81c62a5acf411c2595f9a8c671f257d8c" + }, + { + "name": "Mono.Cecil.dll", + "bytes": 382080, + "sha256": "d070e972c9c09bb7535bd840f9582b6d6ef991dd694224d7193c227dd1857b14" + }, + { + "name": "MySqlConnector.dll", + "bytes": 880488, + "sha256": "e7734ef5db26f5e5626f8ef354831c60adff9a8e88447cc5e865cfe1f9e466bc" + }, + { + "name": "Newtonsoft.Json.dll", + "bytes": 695336, + "sha256": "72cf291d4bab0edd08a9b07c6173e1e7ad1abb7ab727fd7044bf6305d7515661" + }, + { + "name": "Novell.Directory.Ldap.NETStandard.dll", + "bytes": 238592, + "sha256": "85918b6f9e91acffac9bd081b70404b0456c7a6f0c9c5666ccda8951bd8120d4" + }, + { + "name": "Npgsql.dll", + "bytes": 1478656, + "sha256": "e2bcafe1660fe4543fe9dfcabed972ec8d32259e5ea8009462ce1de23c7034c2" + }, + { + "name": "Opc.Ua.Client.dll", + "bytes": 2442880, + "sha256": "620da406fabdbc75d11f9827ea7e39d2d3c762471bd2264b0d11f1d6cd9247cd" + }, + { + "name": "Opc.Ua.Configuration.dll", + "bytes": 117376, + "sha256": "6ed6a594c93c3ff35d1a16539a9fe87c1e2640549cc2f48ed6bae333dc8bf0e7" + }, + { + "name": "Opc.Ua.Core.Schema.dll", + "bytes": 135168, + "sha256": "51cfad48657d95d38074bb88be29aea6f5b361a07397247d58838d066b99772e" + }, + { + "name": "Opc.Ua.Core.Types.dll", + "bytes": 12703872, + "sha256": "a7dd141b8dabe8848ff28c2fb8e16a85a0508e6a49e6b1a1c1e267175b99af96" + }, + { + "name": "Opc.Ua.Core.dll", + "bytes": 2549376, + "sha256": "9d0857aa6b7f3c49037d4ea557b4da8edf07e146069464481783e66c5c9cd35a" + }, + { + "name": "Opc.Ua.Security.Certificates.dll", + "bytes": 118400, + "sha256": "7f4969aceb2f0db5328c6882cb4b117342f3b18905c38acdba600683860c4fd0" + }, + { + "name": "Opc.Ua.Server.dll", + "bytes": 3332224, + "sha256": "930e714a2f6e15d393840bcdc95e1afa8012bc740c3738a655f958142721864e" + }, + { + "name": "Opc.Ua.Types.dll", + "bytes": 1792640, + "sha256": "c542f69882f4e8a4ebd5ccc28a3881d6967c7ffb6dcc3c56dc6c776f39c2ede1" + }, + { + "name": "OpenTelemetry.Api.ProviderBuilderExtensions.dll", + "bytes": 23552, + "sha256": "5c5727de149a0232825774a8ee75b60581ce19ce8b944d422bd545e2e3d7f915" + }, + { + "name": "OpenTelemetry.Api.dll", + "bytes": 69632, + "sha256": "ca5ddb7a51bcbb1ab8bcc6484603c70a4077142a8745d521c4bd2363f9e7c217" + }, + { + "name": "OpenTelemetry.Exporter.OpenTelemetryProtocol.dll", + "bytes": 158208, + "sha256": "20bf20b94e2e92a73d20d97b81d9cd3b26ef0967ff29f80d84b421c4317ac77e" + }, + { + "name": "OpenTelemetry.Exporter.Prometheus.AspNetCore.dll", + "bytes": 39936, + "sha256": "60dcd62f532a61821328e52e511bd47db620c301c7105c4aaf70619c0f217d65" + }, + { + "name": "OpenTelemetry.Extensions.Hosting.dll", + "bytes": 10752, + "sha256": "a627ebf2a7d14e0f0b3c2568e6ee37773397de25c90ee89d4560422c42d8b945" + }, + { + "name": "OpenTelemetry.Instrumentation.AspNetCore.dll", + "bytes": 65536, + "sha256": "247771e79186a704722510e03aefb2f09c10286ff3fc658dcd4bb81ba347f6c3" + }, + { + "name": "OpenTelemetry.Instrumentation.GrpcNetClient.dll", + "bytes": 43008, + "sha256": "8edab07d2cc02b81cc53bd9ccc0f6160e483a4b42ced3cf339de530fecfe88ee" + }, + { + "name": "OpenTelemetry.Instrumentation.Http.dll", + "bytes": 60928, + "sha256": "154c41bc484085a74a0b1886478ffb4aeaf850686d173d0c93a11ad0283aea2e" + }, + { + "name": "OpenTelemetry.Instrumentation.Process.dll", + "bytes": 13312, + "sha256": "a789454f78efbf4d2f04605b98d3f143f6396bec208f4b5765e8e8d2d0f35143" + }, + { + "name": "OpenTelemetry.Instrumentation.Runtime.dll", + "bytes": 26112, + "sha256": "08b62837d801db4afe0ac77d27fe66fff99493cbb6b9c49a5876627c2aabd7a8" + }, + { + "name": "OpenTelemetry.dll", + "bytes": 252928, + "sha256": "edc9799efd614cb083193d90eafcd99abf70496738c3065933093cf99d162cae" + }, + { + "name": "Oracle.ManagedDataAccess.dll", + "bytes": 5617312, + "sha256": "a76f5f278e9db505d76ce21bc57163c0079ec03ef1dda7d9a524d9bec3a3bbbf" + }, + { + "name": "OtOpcUa.Host", + "bytes": 77480, + "sha256": "d97f318f268246852603166a19d66c2da788a75a7f9124b2242e6c794985dcbb" + }, + { + "name": "OtOpcUa.Host.dll", + "bytes": 192512, + "sha256": "885a2160c6f41969b90449008a68b69ad9251c2cdeeea61f75f0eef484878d46" + }, + { + "name": "OtOpcUa.Host.pdb", + "bytes": 78956, + "sha256": "5bf360db4c7c067803975620ba8ef9574685a9d2bd0a88f5f21daaa41359594d" + }, + { + "name": "OtOpcUa.Host.runtimeconfig.json", + "bytes": 550, + "sha256": "21d3b077ff744783f1809a81399cd494be3caed432ec8e8655a7a8029eb86c26" + }, + { + "name": "Polly.Core.dll", + "bytes": 223136, + "sha256": "802ffe5c74c26cf6bdd0f0ecacc36965807a267765f61b63eea8605da15fe0e3" + }, + { + "name": "Polly.Extensions.dll", + "bytes": 57120, + "sha256": "8adac7a20cd056b9a8623efb6e6f9b99a82e18d3c7b7f6c788f7fc4b20ce5f18" + }, + { + "name": "Polly.RateLimiting.dll", + "bytes": 28208, + "sha256": "afe3042cd4062438857d42880623845f32575375f460fd1ac07f705ea0211804" + }, + { + "name": "Reactive.Streams.dll", + "bytes": 5632, + "sha256": "dfb748806727fe261f48e15ed6c1e3ab952f7021208fec4df0184615ba5ec6f0" + }, + { + "name": "S7.Net.dll", + "bytes": 99328, + "sha256": "e293fe25f6e774069a5c38f0778e47f2c8a0d7327741a6df1c62fb0f98d497cf" + }, + { + "name": "SQLitePCLRaw.batteries_v2.dll", + "bytes": 5120, + "sha256": "bc69777001eb4db81c580f62835396f67e74aaa381eef446193a904499d5310b" + }, + { + "name": "SQLitePCLRaw.core.dll", + "bytes": 51200, + "sha256": "50c999a1ab2afeacc93bce5ac2948d3bb630d99d23efc3cfcbd8bc11d3426eb7" + }, + { + "name": "SQLitePCLRaw.provider.e_sqlite3.dll", + "bytes": 36864, + "sha256": "02ad639f45a26de1919ffbb6696bdb399ad01afc149970a163c3867162f310b3" + }, + { + "name": "Serilog.AspNetCore.dll", + "bytes": 17920, + "sha256": "a550c57df7a04edbed00da036fc14be12acd0d425b7401855975fb628e3dbada" + }, + { + "name": "Serilog.Extensions.Hosting.dll", + "bytes": 35840, + "sha256": "3e6d0284179ee0e1c197568fd79b58f869d15298fff8ecb8447322fe87d44f47" + }, + { + "name": "Serilog.Extensions.Logging.dll", + "bytes": 28672, + "sha256": "80d3edbe3e3ac0b4c5bc764474220e7da11df8d285e0098f3dc1b65a734c8507" + }, + { + "name": "Serilog.Formatting.Compact.dll", + "bytes": 9728, + "sha256": "319fbcefc2161dd50ccdd8d60b30edee48a09f794aedb28421a23f35ddd670d9" + }, + { + "name": "Serilog.Settings.Configuration.dll", + "bytes": 70144, + "sha256": "ec8cfd1f8970a44e2aa3f7bcc71116ca2691b196564bff83e3e3ead0c1143b67" + }, + { + "name": "Serilog.Sinks.Console.dll", + "bytes": 38400, + "sha256": "dc88002ddd9f5fd0ffec9a6568ef89954671f60f2c9161593ee78932538c1e3e" + }, + { + "name": "Serilog.Sinks.Debug.dll", + "bytes": 7168, + "sha256": "df543d3df8bd00d72e5eb2b9b2a15e67a6e4d10c13834de4cedbf500b8793e01" + }, + { + "name": "Serilog.Sinks.File.dll", + "bytes": 36864, + "sha256": "4f4282671c2ac68284b4dc99f7a76eac9cbd4e659978cef642cff9e6c01b676d" + }, + { + "name": "Serilog.Sinks.OpenTelemetry.dll", + "bytes": 132608, + "sha256": "e17a2dd847560cd22bdb6df8302f8fd202c3f073888cdd9ad8b1df9e80da4351" + }, + { + "name": "Serilog.dll", + "bytes": 162304, + "sha256": "e6b551a75ff7fff20dd0024670d5c42dfb74afa16d54aa0201106dea400a9505" + }, + { + "name": "Shouldly.dll", + "bytes": 292864, + "sha256": "498dad657f324ab068e800d5711ae36feb4af4ba9a572eb941197e2fb677549d" + }, + { + "name": "System.AppContext.dll", + "bytes": 15144, + "sha256": "d8008f690adf544990c80d1f07fb21544555041888208eba69a13012d4d67ed8" + }, + { + "name": "System.Buffers.dll", + "bytes": 15184, + "sha256": "dda55d2b177ed01037f8a1188dc8230801798fdeedd4146470595b21aa978fa8" + }, + { + "name": "System.ClientModel.dll", + "bytes": 175664, + "sha256": "ce44a4fae4c4787c12475700e19a365fc2f388ae5d0f6182557ce5ea175be7f6" + }, + { + "name": "System.CodeDom.dll", + "bytes": 184944, + "sha256": "bfb75074ac26c7632bbe9ffc1063ceca9a56aae86ac4913481d6bba88c4c4a34" + }, + { + "name": "System.Collections.Concurrent.dll", + "bytes": 218920, + "sha256": "234ed328186ce0423b63a5f8ffde87866f0838a6ceaca8f08dcebc63e26b75ef" + }, + { + "name": "System.Collections.Immutable.dll", + "bytes": 1082704, + "sha256": "484daae9a39195c8e2f506e61edf105f330a7b8186fabcba06dbfa6a27b4f4b1" + }, + { + "name": "System.Collections.NonGeneric.dll", + "bytes": 104232, + "sha256": "dd03b2361b5476f62df85b945861b836c9d541141f28912fedc9a122852ed795" + }, + { + "name": "System.Collections.Specialized.dll", + "bytes": 105256, + "sha256": "845cf352a2938201fdb0835cb25467bad42460dc58ce06ae30d059257534e477" + }, + { + "name": "System.Collections.dll", + "bytes": 329040, + "sha256": "ff2b3109be1b51b55c37122309d2a6b0f3bfe89404e64cd7b74d5ec0f4975e70" + }, + { + "name": "System.ComponentModel.Annotations.dll", + "bytes": 215848, + "sha256": "f56f1f3a8418c94ba38b56d3222c7fe873609174900d770ad337bd5b4de51236" + }, + { + "name": "System.ComponentModel.Composition.dll", + "bytes": 296720, + "sha256": "434522d676f626589e21aedea883f6acfbe276f9c3a935dfb4d8af7a19feb75a" + }, + { + "name": "System.ComponentModel.DataAnnotations.dll", + "bytes": 16680, + "sha256": "57b0a7a4650ba3f7270f35ca961a71d43e0e4ed9273c239866dffc6857f76eed" + }, + { + "name": "System.ComponentModel.EventBasedAsync.dll", + "bytes": 39208, + "sha256": "c0e169095615c842cb00ad18bd67b95805b228cda6059eac5e178ba5facf17b6" + }, + { + "name": "System.ComponentModel.Primitives.dll", + "bytes": 80168, + "sha256": "19f3cf166bc66273f001d4bbd0068697dd1fa1f349ab506ebba58e52615b6144" + }, + { + "name": "System.ComponentModel.TypeConverter.dll", + "bytes": 874320, + "sha256": "cc2b2e58b24a0268f547cc673d12aa52d6af3cd0f55d3347904db01129c8cc26" + }, + { + "name": "System.ComponentModel.dll", + "bytes": 17704, + "sha256": "37d692566dba52a6980a11dfdfd8a722bd0133879f30443d3268354a2eeea1ad" + }, + { + "name": "System.Configuration.ConfigurationManager.dll", + "bytes": 443192, + "sha256": "08b618461d62fe65451bdac4dbc25f8ac8ab16a914a687f2dbe3923bf0e8b3e7" + }, + { + "name": "System.Configuration.dll", + "bytes": 19240, + "sha256": "d49a540fc304a6fe3dec3a574c16c5a03cf67b97e2b74db6607eec65a160f690" + }, + { + "name": "System.Console.dll", + "bytes": 226600, + "sha256": "c87e4e0764e89f83ae373ea83bdd0525e2fa900379e615c353ff43acdb05a07c" + }, + { + "name": "System.Core.dll", + "bytes": 23376, + "sha256": "d6f222ef89bbd07bf3e188c7335cb579b3e091668317f924ac0800b33e806b82" + }, + { + "name": "System.Data.Common.dll", + "bytes": 3229008, + "sha256": "6f27812eea5c9f48b672f2722b6a8858a2731dae1cf15e46f37e2c5df2c865d4" + }, + { + "name": "System.Data.DataSetExtensions.dll", + "bytes": 15656, + "sha256": "7d8af049e931346615424b4f860117550e55c08645ca3252762de0efbb31988a" + }, + { + "name": "System.Data.Odbc.dll", + "bytes": 296744, + "sha256": "43a9b962918c2521267ef3b9515d7d6faa148a3f141cb53bed379b8058017ecf" + }, + { + "name": "System.Data.dll", + "bytes": 25424, + "sha256": "d72b98b89104a81d2c76e34875e993a61437f8b17521218b136b40ef35cb77c0" + }, + { + "name": "System.Diagnostics.Contracts.dll", + "bytes": 16208, + "sha256": "eb8f0c64403d794e0f1e23a7200446c26feba86835ef6bf20b09d3006d3f112d" + }, + { + "name": "System.Diagnostics.Debug.dll", + "bytes": 15656, + "sha256": "88aac18d16f5f2589c818b5be31e5469bddfd01d42233eefb80e50e7e9bc4026" + }, + { + "name": "System.Diagnostics.DiagnosticSource.dll", + "bytes": 558416, + "sha256": "11597ffc56ec94c3445958aa5b2f23afaffe0a055c0b5296e3e2784eeba2671d" + }, + { + "name": "System.Diagnostics.EventLog.dll", + "bytes": 56144, + "sha256": "405b4dff8d3effbc432e09bd45977481835d2aee44c697b3ef51fcea578f7981" + }, + { + "name": "System.Diagnostics.FileVersionInfo.dll", + "bytes": 46376, + "sha256": "70ad6efeee236f5767e0d06c908159990983ed6add4a21187c4c6aaf0ca9533f" + }, + { + "name": "System.Diagnostics.PerformanceCounter.dll", + "bytes": 51872, + "sha256": "c596c35317c7bd5ae3938854996d62c24c7f67f61d3710a379bf1f3ab1a9e3b4" + }, + { + "name": "System.Diagnostics.Process.dll", + "bytes": 313640, + "sha256": "5f3bdd4913ec2d4ec719e5af954e363c6f2a664868e62e119fc9b02f51c8931e" + }, + { + "name": "System.Diagnostics.StackTrace.dll", + "bytes": 30544, + "sha256": "1761c62d6441d30b959aec5ce12bf94ddeea5a07bfc11fe9423ec679f7733543" + }, + { + "name": "System.Diagnostics.TextWriterTraceListener.dll", + "bytes": 65872, + "sha256": "05157281475c7158067cb344efb8de879bebd0197a65f5291608dc4307e1a827" + }, + { + "name": "System.Diagnostics.Tools.dll", + "bytes": 15144, + "sha256": "95175f73484d5379f0a749bbd6f3d59b115a1dff6a6a30e2f2cc3705df83815a" + }, + { + "name": "System.Diagnostics.TraceSource.dll", + "bytes": 152400, + "sha256": "cadcbc545cf16f0bca8a736a1d333a87bf2df520c0d1aade50babe816cd6a619" + }, + { + "name": "System.Diagnostics.Tracing.dll", + "bytes": 16168, + "sha256": "d453f1fcea2f12e4760dc9761477da583c0ad8113176972bddf6250c70f239fe" + }, + { + "name": "System.DirectoryServices.Protocols.dll", + "bytes": 180488, + "sha256": "d9258e7a728e8fcd1a10ea4ee896b75b01d73f8c9a7fa9df88e3671246e00772" + }, + { + "name": "System.Drawing.Primitives.dll", + "bytes": 128848, + "sha256": "21e1c2d28d77b5b5ad43d123efd88bde709c401935f65944a50c7f3c78910c59" + }, + { + "name": "System.Drawing.dll", + "bytes": 20264, + "sha256": "82b0e077b0d209d653588b9a94af611ee58793a7b11955f2041fad7511219322" + }, + { + "name": "System.Dynamic.Runtime.dll", + "bytes": 16208, + "sha256": "0142756e08708cefdc082d0d0f38277c237efd10e02a0b2d3597af2f846015df" + }, + { + "name": "System.Formats.Asn1.dll", + "bytes": 251688, + "sha256": "9f68ae5f1f4c31db09927e9f90077a5383652d27d16ced923369708a4d566d95" + }, + { + "name": "System.Formats.Cbor.dll", + "bytes": 181072, + "sha256": "0579cd1bd4a0f3b3857507261c06375d5a79a8e772cc62e289c34a2ab62256ce" + }, + { + "name": "System.Formats.Tar.dll", + "bytes": 329000, + "sha256": "ed830744658ba1d4b87210a116f3731d983d4ec893656d9c56c115f50ede9442" + }, + { + "name": "System.Globalization.Calendars.dll", + "bytes": 15696, + "sha256": "733f21a21cd9cc888ecc1bfe54bdcd7f3982dbe3d8419349228aaf7972058c16" + }, + { + "name": "System.Globalization.Extensions.dll", + "bytes": 15144, + "sha256": "772e2b1a61d9d83eacc3e77833723ebeb14aae972eca3b16cefdca1705355909" + }, + { + "name": "System.Globalization.dll", + "bytes": 15696, + "sha256": "fb744aff78a150598eb32df7f2f9e847d9916324725eace4c8ee0295bb428be4" + }, + { + "name": "System.IO.Compression.Brotli.dll", + "bytes": 81704, + "sha256": "c27cc4721436a561589f2c4ea64d2059a1745af16ac784913b1ad28b8d295ead" + }, + { + "name": "System.IO.Compression.FileSystem.dll", + "bytes": 15144, + "sha256": "8f004a1c4ed3b4343df104230c837f93e78cbf48c673cda7ff846e9067709c12" + }, + { + "name": "System.IO.Compression.ZipFile.dll", + "bytes": 105768, + "sha256": "220bc0203cb2b920db6262bc60a88a239642f56c95b6278a642cffa2274014b9" + }, + { + "name": "System.IO.Compression.dll", + "bytes": 464168, + "sha256": "fdedbb1d181bed26d4dc4e47a89a5c789303ec5bdef4f49cd04789e39f6351f3" + }, + { + "name": "System.IO.FileSystem.AccessControl.dll", + "bytes": 33576, + "sha256": "e2879624ba93d32c15b0846f065c006ecf1b5c17329ed85040d0ad4d6e3bee54" + }, + { + "name": "System.IO.FileSystem.DriveInfo.dll", + "bytes": 97064, + "sha256": "11d94c718e7d5201fb5143eb23ce4339f9b7996f90d8705e97185e92e10e90ff" + }, + { + "name": "System.IO.FileSystem.Primitives.dll", + "bytes": 15144, + "sha256": "682826f255fa45c69cd3379c03ec2648717f914f2ac7fc5976195a0acf41cdba" + }, + { + "name": "System.IO.FileSystem.Watcher.dll", + "bytes": 113960, + "sha256": "6029576c5871501eefedfc60b26ad9c6bac7bf938b9bba88c22c84449442c0ec" + }, + { + "name": "System.IO.FileSystem.dll", + "bytes": 15656, + "sha256": "c727e4f1883e848e70658a72afcfe0a18fbdca669c60565c40cf7b85a8e6022c" + }, + { + "name": "System.IO.IsolatedStorage.dll", + "bytes": 84264, + "sha256": "6f027692bf12a03ef6e7fd1655ce3fb9eac4688a61b2c284f6e65944ee21779f" + }, + { + "name": "System.IO.MemoryMappedFiles.dll", + "bytes": 97104, + "sha256": "f369062461d49b7a869c8a88bd6e41b8585cb8beaa931a4eb8aae27532dac0ad" + }, + { + "name": "System.IO.Pipelines.dll", + "bytes": 197928, + "sha256": "27803bae211d796ad750079590d40e0c5d6c5ca8063e1da78edcf0d9e6efc845" + }, + { + "name": "System.IO.Pipes.AccessControl.dll", + "bytes": 24912, + "sha256": "9131c3aa90cb7ee708dc747826ffb26187440bcc3fc72c2188e41a5351f2bb86" + }, + { + "name": "System.IO.Pipes.dll", + "bytes": 146216, + "sha256": "22f03ede1aae3bfc84bf6b23d40b84b90e271a83143dc4859927adeb95f0cd41" + }, + { + "name": "System.IO.UnmanagedMemoryStream.dll", + "bytes": 15696, + "sha256": "34b1a61ab7e1bd5baf5b9926e003b763bb9a080c53bb1074de77df3be0191449" + }, + { + "name": "System.IO.dll", + "bytes": 15656, + "sha256": "31fdb782d82167b0d3536f56f77fa51caa4636927f6f7b84cf3a9e0179ab1990" + }, + { + "name": "System.IdentityModel.Tokens.Jwt.dll", + "bytes": 91704, + "sha256": "56cf18b0b16ea80738e0768cdcbc9368f13bdbedaca86025756009e30f969fe6" + }, + { + "name": "System.Interactive.Async.dll", + "bytes": 230032, + "sha256": "75a516771f2e10fdb76c1ea603f8d11e702af7ec97b383f1036cee114ef3f491" + }, + { + "name": "System.Linq.Async.dll", + "bytes": 1112720, + "sha256": "149757a4113ae6102c425f1469a7cc14deb28635e94cbc9e0404f5e4dc518001" + }, + { + "name": "System.Linq.AsyncEnumerable.dll", + "bytes": 1493328, + "sha256": "e56f64ec6d8fb21f4ba78e37154387e6226e9861fb50d7aeb809f3af6976ce67" + }, + { + "name": "System.Linq.Expressions.dll", + "bytes": 4650792, + "sha256": "13f929698d47f7a6d87643b519328f70104e7fe958142a19c51408e5852931f8" + }, + { + "name": "System.Linq.Parallel.dll", + "bytes": 892712, + "sha256": "1a655c38a2f0606da52309494cc1eddbc13de0da70da8157b208b5dd08eb4cd6" + }, + { + "name": "System.Linq.Queryable.dll", + "bytes": 213800, + "sha256": "5ead52dc4a626c07fb73e3c2bc89665adf90d62e26f09e71869b33b9fcb0cde0" + }, + { + "name": "System.Linq.dll", + "bytes": 795432, + "sha256": "9faa0bd9ec0090d5482c89accfbcb0c14a5962e6618265ac0e5fbdbd505c4fa1" + }, + { + "name": "System.Management.dll", + "bytes": 72824, + "sha256": "4dc4d6846a3142087bf258e5923abf303c0a4c19e4bb212b066ad7ab8e6de859" + }, + { + "name": "System.Memory.Data.dll", + "bytes": 30472, + "sha256": "bae79a4ff6e8fcfb65a3d88eb53d281898e699e5471ebd780843e5616753f0c3" + }, + { + "name": "System.Memory.dll", + "bytes": 164648, + "sha256": "61bffb028fc072192232d7ef9f3c716fc378b25230a2d0cd09028f9024b49832" + }, + { + "name": "System.Net.Http.Json.dll", + "bytes": 129872, + "sha256": "d828a8983ac94b31e31d2a9dfc279fc5df9ed5272cd59c4386fdf0024dafdcd0" + }, + { + "name": "System.Net.Http.dll", + "bytes": 1926480, + "sha256": "aada8cf1df6dd84e6b700a4b8d6ef9abc289601f9113a21b024de428491b34a2" + }, + { + "name": "System.Net.HttpListener.dll", + "bytes": 329512, + "sha256": "30fad5a8b3934ff2cc4157a97d6b6d4a6806ceb04a79a8c146e10bade78af475" + }, + { + "name": "System.Net.Mail.dll", + "bytes": 544592, + "sha256": "770d5839cbab09e983bc236b33296d2bbfb1c65abba22a919859a2d39c6f8116" + }, + { + "name": "System.Net.NameResolution.dll", + "bytes": 110416, + "sha256": "863e059f5b89bd0cf79c05cf42922f9dd1021f27999445e23df6ca170f5c471f" + }, + { + "name": "System.Net.NetworkInformation.dll", + "bytes": 189224, + "sha256": "b20e61982bcf311c2256b51cebfc1c12bf9e6cbd3ccd736b1304860e67bb9c4c" + }, + { + "name": "System.Net.Ping.dll", + "bytes": 116008, + "sha256": "5e4bfcaf13163c44e84b452b31bab2869984a24fa781c5c550c08d6d7bd08935" + }, + { + "name": "System.Net.Primitives.dll", + "bytes": 245032, + "sha256": "13b89a3ea0dc3475ec0918ef41099899c1514d518de9f5c38f0da77d21805606" + }, + { + "name": "System.Net.Quic.dll", + "bytes": 398632, + "sha256": "321bb94bc47826480f36ae680284e7c2a12c4bcbf47f5e4bc38340e733e82799" + }, + { + "name": "System.Net.Requests.dll", + "bytes": 420648, + "sha256": "e992eef6a3547ef65190ad16bb73d6d0017135bc75dd8ccfba75eb0cee7e96c3" + }, + { + "name": "System.Net.Security.dll", + "bytes": 954704, + "sha256": "e01967c084602a5a442f5faed4b5d926e31fab069da817b87dcf4718479ab5a6" + }, + { + "name": "System.Net.ServerSentEvents.dll", + "bytes": 77608, + "sha256": "3aaf6bdccd88bf4928317ebfc7dd03c63afb821fc3073ba2e0ec4c04e81883b9" + }, + { + "name": "System.Net.ServicePoint.dll", + "bytes": 15184, + "sha256": "f033a7f81570b3bd21321666c8fb91baf7a94ff42703c6490874eff1d8994898" + }, + { + "name": "System.Net.Sockets.dll", + "bytes": 701776, + "sha256": "052ff5f26a52703d6e355c602fb083d41a348a0accb7ffb00c609ad6a81c78b2" + }, + { + "name": "System.Net.WebClient.dll", + "bytes": 176464, + "sha256": "995648cf8a7bb1009be08699eb08cb13224b440957ace35318069c106e197e25" + }, + { + "name": "System.Net.WebHeaderCollection.dll", + "bytes": 62248, + "sha256": "40bfa269b3349f88d45920862c64ab900bee21b20c3b6ff39d95ebf4ffc19098" + }, + { + "name": "System.Net.WebProxy.dll", + "bytes": 35152, + "sha256": "c08febef7878e1bef2370a4c5b910bdbc9f2713692132f0e61041e054f193b6c" + }, + { + "name": "System.Net.WebSockets.Client.dll", + "bytes": 100136, + "sha256": "184cf278b058996f4291a92af72610b5cec10f9a4135c8c3e4ac699bfe71bfd7" + }, + { + "name": "System.Net.WebSockets.dll", + "bytes": 259880, + "sha256": "e098d9cf9cdb868078ae79d7e80df6f83c3105a5225da6deb8a70317ec1f9b45" + }, + { + "name": "System.Net.dll", + "bytes": 17192, + "sha256": "027449b965ac79b1237338086acd7e31b4dab4ddef366f46fcb3f6bb3b5905d0" + }, + { + "name": "System.Numerics.Vectors.dll", + "bytes": 15656, + "sha256": "b8ae77cc1796283ced0ac1a6336ef7a958ee42237cba5a242416906b720dd2c6" + }, + { + "name": "System.Numerics.dll", + "bytes": 15144, + "sha256": "b0bcc35120cf2b6e4922758ff0f51bcb7e43303a44cd0437fdb9d5a7b35a91f7" + }, + { + "name": "System.ObjectModel.dll", + "bytes": 77648, + "sha256": "df4807ebb7fff4bbb59bbcdd6e9049daaccb6c574fab8e20f860eab6ff370b82" + }, + { + "name": "System.Private.CoreLib.dll", + "bytes": 17081640, + "sha256": "da430b65a7ef541544e64dce84190b92f8e6b2664323e535e3e1759cf909c8f9" + }, + { + "name": "System.Private.DataContractSerialization.dll", + "bytes": 2397520, + "sha256": "7d524f547e1371629376ee4e0f22e21b9fcd4c1d66e7eb24dd492128b91cbbd4" + }, + { + "name": "System.Private.Uri.dll", + "bytes": 265512, + "sha256": "55af347a4fa9f96f5daf1c884aebbf1d9e72d4ab7216c88f322d2da4c5e6bf48" + }, + { + "name": "System.Private.Xml.Linq.dll", + "bytes": 441168, + "sha256": "4d2ecb630f3af0c056003bf874e82a72e9c5fecfd0000e473bc358831841c226" + }, + { + "name": "System.Private.Xml.dll", + "bytes": 9005352, + "sha256": "387e624975ded40d802a017d00033f00f6f901a14aebece0debfb5c1e05112e4" + }, + { + "name": "System.Reactive.dll", + "bytes": 1349584, + "sha256": "c1cae1a8b97d5e0ed64f7a9947f6ae44498398b6e9ee71473c2bef24646e91f8" + }, + { + "name": "System.Reflection.DispatchProxy.dll", + "bytes": 73040, + "sha256": "a799bc7af60c557924187900a8f9728dd86236dd0bf4ae7b525db7d0c2fba614" + }, + { + "name": "System.Reflection.Emit.ILGeneration.dll", + "bytes": 15696, + "sha256": "154b5aef022342c8be333ecec4f8c3c5df1481ba0938eb8fc5cdcb9dc0c30a86" + }, + { + "name": "System.Reflection.Emit.Lightweight.dll", + "bytes": 15696, + "sha256": "8debd602f061abd6035e366d6bc661957ad9c287285e68c028e5819d88a54b5b" + }, + { + "name": "System.Reflection.Emit.dll", + "bytes": 344400, + "sha256": "1935517027a64105678c4b8401432cdb6a713c4a3c61bff07ceec8490e5b49ae" + }, + { + "name": "System.Reflection.Extensions.dll", + "bytes": 15144, + "sha256": "1c6add41e5e1d2db428f7801cbf0b88d0585160acfb54fe4d9ad1c82d07bb1be" + }, + { + "name": "System.Reflection.Metadata.dll", + "bytes": 1269544, + "sha256": "1dbe4fe56ae820e42989e2789b3f5385e650dbb28e4391f23285284cec004597" + }, + { + "name": "System.Reflection.Primitives.dll", + "bytes": 15656, + "sha256": "b4c4ab768b87d436a6517046e42f9d4d6d61d17dc38bb99a715f87c0a3a2bef9" + }, + { + "name": "System.Reflection.TypeExtensions.dll", + "bytes": 34640, + "sha256": "17cf650136cec88e2f9d5d00bbb5c8a6f48574b08bc36e2644ae3f58199890ea" + }, + { + "name": "System.Reflection.dll", + "bytes": 16168, + "sha256": "fbe0145b3c95f8f791d50cc7b9626a62686b6c70d46618da0d483c48ff55e47a" + }, + { + "name": "System.Resources.Reader.dll", + "bytes": 15184, + "sha256": "d9a0ab7d18d0326911c24d8c6c856752e6ca64918794ad26a98a17b9d90e1192" + }, + { + "name": "System.Resources.ResourceManager.dll", + "bytes": 15696, + "sha256": "1539bc31930b991c99d6af206099a0ff18df5d32d527f14b8cfb3907b2e69485" + }, + { + "name": "System.Resources.Writer.dll", + "bytes": 45864, + "sha256": "f3d159587501ddc902d183eb193ec6a0824aa1804d7d78072d8ba97f723f4d15" + }, + { + "name": "System.Runtime.CompilerServices.Unsafe.dll", + "bytes": 15144, + "sha256": "921e93f70db6043cf67b18214c7e00fe808bd54dd76e19b10ad17029eca9327f" + }, + { + "name": "System.Runtime.CompilerServices.VisualC.dll", + "bytes": 19240, + "sha256": "f663372b26eabe5b9d1e1fdcd6991424d839ac404c41877e33d9fbb89e8c82de" + }, + { + "name": "System.Runtime.Extensions.dll", + "bytes": 17704, + "sha256": "26539223c876791930ca9964113936249a41bc4ab137f2fe2067ca5e046fde5b" + }, + { + "name": "System.Runtime.Handles.dll", + "bytes": 15656, + "sha256": "d0276025ce48d6beb96aa6ac9b2bd21731f5e329c7e59aa1364c58b41db388d4" + }, + { + "name": "System.Runtime.InteropServices.JavaScript.dll", + "bytes": 40232, + "sha256": "c9c8f74e462eeb321a599c8df69be6b2ceca643f26bf0e671c341a2fe02bd6d7" + }, + { + "name": "System.Runtime.InteropServices.RuntimeInformation.dll", + "bytes": 15656, + "sha256": "d08efad4b59830aa1ae3b58b90a745664d3836df4ae4e680dd6ac840e954662b" + }, + { + "name": "System.Runtime.InteropServices.dll", + "bytes": 111400, + "sha256": "069e1eece19f9422b493e07375ee4ed48083d79220a2274a7d48816f580734ab" + }, + { + "name": "System.Runtime.Intrinsics.dll", + "bytes": 17192, + "sha256": "c2f61a1ab6309424e20c201ef3779108e613cf19df99efc6d20a9510ae3a19a4" + }, + { + "name": "System.Runtime.Loader.dll", + "bytes": 15696, + "sha256": "32c0ed611fa4b8f5e0cf8a22c59a4013cf9636c5521565e6fdfe45362a5518a6" + }, + { + "name": "System.Runtime.Numerics.dll", + "bytes": 366928, + "sha256": "c224bf419c7c9f1fe602d61e3ebc2ce326b28ca56b0c2c7aa08c83ce90741957" + }, + { + "name": "System.Runtime.Serialization.Formatters.dll", + "bytes": 129320, + "sha256": "c20385466f7db7c94af9b82044a0518e9400639939c19a797b7354afb198496c" + }, + { + "name": "System.Runtime.Serialization.Json.dll", + "bytes": 15656, + "sha256": "2ead406edf045dd46e5668c5f582d9d5d388192544ec6094ffc9ba8b6dd81d8c" + }, + { + "name": "System.Runtime.Serialization.Primitives.dll", + "bytes": 30544, + "sha256": "cca6d92b6239f673a60b13c4d789e575f92ab3e5d4e82467a54a44fe96d4d5b1" + }, + { + "name": "System.Runtime.Serialization.Xml.dll", + "bytes": 16680, + "sha256": "707fc892ef3f2c81be64faa0129b80b235683838a15ca04935ee49d97770d63e" + }, + { + "name": "System.Runtime.Serialization.dll", + "bytes": 16680, + "sha256": "0807a268a3f4f6940ece93b28080724c392bbdda7d55e1ca111c72d42aea76c0" + }, + { + "name": "System.Runtime.dll", + "bytes": 44880, + "sha256": "1702c41bc967d7d6d25ac6db950d3486834e99e8d3685912364f90a1cf5588b6" + }, + { + "name": "System.Security.AccessControl.dll", + "bytes": 60240, + "sha256": "219f3b1358ff5442a8ae0bcd387edb81df79f08aa6bfe29e7a24a4bc609cb3d1" + }, + { + "name": "System.Security.Claims.dll", + "bytes": 102696, + "sha256": "76258d9a647db06bdae0f548ae25cb9a0dc548195f3f725b8749976522d388fa" + }, + { + "name": "System.Security.Cryptography.Algorithms.dll", + "bytes": 17192, + "sha256": "a4daea4e886dd9df496be29a94696ea20b9adec32a0a7d3c1e0849c6b754b34f" + }, + { + "name": "System.Security.Cryptography.Cng.dll", + "bytes": 16168, + "sha256": "2fc2f1594abf62a086287716114ad73a4e21b5fc6e397c848aaae99437cad1d4" + }, + { + "name": "System.Security.Cryptography.Csp.dll", + "bytes": 16208, + "sha256": "1e6b35f367fa7f6fc19e5b2e1406ea98a003a5124711cbe8f8f49de3c01e78d7" + }, + { + "name": "System.Security.Cryptography.Encoding.dll", + "bytes": 15656, + "sha256": "fc7d73b022846e2ef64426c61253fc7df123c3a2b4092a5bcedeca233490753e" + }, + { + "name": "System.Security.Cryptography.OpenSsl.dll", + "bytes": 15656, + "sha256": "ac4b942888621af930dce71dfe6727a366a1e56e494ac1def9e621f34d629132" + }, + { + "name": "System.Security.Cryptography.Pkcs.dll", + "bytes": 718632, + "sha256": "cc32431e22a7c216747204a92c91a75218ed1aeb80c5f457a851b12500f7edc1" + }, + { + "name": "System.Security.Cryptography.Primitives.dll", + "bytes": 15656, + "sha256": "6c54c3bc9f6c08a4c94363cc2fed3ce1677e65019e8d1bd067cb7647ebc5b1aa" + }, + { + "name": "System.Security.Cryptography.ProtectedData.dll", + "bytes": 38712, + "sha256": "02321322ec85e0a68f28ad33e549213b1dbf3de0e66c3f7803f9ae32c0d00ffd" + }, + { + "name": "System.Security.Cryptography.X509Certificates.dll", + "bytes": 16720, + "sha256": "c9bff94aaca9800391f34b7615550b64eb9bd37625e8570068be968cc37da9af" + }, + { + "name": "System.Security.Cryptography.Xml.dll", + "bytes": 535848, + "sha256": "88666baab0a814526c6edcfc2a0e720958f88c9775f24e2c7797050cc5f890c2" + }, + { + "name": "System.Security.Cryptography.dll", + "bytes": 3115344, + "sha256": "545b05a72beb752fda22734c2834dc9406bc0b9cc1cb4b94c7fbf7036cd57a14" + }, + { + "name": "System.Security.Principal.Windows.dll", + "bytes": 39248, + "sha256": "f1efef11ab2e2a21b181d5417c450fdb49eb355cfab77833811e64969fd67a77" + }, + { + "name": "System.Security.Principal.dll", + "bytes": 15184, + "sha256": "50900b69d1e0e5ed2f30e21a53f57f2090f0b3ab9fa483028b78eda0f68ba24f" + }, + { + "name": "System.Security.SecureString.dll", + "bytes": 15696, + "sha256": "bece3e16be0811a6727ec4da51aef9d36e5dfa2245499e24582b2e53e9b79e91" + }, + { + "name": "System.Security.dll", + "bytes": 18256, + "sha256": "5f48d9f684206f39712c681cfef7de742f2c9c811ee8adb4cdcd69db552146dd" + }, + { + "name": "System.ServiceModel.Web.dll", + "bytes": 16680, + "sha256": "a10955542df4578439f83ccf271755a026ef24bc369b7d8b65701993e18c62b9" + }, + { + "name": "System.ServiceProcess.ServiceController.dll", + "bytes": 34600, + "sha256": "bcd63c1f1e896e84056f3d7047e483b5feaa80fa890267f54d8594c71894dff2" + }, + { + "name": "System.ServiceProcess.dll", + "bytes": 15656, + "sha256": "71cb42ff772d1d4a7c13710a6054ce7f5ee42baca04b38cf287ee90a95292a90" + }, + { + "name": "System.Text.Encoding.CodePages.dll", + "bytes": 869160, + "sha256": "6cb51018fa116e1728c7c07f51409bc3ecc6377f3db0313cdecae7ce82bbc823" + }, + { + "name": "System.Text.Encoding.Extensions.dll", + "bytes": 15696, + "sha256": "535e952bec3ce372f5675b271c112b18cedbc52c3562632b1dbb4f95f63059e0" + }, + { + "name": "System.Text.Encoding.dll", + "bytes": 15656, + "sha256": "1f27c603ec3badec9e52dd6ad3be14e8d7b949c57bbedcaa815e65976682531c" + }, + { + "name": "System.Text.Encodings.Web.dll", + "bytes": 122152, + "sha256": "f72745e4d9644b428594444fb5303d12ffea788e3091899bf36cde1857654c3d" + }, + { + "name": "System.Text.Json.dll", + "bytes": 2102056, + "sha256": "aa8205e0533954bc4e2ac4ee30f6fd89f4ec14277b22edb937f5d6a585a11fee" + }, + { + "name": "System.Text.RegularExpressions.dll", + "bytes": 1158952, + "sha256": "dddb5bf479ca3d6b1dada367743dcc52bd62949d60f40713e3d8f92bd9d758d2" + }, + { + "name": "System.Threading.AccessControl.dll", + "bytes": 35152, + "sha256": "0a5fc894758e2ac86aab28b0e59de93868c3582b2591222c8ba9fdcbcf4ce704" + }, + { + "name": "System.Threading.Channels.dll", + "bytes": 165672, + "sha256": "200334f820eb6422e263cc88f5feb49ee55e18322dd53081295c8d58bc186db5" + }, + { + "name": "System.Threading.Overlapped.dll", + "bytes": 15656, + "sha256": "7425d124ef5fc3b5093ad3b9122dace56916d0fe63db972829898abf4841d7f4" + }, + { + "name": "System.Threading.RateLimiting.dll", + "bytes": 175912, + "sha256": "1fd903ed59ec1f7a525ff457ee1508d19266dfa4ed8969c6ba59f594a810d375" + }, + { + "name": "System.Threading.Tasks.Dataflow.dll", + "bytes": 532816, + "sha256": "b63489e49ba07b6faecc2a84ca17ab312e53ad6af6da70fee84bbf637400b4c9" + }, + { + "name": "System.Threading.Tasks.Extensions.dll", + "bytes": 15656, + "sha256": "e6a32cee81ae8501e53c730742544ad6713e953a7711d0757a1f4280cd190971" + }, + { + "name": "System.Threading.Tasks.Parallel.dll", + "bytes": 134440, + "sha256": "52f35282a065f9c2d76cd4848693fd3ce53d2e7337ffc74d13fc4018a1da329d" + }, + { + "name": "System.Threading.Tasks.dll", + "bytes": 16680, + "sha256": "1b4898fd5257ffbe3d85b97ccfcbbda67c15913a693a066a6315ed10fee6cdc6" + }, + { + "name": "System.Threading.Thread.dll", + "bytes": 15696, + "sha256": "9c342261a8412f187116dceeba8e4efa6b8279448d35572b1c5806a928d0c189" + }, + { + "name": "System.Threading.ThreadPool.dll", + "bytes": 15696, + "sha256": "387d41fc14b1040f957404b9c5ae564b2fd39c72f927b6d20ea653216394e0c3" + }, + { + "name": "System.Threading.Timer.dll", + "bytes": 15144, + "sha256": "782a7afc4171139f9ef3604a4e1ad93d0e994c655b14832de71c349be87d5ebf" + }, + { + "name": "System.Threading.dll", + "bytes": 80680, + "sha256": "b37d15e440fd1ea157d8788d806eae6fc241c51bde0616f851bf0ebdf228c5e9" + }, + { + "name": "System.Transactions.Local.dll", + "bytes": 401192, + "sha256": "d67508fc04ce422f5825f702616739c15ed4550efe9f0de93cc09f461a55ea70" + }, + { + "name": "System.Transactions.dll", + "bytes": 16680, + "sha256": "1330868999ea05163c764085325a73fd841450307b16dceed71f4b189c1979b2" + }, + { + "name": "System.ValueTuple.dll", + "bytes": 15696, + "sha256": "0cc16eb41281da830b49a34cc8679c05876d997b34e9097be010be06cedda4b4" + }, + { + "name": "System.Web.HttpUtility.dll", + "bytes": 57128, + "sha256": "970b22b2213ba931c36c3d5da61b824cef58583a9118721d34508ae25c42e989" + }, + { + "name": "System.Web.dll", + "bytes": 15144, + "sha256": "2cc4eb2583d0fd9c1dab9586442259faf7afe073e7836f54b55f938eaa131d6f" + }, + { + "name": "System.Windows.dll", + "bytes": 15656, + "sha256": "ba4b71ec58a0ec3581d0eae05a4fa4ac65a88d5e4a5970301efeafbd6177530c" + }, + { + "name": "System.Xml.Linq.dll", + "bytes": 15696, + "sha256": "a2cad68701e3f8087917ca43d96c3cbdf5f74adbde6082fea4c8e24fe9c3979e" + }, + { + "name": "System.Xml.ReaderWriter.dll", + "bytes": 21840, + "sha256": "8bede723f90f8709137a745e05c1c0063a4dd324703e35f5ca33d2251ee9c012" + }, + { + "name": "System.Xml.Serialization.dll", + "bytes": 16168, + "sha256": "f353b949bbd0a663e20292f101c99ad439b9681997fa152fb4f143ef0c82ca87" + }, + { + "name": "System.Xml.XDocument.dll", + "bytes": 15696, + "sha256": "6e1c553b6dc419cf53ee34f90c8232f37fcfb1e9e388c948fe5d6a1f1afa7247" + }, + { + "name": "System.Xml.XPath.XDocument.dll", + "bytes": 17192, + "sha256": "5be8a823cbe81023e025ae1bb9148a564fb3f8aee878018f5fda09efe2ff670e" + }, + { + "name": "System.Xml.XPath.dll", + "bytes": 15656, + "sha256": "efaeb4bdb02907d6f65cd77cb1b2efec6829787075d4aa632eeae04d5ed9404c" + }, + { + "name": "System.Xml.XmlDocument.dll", + "bytes": 15656, + "sha256": "240dcf339fc9a49d009685ce6c5a085445d7ba5f0d11be3774a055ec45b115ff" + }, + { + "name": "System.Xml.XmlSerializer.dll", + "bytes": 17704, + "sha256": "4595c8322b0e5b7ec96e1b3b915b6cc18a977179f153909918b72e00cf1e7f54" + }, + { + "name": "System.Xml.dll", + "bytes": 23336, + "sha256": "184195549bb320f74c7fe2b74da2b262fa921d8f38c645f95dfe4b14bb810fe9" + }, + { + "name": "System.dll", + "bytes": 50472, + "sha256": "cddf627ee5147177f735c6e5bc169eb954e3e42a9192a6d0ce00db1b95739ff9" + }, + { + "name": "ThirdPartyNotices.txt", + "bytes": 1813, + "sha256": "4fc4244935bbe3516164402c573f053a5d246571ed4d357e6cccd8ebec296bbc" + }, + { + "name": "TwinCAT.Ads.Abstractions.dll", + "bytes": 333696, + "sha256": "f9892e164816e0b1cc9aa47c2efe3f48814ea8fbe4f04a125460555eaac9d9ab" + }, + { + "name": "TwinCAT.Ads.ConfigurationProviders.dll", + "bytes": 57728, + "sha256": "016eb9f6687832b0a7a819609ffb3227204f75732919ef19fb3366c038a11c5e" + }, + { + "name": "TwinCAT.Ads.Server.dll", + "bytes": 158592, + "sha256": "7da06f37c0572d5a8af8e0a5d6a81bea18c3ce1c08ee7501668570fc70a7d033" + }, + { + "name": "TwinCAT.Ads.dll", + "bytes": 934784, + "sha256": "2a9c2ca91889e24f088123ce313fc96060897b9e34232022b0566dfd2ea32a0d" + }, + { + "name": "WindowsBase.dll", + "bytes": 16168, + "sha256": "481909d0e001d29a90733c1a20b67b81f7780ea4327cf27071c983bde61dd827" + }, + { + "name": "ZB.MOM.WW.Audit.dll", + "bytes": 15360, + "sha256": "8dfda63f20ac0a34c43716f593bcad60755daf71ae4aefbf7ab1f34a0951de11" + }, + { + "name": "ZB.MOM.WW.Auth.Abstractions.dll", + "bytes": 32768, + "sha256": "24099d4d38811a364569cba4924af2430fe1e8ad8d3e735bd840dbfaa548cef8" + }, + { + "name": "ZB.MOM.WW.Auth.AspNetCore.dll", + "bytes": 8704, + "sha256": "ac062c1f634055ad9b80bd13344481318d6f45ac45f40dbaeed861ee20a75984" + }, + { + "name": "ZB.MOM.WW.Auth.Ldap.dll", + "bytes": 23552, + "sha256": "8625dea672beff26bd8f4f2aa54307cf652e50ad66a2c6625bb27d282199c32d" + }, + { + "name": "ZB.MOM.WW.Configuration.dll", + "bytes": 12288, + "sha256": "ad89f1d2abcad33be99b03bca37b26a9b92f90c354e98a99928d6176b12d58a7" + }, + { + "name": "ZB.MOM.WW.Health.Akka.dll", + "bytes": 12800, + "sha256": "a1345d712159544954955b41e7d04bc35180e1b9b36fdddcaedff5821a09d9c1" + }, + { + "name": "ZB.MOM.WW.Health.EntityFrameworkCore.dll", + "bytes": 12800, + "sha256": "d4fa98ca71512d1927037db22477facf49472249854898fca55c49c726307693" + }, + { + "name": "ZB.MOM.WW.Health.dll", + "bytes": 19968, + "sha256": "3c95dff17440b9df9195092812949b6e16e0c02456953650a839963af66df633" + }, + { + "name": "ZB.MOM.WW.HistorianGateway.Client.dll", + "bytes": 82432, + "sha256": "83a4b5903cc6052403aed93f862db36aa4ca6f4e3c37b888dc94c7f0058ba027" + }, + { + "name": "ZB.MOM.WW.HistorianGateway.Contracts.dll", + "bytes": 203776, + "sha256": "593814bffa1866562b200eef4fda9f08ad3d039fa3e75628f4148007424627de" + }, + { + "name": "ZB.MOM.WW.LocalDb.Contracts.dll", + "bytes": 44544, + "sha256": "d4da2a5bdfd3ebcb56f7ec948cda12bf378dc34079cd20e864509902a93bed38" + }, + { + "name": "ZB.MOM.WW.LocalDb.Replication.dll", + "bytes": 130048, + "sha256": "234e31795fd0641f8f873f9ce9641d7d4b028be724463abdafb0f119dc18d800" + }, + { + "name": "ZB.MOM.WW.LocalDb.dll", + "bytes": 61440, + "sha256": "ac243f94af069faa0b171556a6e24bd5140237f275f3548c37789993c221ee6c" + }, + { + "name": "ZB.MOM.WW.MxGateway.Client.dll", + "bytes": 122368, + "sha256": "0c058c2827829d54a8556308e4ed552f1cb0011b863c26dafd40cef7bff5c42d" + }, + { + "name": "ZB.MOM.WW.MxGateway.Contracts.dll", + "bytes": 483328, + "sha256": "af97aa90aa944afd6e7613d5bbdbe85cd43c6f33f2bcdcf74b1ef5d854369775" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.AdminUI.dll", + "bytes": 2152448, + "sha256": "fee3e28ddb43a437529eeb9234860d3e916a3248d86acc28a97d105c1b4a0e71" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.AdminUI.pdb", + "bytes": 918716, + "sha256": "241af1a23e599430d6c1aa484da7d89d28b3b49733d8d86edaa94c8c3af5504e" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Client.Shared.dll", + "bytes": 119808, + "sha256": "ad4fc8bb1bf46f941bf8cdd08db72a146e1c15079ac6c7f2b765e6c570ca1f93" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Client.Shared.pdb", + "bytes": 37764, + "sha256": "898ec1d3cc434c179fb29c65c14150bc3df92d73dab75225102cfbad724ef262" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Cluster.dll", + "bytes": 67584, + "sha256": "4df2f5460fb3400ad76995213586b843bec5b4c4bd5cd29055157b98d15c6bdb" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Cluster.pdb", + "bytes": 28304, + "sha256": "7808b68a3ad3c1d02e0ab747d5d9d59609ca6c768f76d44c8188268ef8cb3017" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Commons.dll", + "bytes": 231424, + "sha256": "3a11cecfd5dda7a893b633c5c6751c780d47a7f237cec291540762f6f54dc6e3" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Commons.pdb", + "bytes": 111036, + "sha256": "addc0a25d6ba47319b4f3d94edaca213f1e302d36977573825a7b70e0d651ced" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Configuration.dll", + "bytes": 542720, + "sha256": "6610e766f42d54f2974f0ee5129e02eb76ab8480684e425f6d7761683e74a0c8" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Configuration.pdb", + "bytes": 85872, + "sha256": "7c6cf5249abc500c79d3150c289c7c35aef2936a77bd9f3ff92fa49e2d9a4462" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Configuration.xml", + "bytes": 162827, + "sha256": "151be457f42fd6e36319e63d55ad28c5e9f7f07ce98fc6428dcf7695db2cb0c7" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.ControlPlane.dll", + "bytes": 179200, + "sha256": "4ac5a9891371bbbdb221c8ec50a4ed4a18040ac465e337af3ce463b33e04d383" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.ControlPlane.pdb", + "bytes": 55588, + "sha256": "4bbe6ba963f6a2db156677d592ec642ecad5b138a1b1f5411eaa96c1ee30bc32" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Abstractions.dll", + "bytes": 124416, + "sha256": "25ddc1d058a77dda40beb04d6a77e4e6026f1fcffb6fa5277ea214a88574527a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Abstractions.pdb", + "bytes": 36316, + "sha256": "f0ca79a45bbf5110e35d1ad26d9b48c290ab4d5356cb698798e57dff18d6df62" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Abstractions.xml", + "bytes": 343951, + "sha256": "bac920d88ceefc73c12650d0899dfb66437154e6bd96f700355487482ffac0ec" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.dll", + "bytes": 56320, + "sha256": "052fcfb717dd2a2c2a02b1f24744a1d33ce83336deac56b1870badd4b58f5e80" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.pdb", + "bytes": 21188, + "sha256": "cb188e9a9e759f361e273dad2826278e8438edfd9a104722daf1ac7cc73fcbb4" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.xml", + "bytes": 54103, + "sha256": "e55af77bab0ec8d427e4823bd79b881f026a9a7154393852dd282fedbd7878cb" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.dll", + "bytes": 83968, + "sha256": "85f3088fb936306680ee2b18ef5e5967684568ba081ff89b8f1c12fdde0522b0" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.pdb", + "bytes": 28488, + "sha256": "72587a466480eab038a758b3599574270a45b71b53c3d2619c3865ca4e3dd3a8" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.xml", + "bytes": 106082, + "sha256": "98ac58b6f49df51b405e7cc49dd297d72c25a544b3151cecbf7f111ffd8fdb8c" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.dll", + "bytes": 13312, + "sha256": "014f31491787973dd12dc9bc3eea8d78682bca670355334861bced43272fa355" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.pdb", + "bytes": 18300, + "sha256": "6c8012751d1dd22ff8845dcdf0b072145a363b000b290f0dde94518614e4e626" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.xml", + "bytes": 25691, + "sha256": "1daf5bbd3dfdbc85b4b5d6102592549e460ce5054716c004f207e4856bc38e80" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.dll", + "bytes": 135168, + "sha256": "20ab4fdb1818143ce8e366bde1c22948d54720b2f97355a000a7daf8a4b643de" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.pdb", + "bytes": 40392, + "sha256": "ef3f09b0163eaf01e9f42688bc61786fb9b2b87ead8ab2c79e24052dc20463b2" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.xml", + "bytes": 96547, + "sha256": "8348f87d6691b40e764fa8cf2defc7f2d4e1b585832d86985db92e15511020d0" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.dll", + "bytes": 117248, + "sha256": "3ca255404ed43dad90fc0057cd3f6af467db778930979bea514c1703af5b96cc" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.pdb", + "bytes": 74668, + "sha256": "3b97f606e14f7cf71b54b46b9fdee6f04b41c5cd9a8be64f12ff7bfa43d589ac" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.xml", + "bytes": 58289, + "sha256": "1144d8e281e7420c26d6d7fe3dceac00e18c8c6556458b9bf8bc15b4964f7a45" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.dll", + "bytes": 121856, + "sha256": "1e1dbcbe3b4c40028e1063f9caf0769845da690a419cb1dcb4855eea0495f847" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.pdb", + "bytes": 41236, + "sha256": "0e5bb6c951dfc69817303942573d1b8598f066877c077c542433075a1751222c" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.Scripting.xml", + "bytes": 174730, + "sha256": "5d6a6f1e867319a4433ee74ee965dd1c6138885dad4f2ad94ff8a19d3d22c18b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.VirtualTags.dll", + "bytes": 11264, + "sha256": "00e7f84dabc0a52e3bfb15743eac8c2260771dd09b61c8c256181c34484d231a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.VirtualTags.pdb", + "bytes": 15540, + "sha256": "334807d427e2e97967a3b6d5e752eddd5a097f1d9663a9827fedd875e76396b5" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.VirtualTags.xml", + "bytes": 10542, + "sha256": "b600e9174c9f59c10c6cbef14dc4f313d79c84c69c94b23fc25a481d763f2c22" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.dll", + "bytes": 124928, + "sha256": "b268b60e972a3e75c4a8d3662e22397b1033cbec7cad1cd556d44b2dadcdefb5" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.pdb", + "bytes": 41688, + "sha256": "81707c449de847eb4f4e31f2e54e97689bf401b6fa0ceef0dca4f9a7599c2582" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Core.xml", + "bytes": 190880, + "sha256": "76f843527b6ec5520f8a22a912208bbf9b5bedd0c42a0123808d0ad6e2791ee0" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.dll", + "bytes": 123392, + "sha256": "072879f81bd7bf0fa1c0e14c78b5b10b777fb863ec66971bd2dc6606001a605b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.pdb", + "bytes": 38432, + "sha256": "4e33d1dacede63070e4f35b37f5f44c869274b123e13c59cfb69a56272b95e30" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.xml", + "bytes": 125643, + "sha256": "88e44591e5ad0edf1c8323dce58d3f572cb569f170b5999e66f0cdadb3afd1c4" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts.dll", + "bytes": 24576, + "sha256": "2d5e43dac6a78ad3dd5bcdc19e0ef25fea26f5ac923a9811e352749be093f78d" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts.pdb", + "bytes": 16072, + "sha256": "dbaa41c5b36f90081516c0e3f800e28267e84970ec0eb402e54ef23d4661c6c3" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbCip.dll", + "bytes": 214016, + "sha256": "e586ebe9d8e012093057d50039935a2b7f1bba38392c3f1deaece9f0cc3e9d7c" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbCip.pdb", + "bytes": 63032, + "sha256": "c54d0c928a6132533be617b29ab1d2707cfad979e55a4c40b8fb9421bf1980c7" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbCip.xml", + "bytes": 254211, + "sha256": "e4fd4beecddd5f80c1238e17aa6ef752f134b7b6854e71f8cc9505b730a94c5a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.dll", + "bytes": 30720, + "sha256": "e3fe9890be3734500a65765e5f7f0572246adea44883ef66e5b0d96194ee0ccf" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.pdb", + "bytes": 17864, + "sha256": "955bf2084ab15ff056c1a951c38a42e96a168d8c6a92260bade89d37d56db354" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.dll", + "bytes": 136704, + "sha256": "0db26e1673c719e31fa50eedf5df22fc03daa2fa18f719348e98bb5386bee4fc" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.pdb", + "bytes": 45468, + "sha256": "758b7a0942dabadedd7702fe5125fd7a761a5b353d89c250e5acd9dec057c309" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.xml", + "bytes": 131635, + "sha256": "09228d8cd1ab88adffcac4ac504fade6bb3d1df938fc06eb7e008fcef08f5f60" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.dll", + "bytes": 10240, + "sha256": "f79af68aac513e73c8e8254964c3562a87636a21eee0c33ed60624d7460908b6" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.pdb", + "bytes": 12568, + "sha256": "f87a8c2be660023766a735ecb89a3bc65291df011fe563b39cb08078b5e995b6" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.xml", + "bytes": 9764, + "sha256": "2452766cac3fa00a309ec057dddb1e214d22c22590f234271f44782e65260c37" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Calculation.dll", + "bytes": 57344, + "sha256": "7bd5475e5318245d23764fb4e653af99a8b0e248e76a4d938c79dfd785d4f2b5" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Calculation.pdb", + "bytes": 26956, + "sha256": "e197b60e67ca67be2c92c0ed77b1c830f2c53ed8821ac69f050fc76767d4a07c" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Calculation.xml", + "bytes": 67945, + "sha256": "15af650cae7be32c5733488095379d8ce6b70cedd8ba9f138e47697e9a9e24b8" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts.dll", + "bytes": 38912, + "sha256": "19b87ce6559d89f65f02cdbf5abe7b8bd69633c5ecc99ec5c3a24ac9bd528483" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts.pdb", + "bytes": 18496, + "sha256": "157625666894008aeef1571d25e366c226541c7677400856100430398bb6ebc1" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.FOCAS.dll", + "bytes": 300032, + "sha256": "086eedc42cce656c6bb47f4a424616c53e24213a0ae5ab8a2c0f3a8008a68605" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.FOCAS.pdb", + "bytes": 72444, + "sha256": "8df116e311fdd9bfac7195ae21eda6cc2f8df93ee1cbd081e333ce7af5166359" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.FOCAS.xml", + "bytes": 279826, + "sha256": "903b317e9358ed9343539eb5e0d79b03e754d57933407aae751ddab701dfc90b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.dll", + "bytes": 19456, + "sha256": "2ec905ebad9d0bdffc7e7b94432d6326a44c41ff03d8da4bd1bcc78033d799f1" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.pdb", + "bytes": 15332, + "sha256": "d5ae46db8ce4c7493c91e9f50da4745ba3766ce84207e88688bb4304d71b81db" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts.dll", + "bytes": 24576, + "sha256": "327811f15f779ae7b55424888567b78a7d4b37728d65f101bba13c40a87514b3" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts.pdb", + "bytes": 15016, + "sha256": "fff7e2dc69c580fb9706a65fbdb5514fd0cb95005b0a7e03ba73591189529037" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Galaxy.dll", + "bytes": 224768, + "sha256": "2348f1e095c333e82e41b6001f509f7b347accc6ee325d97d998322a7b90f850" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Galaxy.pdb", + "bytes": 62920, + "sha256": "681403cb79ecaa7b33f4439dcdb27e348fde249f4a9726bba91c6bbd07c73a82" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Galaxy.xml", + "bytes": 235065, + "sha256": "aef31cd0df95839b045f21016fca05214bddad841eb0572f3a81f9fd0422a5f6" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.dll", + "bytes": 129536, + "sha256": "539765b1dfaf76fcd00ce4922c6896ef0f8a03889077a8f7c2ce02e99644075e" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.pdb", + "bytes": 53036, + "sha256": "48db1ccb30a4c367491ce5c2f113b2ec69cf301a5e82d261003deccedb48df41" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.xml", + "bytes": 160904, + "sha256": "9d008d19967e9b4908bfd835588c7787c8a81d7fa236c378f255f110beae6f0f" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.dll", + "bytes": 167424, + "sha256": "4989d96f22c912331e3dea9a53c84c60f8c1897221548be2209edd0d00044990" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.pdb", + "bytes": 58136, + "sha256": "cdeac0395b7b53929f057955cc89c855a58c99ec6a944edc1610d47e2c193d67" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.xml", + "bytes": 110729, + "sha256": "d80730a23a7a35f996103b5b808526406926de9ea150bc0964b51612bd33bc89" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.dll", + "bytes": 51712, + "sha256": "703ee7233f27f544baac7493c5ecd6ff5a6ab571470bfd23195dbfa084b6d50a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.pdb", + "bytes": 25316, + "sha256": "52f15359c3e44e7c079be70e787a7f20b55f830450b13fd0981ab2fd4d409991" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.xml", + "bytes": 92544, + "sha256": "f2031e9bade0a56ed491a88476d278f8c65341655a97203003f1af753b1f9fe5" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.dll", + "bytes": 143360, + "sha256": "2e22ad95c282d45a803f70223ce53b82f6d67a17016b05b25e302747731e742a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.pdb", + "bytes": 52304, + "sha256": "7e8e170a6cb1e4e39d8c4217647f89eb003ddeec01b5ced288d87f3227b8db3a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.xml", + "bytes": 79884, + "sha256": "bee8755c64b9243549d6711c5d0ad659ef4c7eb236dc8e0f79843945c090fdc7" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts.dll", + "bytes": 19456, + "sha256": "78864f34043e454dd245dd393edd30f9dad36f0a1044280bfc6d1309cadf7175" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts.pdb", + "bytes": 15516, + "sha256": "27e42b51027a8fb0d721937d7cbf504956697a045952c12175a2c3911894639a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.MTConnect.dll", + "bytes": 214016, + "sha256": "74f3674a2c72bae7d1c53505339c2bc6c287d986a2c4a489cbb56e1492520995" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.MTConnect.pdb", + "bytes": 56080, + "sha256": "af54281f237b66397b7e8455bec7335d55a50c899984538aa1bfdd2f042d4ea4" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.MTConnect.xml", + "bytes": 380093, + "sha256": "1b64d38425c0c55607242efc2d62ea045d643e2b61317895e0f4524359323848" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.dll", + "bytes": 25088, + "sha256": "f3b0683a976506acc2779a6a341381d578b6c16f0b0ae79e886830a2ed1d3650" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.pdb", + "bytes": 16468, + "sha256": "34a393856b8f2341625cc3c3ed3a1d80c57ae165d3d3361192347664c4f5ea25" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.xml", + "bytes": 39025, + "sha256": "accd72b04152c7564f0b78cb21bc2502f6896b9fab47fd61a6856fe5c3db327e" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts.dll", + "bytes": 39424, + "sha256": "ecfba5a5b6b6d47e68860db9f0f7f49390670678c73ee38060ba6446c2d4adf0" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts.pdb", + "bytes": 18700, + "sha256": "cc2c1fec83f3f2b3d295fffe4abc2848178060e069127359472da98cc95292e4" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.dll", + "bytes": 131584, + "sha256": "e3e85b327e92f84fc172c7e1ffbe930f55a9c80ed7aba3822832f048edbaaf75" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.pdb", + "bytes": 43024, + "sha256": "72d047b242255085b9debe55f6966fdaf537808140a8bb3b3638aac7a0d0e110" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Modbus.xml", + "bytes": 106666, + "sha256": "a79e16097cfc1b545a17c1e8e29e1de426d6659a4b99f4a321d42965335b4827" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser.dll", + "bytes": 48128, + "sha256": "4f0bc483dc484e6bbec149e74f0b56ee7ded366c5f0e9b51c934c39f0ae009b3" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser.pdb", + "bytes": 20624, + "sha256": "c1d20c55d8dccfb9933ee032d29678f6854a448b41521d4a09442d6ffc7c8b8a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts.dll", + "bytes": 139776, + "sha256": "9423a3a5992168fa1ea06f54c210262c36b3c166d615d2280f7609ef73c71c2f" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts.pdb", + "bytes": 79548, + "sha256": "3f8381a4695093dff8456ec45abcac1c756e8030069a23bd67a4002e4d5b7746" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport.dll", + "bytes": 12800, + "sha256": "8b0fa3a16a10c98c83ba5ac75474d8cc775b8cf89936545d8efb46803d421611" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport.pdb", + "bytes": 13240, + "sha256": "6f4f74fcfb2773aab495b265ec33b3921fca200dadee8ea4a62eca8aa6b17f51" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.dll", + "bytes": 195072, + "sha256": "99e5fb79d13d3f16246467d3db4575cb7c6ab4fa9d8bdfaa293b12fd10add2b1" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.pdb", + "bytes": 54116, + "sha256": "62ea849722955b97d59cf4dd56d74a4be45a2946d204c76100691a0dd5a68731" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Mqtt.xml", + "bytes": 317997, + "sha256": "d13d7f41df9e48aa19c97826f3e541ee9fcb4eac88a5eb7a78ce608eb4993e48" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.dll", + "bytes": 36352, + "sha256": "f1986e8b3fed9b6f56ee533a0840db6392429435a9950fd7a898e165edf00ae3" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.pdb", + "bytes": 19228, + "sha256": "f63e3474bcea302ebab842d75084abfb19beb348fdcb20225cd549a0a2e7e02f" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.dll", + "bytes": 20480, + "sha256": "a9139028b95a89213ee1cc0c72fab5072bd62ebc3c326257ddb9d7e54f92981b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.pdb", + "bytes": 14428, + "sha256": "93e9b16e46b78d9f1c7253ac93e4a55db8344c7254a1f429224d9da98fc08b71" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session.dll", + "bytes": 19968, + "sha256": "51729af060776feb906657e9b1fb096f532fda45c0a868dabf6f4d13648e2a8f" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session.pdb", + "bytes": 17388, + "sha256": "a4e9c4024895664afa8d280fcb9f41aad7dac9201aff064a4788627027ad369b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.dll", + "bytes": 147968, + "sha256": "5329764cb79c6fedf260dea7f28d838d849de3186517ddfb2aa19cb6769d3ab2" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.pdb", + "bytes": 44580, + "sha256": "1ccc68e8637427e9158ad161d825ba2333d6dacf1a80a233ca55fe60c34fd6ef" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.xml", + "bytes": 129454, + "sha256": "46118b8391fd48f63c75f2d47e5073affadb209eddb1fb98333b2e1e72727fe3" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts.dll", + "bytes": 29696, + "sha256": "ad0b80dcaeb3f41f88cfb5bb3aad416058379ea7fcf439e907c18cb332d330ce" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts.pdb", + "bytes": 16544, + "sha256": "f565435b23a3cc706ce79d534f97837a52e4bc8ce62362c3150ecc9028186b75" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.S7.dll", + "bytes": 124928, + "sha256": "898be19f7e9c939aae7da9129b12de98e950c32a1adf4a0106b7c36db1fc8ce7" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.S7.pdb", + "bytes": 39924, + "sha256": "511e969a419717b983cc6a36006df97a858f796243a0f7d949f19f7c60a4523a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.S7.xml", + "bytes": 142050, + "sha256": "d61d42a0c978ae00ac5073f640ef3184aea886c7917ca859ef233de4d4970bef" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.dll", + "bytes": 43008, + "sha256": "f1020a6645f0a8f1f2ba4f561439bf2a934cddab6f64aab2d116f2bc17547a58" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.pdb", + "bytes": 20052, + "sha256": "e93e2331d5d233be1824644d0f4432bc25d52891e75a2da9df1069a952917dc5" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.xml", + "bytes": 39882, + "sha256": "bbfe7f6d316b602d4b40c46ca050652377819a9f0165706d1fd553d79289139b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.dll", + "bytes": 38912, + "sha256": "5893dc996791013b127d30f0dff9efb88ba4e04792c995c9830cf13d3bbb5c54" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.pdb", + "bytes": 22064, + "sha256": "501103e0326d0850617422ef790a6206fd6ec6708da123dc054c561ef416b3ee" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.xml", + "bytes": 66014, + "sha256": "f038c7f0cc8d13363ace7df1a807b3c4ad0fb89a5cd225e6fd6ab29bd9fb6531" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.dll", + "bytes": 40448, + "sha256": "fcca0c59803a9f7f301afc3dd3d176594b94f0ced533cc98e8f5ec6c542461fb" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.pdb", + "bytes": 19956, + "sha256": "38c3ec6a2f5ace6a3b110d66a9c8862aee21af5d9ba3e93fa3a39047b7c041a7" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.xml", + "bytes": 52906, + "sha256": "a5c66fa18282501de55be8a0787b5f7797a0d3f3630934fe05297393f3dd298f" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.dll", + "bytes": 144384, + "sha256": "2f74b1537333fa7e934a18d22799ec11773b2af4634fbbcd17d78c204ed32d8c" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.pdb", + "bytes": 43080, + "sha256": "4b7368fc71a849d87092bab996e5612c646123cf33508a4a403773e7ce5ed5c5" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.Sql.xml", + "bytes": 202952, + "sha256": "70efab3049ef06f407d52cce405347c4fc901f8097db677ac123e6bd09290dd6" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts.dll", + "bytes": 17408, + "sha256": "16183887abba8ca29a909d01577285dd0952a2b763385d03ca44d40716894bd4" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts.pdb", + "bytes": 14408, + "sha256": "57f2e89643c7689e44b144dd2b12c1e51b1735c731ecd960d98138e166264b27" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.dll", + "bytes": 188928, + "sha256": "dddf7dcefa31770380092d36dc6bd4adf96a92339aeed9cf598786bac11e75ef" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.pdb", + "bytes": 53184, + "sha256": "ff45fae1c1c5e04fb4d3998fcbb56e69a56e35dbdad2d2b05a4d80eceb4bfb4b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.xml", + "bytes": 182433, + "sha256": "7bb97e07a5486091ead3746ec09055b07a3042d71117da9cd0883e5ec2c2054e" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests", + "bytes": 77480, + "sha256": "97531b8005df9dc8b129d2b22ba2049cf572d5d970046f7e8644ec632e860032" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.deps.json", + "bytes": 233581, + "sha256": "ae21fc09daa7a6e9f47573b2a6003e0cae109066d3ac6bd5198a1b604f62feae" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.dll", + "bytes": 786944, + "sha256": "9d64b5b3dd9bf7eff38f6fabe10382c107ab824485a309ba9649bfee9bbd843a" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.pdb", + "bytes": 154484, + "sha256": "56581c071bc2ec0330734aed3c348db17c2ee633370ef51d8fb5ac9258f76eab" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.runtimeconfig.json", + "bytes": 518, + "sha256": "1f5242b4cf444b7c09650cf381a94deb74379eb0f963e1c10458d8a8ca075f7b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.OpcUaServer.dll", + "bytes": 420864, + "sha256": "21a950d2ce976be9d4d46d1cf5ac10ce5eabd045a2fc755fcf6db51e3df40214" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.OpcUaServer.pdb", + "bytes": 114920, + "sha256": "765fef0b455742880032af063f6c34e1d6140a405c0fb1fafac67e96885c1e4b" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Runtime.dll", + "bytes": 539648, + "sha256": "9fb635484ec916a089cacf930cd9eb4b2b112c90ac614fe35c5b0dfcab2d05d2" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Runtime.pdb", + "bytes": 139100, + "sha256": "f854835318d0dbe237d17dc11755ed5c4026d3c1684999f5b3059949fe058a95" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Security.dll", + "bytes": 52736, + "sha256": "2c379eb543481d428181da1bb4a375f2300a2507b5c1c85c786c6276f1e6ab25" + }, + { + "name": "ZB.MOM.WW.OtOpcUa.Security.pdb", + "bytes": 35044, + "sha256": "b55a5e6b709496b93dfa9c62525376c10d35efa8b893cb719d5ac97a21f56869" + }, + { + "name": "ZB.MOM.WW.Secrets.Abstractions.dll", + "bytes": 20480, + "sha256": "3a39c92e9a96a305bd229e99d2f59f2c273f8d08c03e431d47e24bd8b8b0ef49" + }, + { + "name": "ZB.MOM.WW.Secrets.Replicator.AkkaDotNet.dll", + "bytes": 47616, + "sha256": "d6a3780f3487f5c8432fe12c057defb709d1dc7678c59307acd19b4cb0d6bdb7" + }, + { + "name": "ZB.MOM.WW.Secrets.Ui.dll", + "bytes": 39424, + "sha256": "782f903b42bce46fb3de827e24d1edcbe41187976b6918c740383de158e35064" + }, + { + "name": "ZB.MOM.WW.Secrets.dll", + "bytes": 97280, + "sha256": "0565fd86abead89be7b4520dddf92cabd5d0994f3620069aa496b8dfa41c9f39" + }, + { + "name": "ZB.MOM.WW.Telemetry.Serilog.dll", + "bytes": 16384, + "sha256": "bd33ce7657de5d2966a7768a014f8282ca434a208b05defa2d27bf24c6f124c5" + }, + { + "name": "ZB.MOM.WW.Telemetry.dll", + "bytes": 14336, + "sha256": "834772ecc662ea7c49a5b512a26f2447db55a072ef1fad16ca768fbee0cfe853" + }, + { + "name": "ZB.MOM.WW.Theme.dll", + "bytes": 26112, + "sha256": "12bf7d7ec7a618acdf9f5bff9a7c67091ce715698d3befb9aa610cc5c8b1b221" + }, + { + "name": "appsettings.Development.json", + "bytes": 297, + "sha256": "169a54d22027e13823af0d41c1314a6d3e44852041c8b35aa80478a88399fe1b" + }, + { + "name": "appsettings.admin-driver.json", + "bytes": 313, + "sha256": "eca047204cf6a9b4d89628d7ee2048bc68d46db55dcb4ae9bcf24dbe9e44cd46" + }, + { + "name": "appsettings.admin.json", + "bytes": 280, + "sha256": "bb08f16d701697fcd70695b75d81a4b09bce57daaa95d6fd81ff469258ad3530" + }, + { + "name": "appsettings.driver.json", + "bytes": 270, + "sha256": "a7dc1ab1db2e93f1a6e78b7b1b425720c3c610cb406e6266f0dbe2ebe01badaf" + }, + { + "name": "appsettings.json", + "bytes": 8680, + "sha256": "89f72acaded7f2d3ca434f2d922fe4daccdc03aa342f3973d35a160be9221b2a" + }, + { + "name": "createdump", + "bytes": 109016, + "sha256": "22aba25907dbf97b0b203b36a0b42bb58f05ebba182c0e33bd6fe2e486a29c04" + }, + { + "name": "libSystem.Globalization.Native.so", + "bytes": 64688, + "sha256": "5d118e17117aa0bdd21040eada1f458e09cf52abd2b9f9a9a77883722b474f1a" + }, + { + "name": "libSystem.IO.Compression.Native.so", + "bytes": 910176, + "sha256": "2dcbcf62854d9bcbe4582bdf4ddeab3d457d81414aca604f3e5cf4a009ffd43e" + }, + { + "name": "libSystem.Native.so", + "bytes": 97440, + "sha256": "81cecfe46c0f76859563aa65fbfba88d0c95a0910ed3141534cc1cd6d798bfeb" + }, + { + "name": "libSystem.Net.Security.Native.so", + "bytes": 14016, + "sha256": "eca5e39c56404d73aea62695d06abb1a81053eb1a92644d55ff22be825fbe97e" + }, + { + "name": "libSystem.Security.Cryptography.Native.OpenSsl.so", + "bytes": 217328, + "sha256": "3c988229e011ec5d632f33d1c979f532cd02faa32b370db0265a8148389c8669" + }, + { + "name": "libclrgc.so", + "bytes": 779480, + "sha256": "e343890cd571354696dcfd67aba35bbfd997d827d1bf91f77845f2e20a1524b3" + }, + { + "name": "libclrgcexp.so", + "bytes": 842320, + "sha256": "abeb0ba39bd75940da9ea58f713f303dc7a7595e8a0a8eaf9d221f4190a48032" + }, + { + "name": "libclrjit.so", + "bytes": 3794624, + "sha256": "dfe5ca0d063e6793b333d29f63cee5546b1e4e53720b749615c91fb69478fbfb" + }, + { + "name": "libcoreclr.so", + "bytes": 6848912, + "sha256": "5eaed8176e960fa1b00a244d25a5d64116d8cd19909e9bad1f65f0c1415117c7" + }, + { + "name": "libcoreclrtraceptprovider.so", + "bytes": 898104, + "sha256": "df87ff9f1d9b7c3d307066f6a82b5c6f30989365a44d2c61ca93b7c4045cfcff" + }, + { + "name": "libe_sqlite3.so", + "bytes": 1534296, + "sha256": "707fff6b18c1f083158e7a543c8d2545d5485f547ffd96db29679a95f52878d5" + }, + { + "name": "libhostfxr.so", + "bytes": 313848, + "sha256": "6995dc2ea41b1ed4495ab05f580ee071d7ff520389fff00ee5a7973690e9db16" + }, + { + "name": "libhostpolicy.so", + "bytes": 299488, + "sha256": "eaf39c631ba4f83722d53c857936127e1a22674efa46ecab2962960953c09246" + }, + { + "name": "liblmdb.so", + "bytes": 295432, + "sha256": "b4002a16380d150bec20c4890f090ddddf1d4deb9c04f4ba33d64004252ad509" + }, + { + "name": "libmscordaccore.so", + "bytes": 2383360, + "sha256": "170c3a19bd2b5c39cb7d9f1834643bd704a95ca8d21d4107b3dbeccfd2e53e20" + }, + { + "name": "libmscordbi.so", + "bytes": 1716560, + "sha256": "475bbda9e39495eccb78ab5fcb825e592aa6e8d37c4a041a223a15f89a2f230f" + }, + { + "name": "libplctag.NativeImport.dll", + "bytes": 3230208, + "sha256": "dec38f56006ae9e2119e9f61f9ff0e1aa9c08503ba4f42943c2d7632f60cbad5" + }, + { + "name": "libplctag.dll", + "bytes": 78848, + "sha256": "1545b5813148d7ade7662282683e15d2761e0e34cb853bafa3b11a4d47795aa4" + }, + { + "name": "mscorlib.dll", + "bytes": 59688, + "sha256": "a46967cdf47d7467aea5681163dba08afe766e677734c8e28c714dc817a32f19" + }, + { + "name": "netstandard.dll", + "bytes": 100648, + "sha256": "014bac0ab0529fb001deaa5ea95a40750da3ed0cd381ed6c67a475a59ff933c2" + }, + { + "name": "testhost.dll", + "bytes": 48672, + "sha256": "db1fd507774c7b5a14a5be89faf578d8e8f76ff146d7ff9a179284d01b8c3b9c" + }, + { + "name": "xunit.abstractions.dll", + "bytes": 21928, + "sha256": "3166dc70323fb30ccf1cedb0fe86f2ad122c46d254542342d90386efc4c9285c" + }, + { + "name": "xunit.runner.visualstudio.testadapter.dll", + "bytes": 1188560, + "sha256": "b44c5a14c3312414fe569bd9b9b94de5fbbda0f5a7b9e4adcdcc692180448c2c" + }, + { + "name": "xunit.v3.assert.dll", + "bytes": 214792, + "sha256": "483aec8a5b7faea0a92d0ae4f11a3479045f8f5e3f551dfc4dac6bedeaafa9ce" + }, + { + "name": "xunit.v3.common.dll", + "bytes": 191752, + "sha256": "e4175bc165d01b9828acdc996776370adf4f8d0a5865e75ec9ded17fb70258a9" + }, + { + "name": "xunit.v3.core.dll", + "bytes": 498440, + "sha256": "b3641e9e80cd8175e2d9995d6fa9750b8fb31740c87ba121e56cfe515f7f06cc" + }, + { + "name": "xunit.v3.mtp-v1.dll", + "bytes": 123144, + "sha256": "69903f4e48e5794350154d97bc911909974469780cd1931e23da3af419a1f2e7" + }, + { + "name": "xunit.v3.runner.common.dll", + "bytes": 978696, + "sha256": "8d9b157ebd8d9240d292ed922f5f26ba4011de5fd07812ceaac7baccfc5e6bc4" + }, + { + "name": "xunit.v3.runner.inproc.console.dll", + "bytes": 75528, + "sha256": "360ef1613c7d4148a715b8495d9f7ad95e4126f75ed86dda6cf81139c28b1431" + } +] diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/command.json b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/command.json new file mode 100644 index 00000000..8cae9362 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/command.json @@ -0,0 +1,25 @@ +{ + "argv": [ + "docker", + "run", + "--rm", + "--name", + "otopcua-server-linux-soak-fb2c804a7d01", + "--network", + "none", + "-e", + "OTOPCUA_SDK2_SOAK_MODE=diagnostic", + "-e", + "OTOPCUA_SDK2_SOAK_SECONDS=90", + "-e", + "OTOPCUA_SOAK_BUILD_SHA=74c938f37cbb9cf08b6ca72e4effc511120dc274", + "-v", + "/private/tmp/opcua2-server-linux-diagnostic-20261110a/app:/app:ro", + "-v", + "/private/tmp/opcua2-server-linux-diagnostic-20261110c/task:/task", + "sha256:b04611ee9e1b7d36797012ed921962c57189cb4dbb3dff12afb8e158110f293b", + "bash", + "/task/container.sh" + ], + "timeoutSeconds": 390 +} diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/container-dotnet-info.txt b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/container-dotnet-info.txt new file mode 100644 index 00000000..5a4993d6 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/container-dotnet-info.txt @@ -0,0 +1,51 @@ +.NET SDK: + Version: 10.0.103 + Commit: c2435c3e0f + Workload version: 10.0.100-manifests.a62d7899 + MSBuild version: 18.0.11+c2435c3e0 + +Runtime Environment: + OS Name: ubuntu + OS Version: 24.04 + OS Platform: Linux + RID: linux-arm64 + Base Path: /usr/share/dotnet/sdk/10.0.103/ + +.NET workloads installed: +There are no installed workloads to display. +Configured to use workload sets when installing new manifests. +No workload sets are installed. Run "dotnet workload restore" to install a workload set. + +Host: + Version: 10.0.3 + Architecture: arm64 + Commit: c2435c3e0f + +.NET SDKs installed: + 10.0.103 [/usr/share/dotnet/sdk] + +.NET runtimes installed: + Microsoft.AspNetCore.App 10.0.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] + Microsoft.NETCore.App 10.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App] + +Other architectures found: + None + +Environment variables: + DOTNET_CLI_TELEMETRY_OPTOUT [1] + DOTNET_GENERATE_ASPNET_CERTIFICATE [false] + DOTNET_NOLOGO [1] + DOTNET_ROLL_FORWARD [Major] + DOTNET_RUNNING_IN_CONTAINER [true] + DOTNET_SDK_VERSION [10.0.103] + DOTNET_USE_POLLING_FILE_WATCHER [true] + DOTNET_VERSION [10.0.3] + +global.json file: + Not found + +Learn more: + https://aka.ms/dotnet/info + +Download .NET: + https://aka.ms/dotnet/download diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/container.log b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/container.log new file mode 100644 index 00000000..e69de29b diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/descriptor-controls.log b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/descriptor-controls.log new file mode 100644 index 00000000..a70b2d7b --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/descriptor-controls.log @@ -0,0 +1,7 @@ +VSTest version 18.0.1 (arm64) + +Starting test execution, please wait... +A total of 1 test files matched the specified pattern. +Results File: /task/results/descriptor-controls.trx + +Passed! - Failed: 0, Passed: 2, Skipped: 0, Total: 2, Duration: 297 ms - ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.dll (net10.0) diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/descriptor-controls.trx b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/descriptor-controls.trx new file mode 100644 index 00000000..2d0753bd --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/descriptor-controls.trx @@ -0,0 +1,48 @@ + + + + + + + + + + Descriptor timeout control: deadlineMs=250, elapsedMs=267, childExited=True + + + + + PKI descriptor control: before=0, opened=1, closed=0; siblingExcluded=true; aliasResolved=true + + + + + + + + + + + + + + + + + + + + + + + + + [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v3.0.2+dd36e86129 (64-bit .NET 10.0.14) +[xUnit.net 00:00:00.08] Discovering: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests +[xUnit.net 00:00:00.22] Discovered: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests +[xUnit.net 00:00:00.30] Starting: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests +[xUnit.net 00:00:00.64] Finished: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests + + + + \ No newline at end of file diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/full-duration-guard.log b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/full-duration-guard.log new file mode 100644 index 00000000..949d81d7 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/full-duration-guard.log @@ -0,0 +1,3 @@ +usage: run.py [-h] --output OUTPUT [--duration DURATION] [--full] + [--published-app PUBLISHED_APP] [--image IMAGE] +run.py: error: full requires duration >=7200; diagnostic requires 60..120 seconds diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/linux-precheck.txt b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/linux-precheck.txt new file mode 100644 index 00000000..026d7a7f --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/linux-precheck.txt @@ -0,0 +1 @@ +kernel=Linux machine=aarch64 tmp=/task/tmp procfs=yes diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/linux-runtime-process.txt b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/linux-runtime-process.txt new file mode 100644 index 00000000..cb3f834a --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/linux-runtime-process.txt @@ -0,0 +1,6 @@ +testProcessId=196 +actualExecutable=/app/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests +/app/System.Private.CoreLib.dll +/app/libcoreclr.so +/app/libhostfxr.so +/app/libhostpolicy.so diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/publish-receipt.json b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/publish-receipt.json new file mode 100644 index 00000000..ed359950 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/publish-receipt.json @@ -0,0 +1,29 @@ +{ + "sourceRevision": "74c938f37cbb9cf08b6ca72e4effc511120dc274", + "command": [ + "dotnet", + "publish", + "/Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.csproj", + "-c", + "Release", + "-r", + "linux-arm64", + "--self-contained", + "true", + "-p:RuntimeFrameworkVersion=10.0.14", + "-p:PublishSingleFile=false", + "-p:PublishTrimmed=false", + "-p:UseAppHost=true", + "--artifacts-path", + "/tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts", + "-o", + "/tmp/opcua2-server-linux-diagnostic-20261110a/app", + "-m:1", + "--nologo" + ], + "hostDotnet": ".NET SDK:\n Version: 10.0.403\n Commit: 5a2162bea6\n Workload version: 10.0.400-manifests.a00bebb6\n MSBuild version: 18.9.15+5a2162bea\n\nRuntime Environment:\n OS Name: Mac OS X\n OS Version: 26.5\n OS Platform: Darwin\n RID: osx-arm64\n Base Path: /opt/homebrew/Cellar/dotnet/10.0.403/libexec/sdk/10.0.403/\n\n.NET workloads installed:\nThere are no installed workloads to display.\nConfigured to use workload sets when installing new manifests.\nNo workload sets are installed. Run \"dotnet workload restore\" to install a workload set.\n\nHost:\n Version: 10.0.14\n Architecture: arm64\n Commit: 0427b9abbe\n\n.NET SDKs installed:\n 10.0.403 [/opt/homebrew/Cellar/dotnet/10.0.403/libexec/sdk]\n\n.NET runtimes installed:\n Microsoft.AspNetCore.App 10.0.14 [/opt/homebrew/Cellar/dotnet/10.0.403/libexec/shared/Microsoft.AspNetCore.App]\n Microsoft.NETCore.App 10.0.14 [/opt/homebrew/Cellar/dotnet/10.0.403/libexec/shared/Microsoft.NETCore.App]\n\nOther architectures found:\n None\n\nEnvironment variables:\n DOTNET_ROOT [/opt/homebrew/Cellar/dotnet/10.0.403/libexec]\n\nglobal.json file:\n /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/global.json\n\nLearn more:\n https://aka.ms/dotnet/info\n\nDownload .NET:\n https://aka.ms/dotnet/download\n", + "testSourceSha256": "e695783e05787d94bf5d167b25b1c48b446b800c28259f023c28ed6012d737d1", + "apphostSha256": "97531b8005df9dc8b129d2b22ba2049cf572d5d970046f7e8644ec632e860032", + "testAssemblySha256": "9d64b5b3dd9bf7eff38f6fabe10382c107ab824485a309ba9649bfee9bbd843a", + "publishExitCode": 0 +} diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/publish.log b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/publish.log new file mode 100644 index 00000000..14feb387 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/publish.log @@ -0,0 +1,121 @@ + + Determining projects to restore... + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.Abstractions/ZB.MOM.WW.OtOpcUa.Core.Abstractions.csproj (in 490 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts.csproj (in 494 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts/ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts.csproj (in 494 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts.csproj (in 2 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.csproj (in 4 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session.csproj (in 569 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Tooling/ZB.MOM.WW.OtOpcUa.Analyzers/ZB.MOM.WW.OtOpcUa.Analyzers.csproj (in 574 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts/ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.csproj (in 1 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess/ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.csproj (in 591 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Server/ZB.MOM.WW.OtOpcUa.ScriptWorker/ZB.MOM.WW.OtOpcUa.ScriptWorker.csproj (in 589 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport/ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.csproj (in 6 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts.csproj (in 6 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Server/ZB.MOM.WW.OtOpcUa.Security/ZB.MOM.WW.OtOpcUa.Security.csproj (in 605 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.csproj (in 2 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.csproj (in 36 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Calculation/ZB.MOM.WW.OtOpcUa.Driver.Calculation.csproj (in 101 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj (in 107 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip/ZB.MOM.WW.OtOpcUa.Driver.AbCip.csproj (in 31 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer/ZB.MOM.WW.OtOpcUa.OpcUaServer.csproj (in 613 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts.csproj (in 9 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport.csproj (in 10 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol/ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.csproj (in 6 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser.csproj (in 19 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core/ZB.MOM.WW.OtOpcUa.Core.csproj (in 30 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.csproj (in 27 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions/ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.csproj (in 2 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Server/ZB.MOM.WW.OtOpcUa.Runtime/ZB.MOM.WW.OtOpcUa.Runtime.csproj (in 651 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/ZB.MOM.WW.OtOpcUa.Core.VirtualTags.csproj (in 12 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.Scripting/ZB.MOM.WW.OtOpcUa.Core.Scripting.csproj (in 12 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Commons/ZB.MOM.WW.OtOpcUa.Commons.csproj (in 4 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.MTConnect/ZB.MOM.WW.OtOpcUa.Driver.MTConnect.csproj (in 33 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.csproj (in 656 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway/ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.csproj (in 655 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer/ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.csproj (in 144 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Mqtt/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.csproj (in 36 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms/ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.csproj (in 11 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts/ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.csproj (in 6 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Client/ZB.MOM.WW.OtOpcUa.Client.Shared/ZB.MOM.WW.OtOpcUa.Client.Shared.csproj (in 11 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.csproj (in 2 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts/ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts.csproj (in 2 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.csproj (in 44 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Cluster/ZB.MOM.WW.OtOpcUa.Cluster.csproj (in 45 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts.csproj (in 6 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser/ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.csproj (in 36 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common/ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.csproj (in 10 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Sql/ZB.MOM.WW.OtOpcUa.Driver.Sql.csproj (in 50 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect/ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.csproj (in 66 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Server/ZB.MOM.WW.OtOpcUa.ControlPlane/ZB.MOM.WW.OtOpcUa.ControlPlane.csproj (in 53 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts/ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts.csproj (in 3 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Modbus/ZB.MOM.WW.OtOpcUa.Driver.Modbus.csproj (in 41 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.csproj (in 9 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.S7/ZB.MOM.WW.OtOpcUa.Driver.S7.csproj (in 49 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Core/ZB.MOM.WW.OtOpcUa.Configuration/ZB.MOM.WW.OtOpcUa.Configuration.csproj (in 92 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.csproj (in 51 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.csproj (in 86 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.FOCAS/ZB.MOM.WW.OtOpcUa.Driver.FOCAS.csproj (in 24 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/ZB.MOM.WW.OtOpcUa.AdminUI.csproj (in 89 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/src/Server/ZB.MOM.WW.OtOpcUa.Host/ZB.MOM.WW.OtOpcUa.Host.csproj (in 784 ms). + Restored /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.csproj (in 793 ms). + ZB.MOM.WW.OtOpcUa.Analyzers -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Analyzers/release/ZB.MOM.WW.OtOpcUa.Analyzers.dll + ZB.MOM.WW.OtOpcUa.Core.Abstractions -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.Abstractions/release/ZB.MOM.WW.OtOpcUa.Core.Abstractions.dll + ZB.MOM.WW.OtOpcUa.Commons -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Commons/release/ZB.MOM.WW.OtOpcUa.Commons.dll + ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions/release/ZB.MOM.WW.OtOpcUa.Core.Scripting.Abstractions.dll + ZB.MOM.WW.OtOpcUa.Core.Scripting -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.Scripting/release/ZB.MOM.WW.OtOpcUa.Core.Scripting.dll + ZB.MOM.WW.OtOpcUa.Core.VirtualTags -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.VirtualTags/release/ZB.MOM.WW.OtOpcUa.Core.VirtualTags.dll + ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts.dll + ZB.MOM.WW.OtOpcUa.Configuration -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Configuration/release/ZB.MOM.WW.OtOpcUa.Configuration.dll + ZB.MOM.WW.OtOpcUa.Core -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core/release/ZB.MOM.WW.OtOpcUa.Core.dll + ZB.MOM.WW.OtOpcUa.OpcUaServer -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.OpcUaServer/release/ZB.MOM.WW.OtOpcUa.OpcUaServer.dll + ZB.MOM.WW.OtOpcUa.Cluster -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Cluster/release/ZB.MOM.WW.OtOpcUa.Cluster.dll + ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol/release/ZB.MOM.WW.OtOpcUa.Core.Scripting.Protocol.dll + ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess/release/ZB.MOM.WW.OtOpcUa.Core.Scripting.OutOfProcess.dll + ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms/release/ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.dll + ZB.MOM.WW.OtOpcUa.Security -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Security/release/ZB.MOM.WW.OtOpcUa.Security.dll + ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing/release/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Addressing.dll + ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.Modbus.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.S7.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.FOCAS.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.MTConnect.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.Calculation.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Contracts.dll + ZB.MOM.WW.OtOpcUa.ControlPlane -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.ControlPlane/release/ZB.MOM.WW.OtOpcUa.ControlPlane.dll + ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian/release/ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.dll + ZB.MOM.WW.OtOpcUa.Runtime -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Runtime/release/ZB.MOM.WW.OtOpcUa.Runtime.dll + ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts/release/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Contracts.dll + ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session/release/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Session.dll + ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser/release/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.Browser.dll + ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/release/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.dll + ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect/release/ZB.MOM.WW.OtOpcUa.Driver.Sql.Dialect.dll + ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser/release/ZB.MOM.WW.OtOpcUa.Driver.Sql.Browser.dll + ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport/release/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Transport.dll + ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser/release/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.Browser.dll + ZB.MOM.WW.OtOpcUa.AdminUI -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.AdminUI/release/ZB.MOM.WW.OtOpcUa.AdminUI.dll + ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport/release/ZB.MOM.WW.OtOpcUa.Driver.Ab.Transport.dll + ZB.MOM.WW.OtOpcUa.Driver.AbCip -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.AbCip/release/ZB.MOM.WW.OtOpcUa.Driver.AbCip.dll + ZB.MOM.WW.OtOpcUa.Driver.AbLegacy -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/release/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.dll + ZB.MOM.WW.OtOpcUa.Driver.Calculation -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Calculation/release/ZB.MOM.WW.OtOpcUa.Driver.Calculation.dll + ZB.MOM.WW.OtOpcUa.Driver.FOCAS -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.FOCAS/release/ZB.MOM.WW.OtOpcUa.Driver.FOCAS.dll + ZB.MOM.WW.OtOpcUa.Driver.Galaxy -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/release/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.dll + ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common/release/ZB.MOM.WW.OtOpcUa.Driver.Historian.Sql.Common.dll + ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway/release/ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.dll + ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer/release/ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.dll + ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb/release/ZB.MOM.WW.OtOpcUa.Driver.Historian.QuestDb.dll + ZB.MOM.WW.OtOpcUa.Driver.Modbus -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Modbus/release/ZB.MOM.WW.OtOpcUa.Driver.Modbus.dll + ZB.MOM.WW.OtOpcUa.Driver.Mqtt -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Mqtt/release/ZB.MOM.WW.OtOpcUa.Driver.Mqtt.dll + ZB.MOM.WW.OtOpcUa.Driver.MTConnect -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.MTConnect/release/ZB.MOM.WW.OtOpcUa.Driver.MTConnect.dll + ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient/release/ZB.MOM.WW.OtOpcUa.Driver.OpcUaClient.dll + ZB.MOM.WW.OtOpcUa.Driver.S7 -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.S7/release/ZB.MOM.WW.OtOpcUa.Driver.S7.dll + ZB.MOM.WW.OtOpcUa.Driver.Sql -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.Sql/release/ZB.MOM.WW.OtOpcUa.Driver.Sql.dll + ZB.MOM.WW.OtOpcUa.Driver.TwinCAT -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT/release/ZB.MOM.WW.OtOpcUa.Driver.TwinCAT.dll + ZB.MOM.WW.OtOpcUa.ScriptWorker -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.ScriptWorker/release_linux-arm64/ZB.MOM.WW.OtOpcUa.ScriptWorker.dll + ZB.MOM.WW.OtOpcUa.Host -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Host/release_linux-arm64/OtOpcUa.Host.dll + ZB.MOM.WW.OtOpcUa.Client.Shared -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.Client.Shared/release/ZB.MOM.WW.OtOpcUa.Client.Shared.dll + ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests -> /tmp/opcua2-server-linux-diagnostic-20261110a/build-artifacts/bin/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/release_linux-arm64/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.dll + ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests -> /tmp/opcua2-server-linux-diagnostic-20261110a/app/ diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/result.json b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/result.json new file mode 100644 index 00000000..e4899057 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/result.json @@ -0,0 +1,160 @@ +{ + "status": "passed", + "containerExitCode": 0, + "containerElapsedSeconds": 95.26570125005674, + "descriptorControls": { + "counts": { + "total": "2", + "executed": "2", + "passed": "2", + "failed": "0", + "error": "0", + "timeout": "0", + "aborted": "0", + "inconclusive": "0", + "passedButRunAborted": "0", + "notRunnable": "0", + "notExecuted": "0", + "disconnected": "0", + "warning": "0", + "completed": "0", + "inProgress": "0", + "pending": "0" + }, + "tests": [ + "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.Sdk2LifecycleSoakTests.Descriptor_probe_times_out_and_reaps_a_process_that_keeps_both_streams_open", + "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.Sdk2LifecycleSoakTests.Descriptor_probe_observes_an_open_PKI_file_through_a_symlink_alias_and_its_close" + ] + }, + "soakTest": { + "counts": { + "total": "1", + "executed": "1", + "passed": "1", + "failed": "0", + "error": "0", + "timeout": "0", + "aborted": "0", + "inconclusive": "0", + "passedButRunAborted": "0", + "notRunnable": "0", + "notExecuted": "0", + "disconnected": "0", + "warning": "0", + "completed": "0", + "inProgress": "0", + "pending": "0" + }, + "tests": [ + "ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.Sdk2LifecycleSoakTests.Repeated_lifecycles_return_resources_to_a_steady_baseline" + ] + }, + "evidence": { + "start": { + "kind": "start", + "utc": "2026-11-10T18:06:04.0984012+00:00", + "processId": 196, + "mode": "diagnostic", + "requestedSeconds": 90, + "minimumFullSeconds": 7200, + "build": "74c938f37cbb9cf08b6ca72e4effc511120dc274", + "sdk": "2.0.1+07e62f72500cc0923a2bab940653c8c1116fa286", + "diagnosticInstrumentation": "SDK2.0.1 CP lists and certificate-validation cached stores; read-only", + "limits": { + "retainedManagedGrowthBytes": 67108864, + "rssGrowthBytes": 134217728, + "fdGrowth": 32 + }, + "coverage": "encrypted sessions; scalar/Int16[] Raw+UNS; subscription removal; browse abandonment; history release/cross-session/close; surgical changes/rebuild; revocation; paused TCP read/recovery; same-PKI restart" + }, + "complete": { + "kind": "complete", + "utc": "2026-11-10T18:07:35.7007963+00:00", + "mode": "diagnostic", + "cycles": 25, + "restarts": 6, + "seconds": 91.6023965, + "satisfiesTwoHourDuration": false + }, + "rowCounts": { + "active": 25, + "complete": 1, + "network-stall-recovered": 25, + "quiescent": 25, + "restart": 6, + "start": 1 + }, + "firstResources": { + "Cycle": 1, + "Seconds": 2.6710051, + "Sessions": 0, + "Subscriptions": 0, + "Items": 0, + "BrowsePoints": 0, + "HistoryPoints": 0, + "LiveDataItems": 0, + "LiveEventItems": 0, + "MonitoredNodes": 0, + "Variables": 19, + "Folders": 4, + "Conditions": 1, + "CachedCertificateStores": 2, + "Descriptors": 187, + "PkiDescriptors": 0, + "ManagedBytes": 19828144, + "RssBytes": 207749120, + "AllocatedBytes": 45697696, + "Gen0": 3, + "Gen1": 2, + "Gen2": 2 + }, + "baselineResources": { + "Cycle": 3, + "Seconds": 7.466919, + "Sessions": 0, + "Subscriptions": 0, + "Items": 0, + "BrowsePoints": 0, + "HistoryPoints": 0, + "LiveDataItems": 0, + "LiveEventItems": 0, + "MonitoredNodes": 0, + "Variables": 19, + "Folders": 4, + "Conditions": 1, + "CachedCertificateStores": 2, + "Descriptors": 188, + "PkiDescriptors": 0, + "ManagedBytes": 20404584, + "RssBytes": 212303872, + "AllocatedBytes": 52268352, + "Gen0": 7, + "Gen1": 6, + "Gen2": 6 + }, + "lastResources": { + "Cycle": 25, + "Seconds": 91.5753658, + "Sessions": 0, + "Subscriptions": 0, + "Items": 0, + "BrowsePoints": 0, + "HistoryPoints": 0, + "LiveDataItems": 0, + "LiveEventItems": 0, + "MonitoredNodes": 0, + "Variables": 19, + "Folders": 4, + "Conditions": 1, + "CachedCertificateStores": 2, + "Descriptors": 190, + "PkiDescriptors": 0, + "ManagedBytes": 20259504, + "RssBytes": 266043392, + "AllocatedBytes": 349723432, + "Gen0": 57, + "Gen1": 50, + "Gen2": 50 + } + } +} diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.jsonl b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.jsonl new file mode 100644 index 00000000..23dac3c4 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.jsonl @@ -0,0 +1,83 @@ +{"kind":"start","utc":"2026-11-10T18:06:04.0984012+00:00","processId":196,"mode":"diagnostic","requestedSeconds":90,"minimumFullSeconds":7200,"build":"74c938f37cbb9cf08b6ca72e4effc511120dc274","sdk":"2.0.1\u002B07e62f72500cc0923a2bab940653c8c1116fa286","diagnosticInstrumentation":"SDK2.0.1 CP lists and certificate-validation cached stores; read-only","limits":{"retainedManagedGrowthBytes":67108864,"rssGrowthBytes":134217728,"fdGrowth":32},"coverage":"encrypted sessions; scalar/Int16[] Raw\u002BUNS; subscription removal; browse abandonment; history release/cross-session/close; surgical changes/rebuild; revocation; paused TCP read/recovery; same-PKI restart"} +{"kind":"active","cycle":1,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":1,"status":"BadRequestInterrupted","seconds":1.0480969} +{"kind":"quiescent","cycleSeconds":2.6930539,"resources":{"Cycle":1,"Seconds":2.6710051,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":19828144,"RssBytes":207749120,"AllocatedBytes":45697696,"Gen0":3,"Gen1":2,"Gen2":2}} +{"kind":"active","cycle":2,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":2,"status":"BadRequestInterrupted","seconds":1.0446531} +{"kind":"quiescent","cycleSeconds":2.4080887,"resources":{"Cycle":2,"Seconds":5.1027619,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":20236624,"RssBytes":209514496,"AllocatedBytes":49129448,"Gen0":5,"Gen1":4,"Gen2":4}} +{"kind":"active","cycle":3,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":3,"status":"BadRequestInterrupted","seconds":1.0434837} +{"kind":"quiescent","cycleSeconds":2.3620647,"resources":{"Cycle":3,"Seconds":7.466919,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":188,"PkiDescriptors":0,"ManagedBytes":20404584,"RssBytes":212303872,"AllocatedBytes":52268352,"Gen0":7,"Gen1":6,"Gen2":6}} +{"kind":"active","cycle":4,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":4,"status":"BadRequestInterrupted","seconds":1.0417759} +{"kind":"quiescent","cycleSeconds":2.367273,"resources":{"Cycle":4,"Seconds":9.8310274,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":188,"PkiDescriptors":0,"ManagedBytes":20581856,"RssBytes":215437312,"AllocatedBytes":55331040,"Gen0":9,"Gen1":8,"Gen2":8}} +{"kind":"restart","cycles":4,"restarts":1,"seconds":5.1579086} +{"kind":"active","cycle":5,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":5,"status":"BadRequestInterrupted","seconds":1.0429156} +{"kind":"quiescent","cycleSeconds":2.4248818,"resources":{"Cycle":5,"Seconds":17.4116445,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":20117312,"RssBytes":244072448,"AllocatedBytes":97741368,"Gen0":12,"Gen1":10,"Gen2":10}} +{"kind":"active","cycle":6,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":6,"status":"BadRequestInterrupted","seconds":1.0424929} +{"kind":"quiescent","cycleSeconds":2.359121,"resources":{"Cycle":6,"Seconds":19.7704339,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":188,"PkiDescriptors":0,"ManagedBytes":20256216,"RssBytes":244867072,"AllocatedBytes":100833504,"Gen0":14,"Gen1":12,"Gen2":12}} +{"kind":"active","cycle":7,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":7,"status":"BadRequestInterrupted","seconds":1.0036954} +{"kind":"quiescent","cycleSeconds":2.4160967,"resources":{"Cycle":7,"Seconds":22.1874361,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":20426992,"RssBytes":245751808,"AllocatedBytes":103924024,"Gen0":16,"Gen1":14,"Gen2":14}} +{"kind":"active","cycle":8,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":8,"status":"BadRequestInterrupted","seconds":1.0523899} +{"kind":"quiescent","cycleSeconds":2.3926737,"resources":{"Cycle":8,"Seconds":24.5842524,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":188,"PkiDescriptors":0,"ManagedBytes":20713008,"RssBytes":247889920,"AllocatedBytes":107102792,"Gen0":18,"Gen1":16,"Gen2":16}} +{"kind":"restart","cycles":8,"restarts":2,"seconds":5.1120391} +{"kind":"active","cycle":9,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":9,"status":"BadRequestInterrupted","seconds":1.0461218} +{"kind":"quiescent","cycleSeconds":2.3757912,"resources":{"Cycle":9,"Seconds":32.0681461,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":20283072,"RssBytes":256245760,"AllocatedBytes":149467600,"Gen0":21,"Gen1":18,"Gen2":18}} +{"kind":"active","cycle":10,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":10,"status":"BadRequestInterrupted","seconds":1.0032768} +{"kind":"quiescent","cycleSeconds":2.3840571,"resources":{"Cycle":10,"Seconds":34.4585736,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":20400792,"RssBytes":256765952,"AllocatedBytes":152540856,"Gen0":23,"Gen1":20,"Gen2":20}} +{"kind":"active","cycle":11,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":11,"status":"BadRequestInterrupted","seconds":1.0055269} +{"kind":"quiescent","cycleSeconds":2.3664136,"resources":{"Cycle":11,"Seconds":36.8250058,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":20611944,"RssBytes":256458752,"AllocatedBytes":155681752,"Gen0":25,"Gen1":22,"Gen2":22}} +{"kind":"active","cycle":12,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":12,"status":"BadRequestInterrupted","seconds":1.0483463} +{"kind":"quiescent","cycleSeconds":2.4039892,"resources":{"Cycle":12,"Seconds":39.2211123,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":187,"PkiDescriptors":0,"ManagedBytes":20794472,"RssBytes":257134592,"AllocatedBytes":158746992,"Gen0":27,"Gen1":24,"Gen2":24}} +{"kind":"restart","cycles":12,"restarts":3,"seconds":5.0988863} +{"kind":"active","cycle":13,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":13,"status":"BadRequestInterrupted","seconds":1.0450081} +{"kind":"quiescent","cycleSeconds":2.3795872,"resources":{"Cycle":13,"Seconds":46.7014719,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20332520,"RssBytes":261271552,"AllocatedBytes":199536496,"Gen0":30,"Gen1":26,"Gen2":26}} +{"kind":"active","cycle":14,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":14,"status":"BadRequestInterrupted","seconds":1.0436713} +{"kind":"quiescent","cycleSeconds":2.3497161,"resources":{"Cycle":14,"Seconds":49.0501604,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":190,"PkiDescriptors":0,"ManagedBytes":20431480,"RssBytes":261554176,"AllocatedBytes":202614280,"Gen0":32,"Gen1":28,"Gen2":28}} +{"kind":"active","cycle":15,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":15,"status":"BadRequestInterrupted","seconds":1.04895} +{"kind":"quiescent","cycleSeconds":2.371092,"resources":{"Cycle":15,"Seconds":51.4268968,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20505512,"RssBytes":264040448,"AllocatedBytes":205694824,"Gen0":34,"Gen1":30,"Gen2":30}} +{"kind":"active","cycle":16,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":16,"status":"BadRequestInterrupted","seconds":1.0443525} +{"kind":"quiescent","cycleSeconds":2.9848582,"resources":{"Cycle":16,"Seconds":53.9203748,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20622096,"RssBytes":264884224,"AllocatedBytes":208715944,"Gen0":36,"Gen1":32,"Gen2":32}} +{"kind":"restart","cycles":16,"restarts":4,"seconds":5.454083} +{"kind":"active","cycle":17,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":17,"status":"BadRequestInterrupted","seconds":1.0473067} +{"kind":"quiescent","cycleSeconds":2.3818575,"resources":{"Cycle":17,"Seconds":62.2447867,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20191360,"RssBytes":259485696,"AllocatedBytes":249582344,"Gen0":39,"Gen1":34,"Gen2":34}} +{"kind":"active","cycle":18,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":18,"status":"BadRequestInterrupted","seconds":1.0423094} +{"kind":"quiescent","cycleSeconds":2.3561291,"resources":{"Cycle":18,"Seconds":64.6095248,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20373376,"RssBytes":255721472,"AllocatedBytes":252706544,"Gen0":41,"Gen1":36,"Gen2":36}} +{"kind":"active","cycle":19,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":19,"status":"BadRequestInterrupted","seconds":1.0436178} +{"kind":"quiescent","cycleSeconds":2.3444876,"resources":{"Cycle":19,"Seconds":66.9546586,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20552264,"RssBytes":254763008,"AllocatedBytes":255808392,"Gen0":43,"Gen1":38,"Gen2":38}} +{"kind":"active","cycle":20,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":20,"status":"BadRequestInterrupted","seconds":1.0451534} +{"kind":"quiescent","cycleSeconds":2.3495591,"resources":{"Cycle":20,"Seconds":69.2963186,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20702232,"RssBytes":255512576,"AllocatedBytes":258843576,"Gen0":45,"Gen1":40,"Gen2":40}} +{"kind":"restart","cycles":20,"restarts":5,"seconds":5.1129163} +{"kind":"active","cycle":21,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":21,"status":"BadRequestInterrupted","seconds":1.049048} +{"kind":"quiescent","cycleSeconds":2.4246867,"resources":{"Cycle":21,"Seconds":76.8338727,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":190,"PkiDescriptors":0,"ManagedBytes":20221440,"RssBytes":262025216,"AllocatedBytes":299637616,"Gen0":48,"Gen1":42,"Gen2":42}} +{"kind":"active","cycle":22,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":22,"status":"BadRequestInterrupted","seconds":1.0419365} +{"kind":"quiescent","cycleSeconds":2.404919,"resources":{"Cycle":22,"Seconds":79.246374,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20324024,"RssBytes":262062080,"AllocatedBytes":302774600,"Gen0":50,"Gen1":44,"Gen2":44}} +{"kind":"active","cycle":23,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":23,"status":"BadRequestInterrupted","seconds":1.0409262} +{"kind":"quiescent","cycleSeconds":2.3874906,"resources":{"Cycle":23,"Seconds":81.6319445,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20478784,"RssBytes":260964352,"AllocatedBytes":305840432,"Gen0":52,"Gen1":46,"Gen2":46}} +{"kind":"active","cycle":24,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":24,"status":"BadRequestInterrupted","seconds":1.0526128} +{"kind":"quiescent","cycleSeconds":2.4292523,"resources":{"Cycle":24,"Seconds":84.060344,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":189,"PkiDescriptors":0,"ManagedBytes":20663008,"RssBytes":261554176,"AllocatedBytes":308902736,"Gen0":54,"Gen1":48,"Gen2":48}} +{"kind":"restart","cycles":24,"restarts":6,"seconds":5.0922583} +{"kind":"active","cycle":25,"sessions":2,"subscriptions":1,"items":3,"browsePoints":1,"historyPoints":6} +{"kind":"network-stall-recovered","cycle":25,"status":"BadRequestInterrupted","seconds":1.0433366} +{"kind":"quiescent","cycleSeconds":2.4269109,"resources":{"Cycle":25,"Seconds":91.5753658,"Sessions":0,"Subscriptions":0,"Items":0,"BrowsePoints":0,"HistoryPoints":0,"LiveDataItems":0,"LiveEventItems":0,"MonitoredNodes":0,"Variables":19,"Folders":4,"Conditions":1,"CachedCertificateStores":2,"Descriptors":190,"PkiDescriptors":0,"ManagedBytes":20259504,"RssBytes":266043392,"AllocatedBytes":349723432,"Gen0":57,"Gen1":50,"Gen2":50}} +{"kind":"complete","utc":"2026-11-10T18:07:35.7007963+00:00","mode":"diagnostic","cycles":25,"restarts":6,"seconds":91.6023965,"satisfiesTwoHourDuration":false} diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.log b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.log new file mode 100644 index 00000000..09604526 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.log @@ -0,0 +1,7 @@ +VSTest version 18.0.1 (arm64) + +Starting test execution, please wait... +A total of 1 test files matched the specified pattern. +Results File: /task/results/soak.trx + +Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 1 m 33 s - ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.dll (net10.0) diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.trx b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.trx new file mode 100644 index 00000000..d0c74710 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/soak.trx @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v3.0.2+dd36e86129 (64-bit .NET 10.0.14) +[xUnit.net 00:00:00.10] Discovering: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests +[xUnit.net 00:00:00.25] Discovered: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests +[xUnit.net 00:00:00.33] Starting: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests +[xUnit.net 00:01:33.38] Finished: ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests + + + + \ No newline at end of file diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/source.json b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/source.json new file mode 100644 index 00000000..e7695ded --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/source.json @@ -0,0 +1,57 @@ +{ + "launcherSourceRevision": "74c938f37cbb9cf08b6ca72e4effc511120dc274", + "publishedSourceRevision": "74c938f37cbb9cf08b6ca72e4effc511120dc274", + "productionEquivalentTo": "7b353d7bae5311a2f0a33c0a82c88d2c5b49d76f", + "productionDiffEmpty": true, + "canonicalDescriptorProbeCommit": "642aefe3", + "testSourceSha256": "e695783e05787d94bf5d167b25b1c48b446b800c28259f023c28ed6012d737d1", + "publishCommand": "reused self-contained artifact: /private/tmp/opcua2-server-linux-diagnostic-20261110a/app", + "appPath": "/private/tmp/opcua2-server-linux-diagnostic-20261110a/app", + "apphost": { + "format": "ELF64 AArch64", + "sha256": "97531b8005df9dc8b129d2b22ba2049cf572d5d970046f7e8644ec632e860032" + }, + "runtimeConfig": { + "runtimeOptions": { + "tfm": "net10.0", + "includedFrameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "10.0.14" + }, + { + "name": "Microsoft.AspNetCore.App", + "version": "10.0.14" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Reflection.NullabilityInfoContext.IsSupported": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } + }, + "sdkDependencies": [ + "OPCFoundation.NetStandard.Opc.Ua.Client/2.0.1", + "OPCFoundation.NetStandard.Opc.Ua.Configuration/2.0.1", + "OPCFoundation.NetStandard.Opc.Ua.Core.Schema/2.0.1", + "OPCFoundation.NetStandard.Opc.Ua.Core.Types/2.0.1", + "OPCFoundation.NetStandard.Opc.Ua.Core/2.0.1", + "OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/2.0.1", + "OPCFoundation.NetStandard.Opc.Ua.Server/2.0.1", + "OPCFoundation.NetStandard.Opc.Ua.Types/2.0.1" + ], + "image": { + "Id": "sha256:b04611ee9e1b7d36797012ed921962c57189cb4dbb3dff12afb8e158110f293b", + "RepoDigests": [ + "mcr.microsoft.com/dotnet/sdk@sha256:e362a8dbcd691522456da26a5198b8f3ca1d7641c95624fadc5e3e82678bd08a" + ], + "Architecture": "arm64", + "Os": "linux" + }, + "hostDotnet": ".NET SDK:\n Version: 10.0.403\n Commit: 5a2162bea6\n Workload version: 10.0.400-manifests.a00bebb6\n MSBuild version: 18.9.15+5a2162bea\n\nRuntime Environment:\n OS Name: Mac OS X\n OS Version: 26.5\n OS Platform: Darwin\n RID: osx-arm64\n Base Path: /opt/homebrew/Cellar/dotnet/10.0.403/libexec/sdk/10.0.403/\n\n.NET workloads installed:\nThere are no installed workloads to display.\nConfigured to use workload sets when installing new manifests.\nNo workload sets are installed. Run \"dotnet workload restore\" to install a workload set.\n\nHost:\n Version: 10.0.14\n Architecture: arm64\n Commit: 0427b9abbe\n\n.NET SDKs installed:\n 10.0.403 [/opt/homebrew/Cellar/dotnet/10.0.403/libexec/sdk]\n\n.NET runtimes installed:\n Microsoft.AspNetCore.App 10.0.14 [/opt/homebrew/Cellar/dotnet/10.0.403/libexec/shared/Microsoft.AspNetCore.App]\n Microsoft.NETCore.App 10.0.14 [/opt/homebrew/Cellar/dotnet/10.0.403/libexec/shared/Microsoft.NETCore.App]\n\nOther architectures found:\n None\n\nEnvironment variables:\n DOTNET_ROOT [/opt/homebrew/Cellar/dotnet/10.0.403/libexec]\n\nglobal.json file:\n /Users/dohertj2/.codex/worktrees/opcua2-client-lifecycle/OtOpcUa/global.json\n\nLearn more:\n https://aka.ms/dotnet/info\n\nDownload .NET:\n https://aka.ms/dotnet/download\n", + "network": "none", + "mode": "diagnostic", + "durationSeconds": 90, + "startedUtc": "2026-11-10T18:06:00Z" +} diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/validation-controls.json b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/validation-controls.json new file mode 100644 index 00000000..25ab0b97 --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/validation-controls.json @@ -0,0 +1,12 @@ +[ + { + "control": "short_diagnostic_cannot_satisfy_full", + "status": "passed", + "observedRejection": "Duration header mismatch" + }, + { + "control": "wrong_executed_test_count_rejected", + "status": "passed", + "observedRejection": "TRX expected exact passed/executed count 1: /tmp/opcua2-server-linux-diagnostic-20261110b/task/results/descriptor-controls.trx" + } +] diff --git a/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/verification.json b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/verification.json new file mode 100644 index 00000000..4fd7b06c --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/evidence/2026-11-10-diagnostic/verification.json @@ -0,0 +1,29 @@ +{ + "diagnosticExitCode": 0, + "descriptorControlTestsExecuted": 2, + "lifecycleTestsExecuted": 1, + "fullDurationCliGuardExitCode": 2, + "currentLauncherRevalidatedExistingEvidence": true, + "rawArtifactRoot": "/private/tmp/opcua2-server-linux-diagnostic-20261110c", + "publishArtifactRoot": "/private/tmp/opcua2-server-linux-diagnostic-20261110a/app", + "noFullRunPerformed": true, + "sourceProductionDiffFrom7b353d7bEmpty": true, + "harnessFiles": [ + { + "path": "scripts/validation/opcua-server-lifecycle-linux/.gitignore", + "sha256": "32dae3052f331ee34d628ef535709b301259a45df7c7522c4d35dcf49873f00b" + }, + { + "path": "scripts/validation/opcua-server-lifecycle-linux/README.md", + "sha256": "1a67d8a6bb4b604bad0f6772ea450306a1e5313723a755e9985d1a739b77f72c" + }, + { + "path": "scripts/validation/opcua-server-lifecycle-linux/container.sh", + "sha256": "2a27d66e36d61431e6d413afe9d9d5d22959e82d9bf520767140b5d738487b31" + }, + { + "path": "scripts/validation/opcua-server-lifecycle-linux/run.py", + "sha256": "770f164588e90df2c4a4fcc883ca82fc17a1037c80f62fa2b40e92ce511d6f15" + } + ] +} diff --git a/scripts/validation/opcua-server-lifecycle-linux/run.py b/scripts/validation/opcua-server-lifecycle-linux/run.py new file mode 100755 index 00000000..0d7cc32a --- /dev/null +++ b/scripts/validation/opcua-server-lifecycle-linux/run.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python3 +"""Run the unchanged SDK2 server lifecycle test in isolated Linux ARM64.""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import shutil +import struct +import subprocess +import time +import uuid +import xml.etree.ElementTree as ET + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +PROJECT = ROOT / 'tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.csproj' +APPNAME = 'ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests' +TARGET = 'Repeated_lifecycles_return_resources_to_a_steady_baseline' +BASE = '7b353d7bae5311a2f0a33c0a82c88d2c5b49d76f' + + +def write(path, value): + path.write_text(json.dumps(value, indent=2) + '\n') + + +def sha(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def command(argv, log, timeout, **kwargs): + with log.open('w') as stream: + result = subprocess.run([str(x) for x in argv], stdout=stream, stderr=subprocess.STDOUT, timeout=timeout, **kwargs) + return result.returncode + + +def trx(path, count): + doc = ET.parse(path) + ns = {'t': 'http://microsoft.com/schemas/VisualStudio/TeamTest/2010'} + counts = doc.find('.//t:Counters', ns) + results = doc.findall('.//t:UnitTestResult', ns) + if counts is None or any(int(counts.attrib[k]) != count for k in ('total', 'executed', 'passed')): + raise RuntimeError('TRX expected exact passed/executed count ' + str(count) + ': ' + str(path)) + if len(results) != count or any(r.attrib['outcome'] != 'Passed' for r in results): + raise RuntimeError('TRX missing or non-passing result: ' + str(path)) + for key in ('failed', 'error', 'timeout', 'aborted', 'notExecuted'): + if int(counts.attrib.get(key, '0')): + raise RuntimeError('TRX has nonzero ' + key) + return {'counts': counts.attrib, 'tests': [r.attrib['testName'] for r in results]} + + +def validate_evidence(task, seconds, full): + rows = [json.loads(line) for line in (task / 'soak.jsonl').read_text().splitlines()] + starts = [r for r in rows if r['kind'] == 'start'] + complete = [r for r in rows if r['kind'] == 'complete'] + if len(starts) != 1 or len(complete) != 1 or any(r['kind'] == 'failed' for r in rows): + raise RuntimeError('Expected one start and one complete with no failed evidence row') + start, done = starts[0], complete[0] + if start['requestedSeconds'] != seconds or start['minimumFullSeconds'] != 7200: + raise RuntimeError('Duration header mismatch') + expected_mode = 'full' if full else 'diagnostic' + if start['mode'] != expected_mode or done['mode'] != expected_mode or done['seconds'] < seconds: + raise RuntimeError('Real duration/completion mode mismatch') + if start['limits'] != {'retainedManagedGrowthBytes': 64 << 20, 'rssGrowthBytes': 128 << 20, 'fdGrowth': 32}: + raise RuntimeError('Canonical test resource budgets changed') + if done['satisfiesTwoHourDuration'] != full or (full and done['seconds'] < 7200): + raise RuntimeError('Two-hour gate mismatch') + samples = [r for r in rows if r['kind'] == 'quiescent'] + active = [r for r in rows if r['kind'] == 'active'] + stalls = [r for r in rows if r['kind'] == 'network-stall-recovered'] + restarts = [r for r in rows if r['kind'] == 'restart'] + if done['cycles'] < 4 or done['restarts'] != done['cycles'] // 4: + raise RuntimeError('Missing actual lifecycle/restart coverage') + if not (len(samples) == len(active) == len(stalls) == done['cycles']) or len(restarts) != done['restarts']: + raise RuntimeError('Incomplete cycle/stall/restart evidence counts') + if not start['sdk'].startswith('2.0.1+'): + raise RuntimeError('Runtime SDK header mismatch') + return {'start': start, 'complete': done, 'rowCounts': {k: sum(r['kind'] == k for r in rows) for k in sorted({r['kind'] for r in rows})}, + 'firstResources': samples[0]['resources'], 'baselineResources': samples[2]['resources'], 'lastResources': samples[-1]['resources']} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--output', required=True, type=Path, help='Fresh output including task private PKI; do not commit the whole directory') + parser.add_argument('--duration', type=int, default=90) + parser.add_argument('--full', action='store_true') + parser.add_argument('--published-app', type=Path, help='Reuse immutable self-contained publish from this launcher/recorded matching build') + parser.add_argument('--image', default='mcr.microsoft.com/dotnet/sdk:10.0.103-noble') + args = parser.parse_args() + if (args.full and args.duration < 7200) or (not args.full and not 60 <= args.duration <= 120): + parser.error('full requires duration >=7200; diagnostic requires 60..120 seconds') + output = args.output.resolve() + output.mkdir(parents=True, exist_ok=False) + os.chmod(output, 0o700) + task = output / 'task' + task.mkdir() + revision = subprocess.check_output(['git', '-C', str(ROOT), 'rev-parse', 'HEAD'], text=True).strip() + production_diff = subprocess.check_output(['git', '-C', str(ROOT), 'diff', BASE, 'HEAD', '--', 'src', 'Directory.Packages.props', 'Directory.Build.props'], text=True) + if production_diff: + raise RuntimeError('Production/package source differs from recorded 7b353d7b compatibility build; review required') + image = json.loads(subprocess.check_output(['docker', 'image', 'inspect', args.image, '--format', '{{json .}}'], text=True)) + if image['Architecture'] != 'arm64' or image['Os'] != 'linux': + raise RuntimeError('Expected cached official Linux ARM64 image') + app = args.published_app.resolve() if args.published_app else output / 'app' + build_cmd = ['dotnet', 'publish', str(PROJECT), '-c', 'Release', '-r', 'linux-arm64', '--self-contained', 'true', + '-p:RuntimeFrameworkVersion=10.0.14', '-p:PublishSingleFile=false', '-p:PublishTrimmed=false', '-p:UseAppHost=true', + '--artifacts-path', str(output / 'build-artifacts'), '-o', str(app), '-m:1', '--nologo'] + if not args.published_app: + status = command(build_cmd, output / 'publish.log', 600) + if status: + raise RuntimeError('Self-contained Linux publish failed: ' + str(status)) + receipt_path = app.parent / 'publish-receipt.json' + receipt = json.loads(receipt_path.read_text()) if args.published_app else { + 'sourceRevision': revision, 'command': build_cmd, + 'hostDotnet': subprocess.check_output(['dotnet', '--info'], text=True), + 'testSourceSha256': sha(PROJECT.parent / 'Sdk2LifecycleSoakTests.cs')} + if receipt['testSourceSha256'] != sha(PROJECT.parent / 'Sdk2LifecycleSoakTests.cs'): + raise RuntimeError('Reused publish test source differs from current canonical source') + apphost = app / APPNAME + magic = apphost.read_bytes()[:20] + if magic[:4] != b'\x7fELF' or magic[4] != 2 or struct.unpack('