Attributes[\"Temperature\"] > 80.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/ScriptTriggerEditor.razor",
+ "line": 275,
+ "text": "A boolean C# expression \u2014 e.g. Attributes[\"Temperature\"] > 80.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/ScriptTriggerEditor.razor",
+ "line": 331,
+ "text": "Re-runs on a timer while the condition holds, at the script's Min time between runs interval \u2014 set that field below the script editor, or the trigger fires only once.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/DeployAllDialog.razor",
+ "line": 28,
+ "text": "A redeploy resets an instance's static attribute overrides and clears its native alarm state. Disabled instances are never deployed or re-enabled.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Deployment/FlowNodeLogPanel.razor",
+ "line": 26,
+ "text": "Lines other actors logged for these executions (Instance Actor, data connections, adapters) \u2014 what the node's log level kept, under the run's log-line cap.",
+ "classification": "informational metadata/action explanation/empty-state note"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ApiMethodForm.razor",
+ "line": 55,
+ "text": "Every call to this method records its routed site steps as audit rows the Flow Debugger can replay. Adds 7\u201310 audit rows per call; for low-volume integration methods.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ApiMethodForm.razor",
+ "line": 68,
+ "text": "No API keys configured. Create one to authorize callers for this method.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ApiMethodForm.razor",
+ "line": 93,
+ "text": "Callers must present a checked key in the X-API-Key header to invoke this method.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ApiMethodForm.razor",
+ "line": 181,
+ "text": "Checks the script as saved, not unsaved edits. Recompile re-registers it on this central node, clearing a stale compile failure.",
+ "classification": "informational metadata/action explanation/empty-state note"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ExternalSystemForm.razor",
+ "line": 71,
+ "text": "0 = use gateway default",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportImport.razor",
+ "line": 92,
+ "text": "Maximum bundle size: @Options.Value.MaxBundleSizeMb MB.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateAttributeDialog.razor",
+ "line": 32,
+ "text": "Data type is fixed once the attribute is created.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "line": 93,
+ "text": "This is the re-fire interval for the WhileTrue trigger above.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "line": 107,
+ "text": "Optional throttle \u2014 skips trigger invocations that fire sooner than this.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "line": 122,
+ "text": "Per-script execution timeout. Leave blank (or 0) to use the site's global default.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "line": 176,
+ "text": "No running instances of this template. Instance/Attributes/CallScript will throw.",
+ "classification": "informational metadata/action explanation/empty-state note"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "line": 190,
+ "text": "Routes Instance.GetAttribute/SetAttribute, Attributes, Children, Parent, and CallScript to the selected live instance.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateNativeAlarmSourceDialog.razor",
+ "line": 31,
+ "text": "No OPC UA or MxGateway connections defined yet.",
+ "classification": "informational metadata/action explanation/empty-state note"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DbConnectionForm.razor",
+ "line": 33,
+ "text": "Treat as sensitive \u2014 visible to admins only.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "line": 45,
+ "text": "Site is locked after creation.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "line": 66,
+ "text": "Protocol is locked after creation.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "line": 89,
+ "text": "View, trust, and remove OPC UA server certificates in the site's node-wide trusted-peer store.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "line": 166,
+ "text": "Retries before failing over to backup endpoint.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "line": 178,
+ "text": "Fail over when the connected endpoint's ServiceLevel stays below 200 (Degraded) for the window below and the other endpoint reports a Healthy (200+), higher level. Needed for an OtOpcUa pair in Warm redundancy; a 250/240 pair never triggers it.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateAlarmDialog.razor",
+ "line": 48,
+ "text": "Returned by the MES alarm-status API as IsFlaggedForMES. Instances can override this unless the alarm is locked.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/SchemaLibrary.razor",
+ "line": 36,
+ "text": "Referenced as lib:@(string.IsNullOrWhiteSpace(_formName) ? \"Name\" : _formName.Trim()).",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportExport.razor",
+ "line": 468,
+ "text": "Strength: @strengthLabel \u00b7 minimum 8 characters.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportExport.razor",
+ "line": 478,
+ "text": "Passphrases do not match.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/ApiKeyForm.razor",
+ "line": 81,
+ "text": "No API methods configured. Create one to grant access.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/ApiKeyForm.razor",
+ "line": 100,
+ "text": "Callers using this key can invoke any checked method. At least one is required.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/LdapMappingForm.razor",
+ "line": 43,
+ "text": "Deployer role: configure site scope below after saving.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/SiteForm.razor",
+ "line": 65,
+ "text": "Retained for historical configuration only \u2014 nothing reads it at runtime. Central dials the gRPC address below.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/SiteForm.razor",
+ "line": 87,
+ "text": "Retained for historical configuration only \u2014 nothing reads it at runtime. Central dials the gRPC address below.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/InstanceCreate.razor",
+ "line": 56,
+ "text": "No templates exist yet \u2014 create one on the Templates page.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/InstanceCreate.razor",
+ "line": 60,
+ "text": "@_templateHint",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/FlowDebugger.razor",
+ "line": 255,
+ "text": "The whole request body, validated against the method's parameter definitions.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/FlowDebugger.razor",
+ "line": 282,
+ "text": "@script.TriggerType trigger \u2014 writing the attribute fires the script.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Monitoring/EventLogs.razor",
+ "line": 27,
+ "text": "Keyword search covers at most the last 7 days unless a narrower From/To is set.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmsConfiguration.razor",
+ "line": 90,
+ "text": "Provide a From Number or a Messaging Service SID (at least one is required).",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmsConfiguration.razor",
+ "line": 96,
+ "text": "Optional \u2014 used instead of the From number when set.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmsConfiguration.razor",
+ "line": 107,
+ "text": "Treat as sensitive \u2014 visible to admins only. @if (_editingSms != null) { Leave blank to keep the existing token. }",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmtpConfiguration.razor",
+ "line": 146,
+ "text": "Treat as sensitive \u2014 visible to admins only.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmtpConfiguration.razor",
+ "line": 159,
+ "text": "Token-endpoint URL; leave blank for the Microsoft 365 default. A {tenant} placeholder is substituted from the credential.",
+ "classification": "linked control/group description or error"
+ },
+ {
+ "file": "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmtpConfiguration.razor",
+ "line": 165,
+ "text": "Scope requested from the token endpoint; leave blank for the Microsoft 365 default.",
+ "classification": "linked control/group description or error"
+ }
+]
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/components-1440.png b/docs/ui-consistency/evidence/sb01-03/forms-browser/components-1440.png
new file mode 100644
index 00000000..3fdfd6d7
Binary files /dev/null and b/docs/ui-consistency/evidence/sb01-03/forms-browser/components-1440.png differ
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/components-390.png b/docs/ui-consistency/evidence/sb01-03/forms-browser/components-390.png
new file mode 100644
index 00000000..c155b220
Binary files /dev/null and b/docs/ui-consistency/evidence/sb01-03/forms-browser/components-390.png differ
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/first-results.json b/docs/ui-consistency/evidence/sb01-03/forms-browser/first-results.json
new file mode 100644
index 00000000..bcf10c18
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/forms-browser/first-results.json
@@ -0,0 +1,476 @@
+[
+ {
+ "duplicateIds": [],
+ "labels": [
+ {
+ "text": "Gateway endpoint",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-primary-usetls",
+ "count": 1
+ },
+ {
+ "text": "Gateway endpoint",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-backup-usetls",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-91ea5655657641669ddf61638fb2e7a2-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-91ea5655657641669ddf61638fb2e7a2-64657461696C732E6E616D65",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-d44fb2711ece4925aaec90e08d2cd6ff-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-d44fb2711ece4925aaec90e08d2cd6ff-64657461696C732E6E616D65",
+ "count": 1
+ }
+ ],
+ "descriptions": [],
+ "controls": [
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-primary-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-backup-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-91ea5655657641669ddf61638fb2e7a2-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-91ea5655657641669ddf61638fb2e7a2-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-d44fb2711ece4925aaec90e08d2cd6ff-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-d44fb2711ece4925aaec90e08d2cd6ff-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-87d99926b7d248ecbb60110b1c521204-506C616E74204120636F6E66696775726174696F6E"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-87d99926b7d248ecbb60110b1c521204-506C616E74204220636F6E66696775726174696F6E"
+ }
+ ],
+ "layout": {
+ "innerWidth": 1440,
+ "scrollWidth": 1440
+ },
+ "width": 1440,
+ "view": "components",
+ "browserErrors": [],
+ "treeNames": [
+ "Plant A configuration",
+ "Plant B configuration"
+ ],
+ "monacoName": "Synthetic local JSON payload",
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 1440,
+ "scrollWidth": 1440
+ },
+ "width": 1440,
+ "view": "sms",
+ "browserErrors": [],
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 1440,
+ "scrollWidth": 1440
+ },
+ "width": 1440,
+ "view": "smtp",
+ "browserErrors": [],
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [
+ {
+ "text": "Gateway endpoint",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-primary-usetls",
+ "count": 1
+ },
+ {
+ "text": "Gateway endpoint",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-backup-usetls",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-090c9dec621142309862b46ded608bb4-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-090c9dec621142309862b46ded608bb4-64657461696C732E6E616D65",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-10152127128245bc98d7ada03727568d-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-10152127128245bc98d7ada03727568d-64657461696C732E6E616D65",
+ "count": 1
+ }
+ ],
+ "descriptions": [],
+ "controls": [
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-primary-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-backup-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-090c9dec621142309862b46ded608bb4-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-090c9dec621142309862b46ded608bb4-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-10152127128245bc98d7ada03727568d-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-10152127128245bc98d7ada03727568d-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-5011e83222ad41acb7cb2f00d561d8e2-506C616E74204120636F6E66696775726174696F6E"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-5011e83222ad41acb7cb2f00d561d8e2-506C616E74204220636F6E66696775726174696F6E"
+ }
+ ],
+ "layout": {
+ "innerWidth": 390,
+ "scrollWidth": 390
+ },
+ "width": 390,
+ "view": "components",
+ "browserErrors": [],
+ "treeNames": [
+ "Plant A configuration",
+ "Plant B configuration"
+ ],
+ "monacoName": "Synthetic local JSON payload",
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 390,
+ "scrollWidth": 390
+ },
+ "width": 390,
+ "view": "sms",
+ "browserErrors": [],
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 390,
+ "scrollWidth": 390
+ },
+ "width": 390,
+ "view": "smtp",
+ "browserErrors": [],
+ "passed": true
+ }
+]
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/results.json b/docs/ui-consistency/evidence/sb01-03/forms-browser/results.json
new file mode 100644
index 00000000..bcf10c18
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/forms-browser/results.json
@@ -0,0 +1,476 @@
+[
+ {
+ "duplicateIds": [],
+ "labels": [
+ {
+ "text": "Gateway endpoint",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-6672a6dcddfd402db430a648e78844ca-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-primary-usetls",
+ "count": 1
+ },
+ {
+ "text": "Gateway endpoint",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-12c541e85df34a8991edc0bdc7783922-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-backup-usetls",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-91ea5655657641669ddf61638fb2e7a2-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-91ea5655657641669ddf61638fb2e7a2-64657461696C732E6E616D65",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-d44fb2711ece4925aaec90e08d2cd6ff-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-d44fb2711ece4925aaec90e08d2cd6ff-64657461696C732E6E616D65",
+ "count": 1
+ }
+ ],
+ "descriptions": [],
+ "controls": [
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-6672a6dcddfd402db430a648e78844ca-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-primary-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-12c541e85df34a8991edc0bdc7783922-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-backup-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-91ea5655657641669ddf61638fb2e7a2-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-91ea5655657641669ddf61638fb2e7a2-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-d44fb2711ece4925aaec90e08d2cd6ff-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-d44fb2711ece4925aaec90e08d2cd6ff-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-87d99926b7d248ecbb60110b1c521204-506C616E74204120636F6E66696775726174696F6E"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-87d99926b7d248ecbb60110b1c521204-506C616E74204220636F6E66696775726174696F6E"
+ }
+ ],
+ "layout": {
+ "innerWidth": 1440,
+ "scrollWidth": 1440
+ },
+ "width": 1440,
+ "view": "components",
+ "browserErrors": [],
+ "treeNames": [
+ "Plant A configuration",
+ "Plant B configuration"
+ ],
+ "monacoName": "Synthetic local JSON payload",
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 1440,
+ "scrollWidth": 1440
+ },
+ "width": 1440,
+ "view": "sms",
+ "browserErrors": [],
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 1440,
+ "scrollWidth": 1440
+ },
+ "width": 1440,
+ "view": "smtp",
+ "browserErrors": [],
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [
+ {
+ "text": "Gateway endpoint",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-primary-usetls",
+ "count": 1
+ },
+ {
+ "text": "Gateway endpoint",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-1",
+ "count": 1
+ },
+ {
+ "text": "API key",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-2",
+ "count": 1
+ },
+ {
+ "text": "Client name",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-3",
+ "count": 1
+ },
+ {
+ "text": "Write user id",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-4",
+ "count": 1
+ },
+ {
+ "text": "Read timeout (ms)",
+ "target": "field-37900c0eebb8400ab3de7acfb80364a2-field-5",
+ "count": 1
+ },
+ {
+ "text": "Use TLS",
+ "target": "sample-backup-usetls",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-090c9dec621142309862b46ded608bb4-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-090c9dec621142309862b46ded608bb4-64657461696C732E6E616D65",
+ "count": 1
+ },
+ {
+ "text": "count\n Integer?",
+ "target": "param-10152127128245bc98d7ada03727568d-636F756E74",
+ "count": 1
+ },
+ {
+ "text": "name\n String?",
+ "target": "param-10152127128245bc98d7ada03727568d-64657461696C732E6E616D65",
+ "count": 1
+ }
+ ],
+ "descriptions": [],
+ "controls": [
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-e4b296984e6f4d5a9a79460a46a49aaa-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-primary-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-1",
+ "name": "Gateway endpoint"
+ },
+ {
+ "tag": "INPUT",
+ "type": "password",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-2",
+ "name": "API key"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-3",
+ "name": "Client name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-4",
+ "name": "Write user id"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "field-37900c0eebb8400ab3de7acfb80364a2-field-5",
+ "name": "Read timeout (ms)"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "sample-backup-usetls",
+ "name": "Use TLS"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-090c9dec621142309862b46ded608bb4-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-090c9dec621142309862b46ded608bb4-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "number",
+ "id": "param-10152127128245bc98d7ada03727568d-636F756E74",
+ "name": "count"
+ },
+ {
+ "tag": "INPUT",
+ "type": "text",
+ "id": "param-10152127128245bc98d7ada03727568d-64657461696C732E6E616D65",
+ "name": "details.name"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-5011e83222ad41acb7cb2f00d561d8e2-506C616E74204120636F6E66696775726174696F6E"
+ },
+ {
+ "tag": "INPUT",
+ "type": "checkbox",
+ "id": "",
+ "name": "tree-content-5011e83222ad41acb7cb2f00d561d8e2-506C616E74204220636F6E66696775726174696F6E"
+ }
+ ],
+ "layout": {
+ "innerWidth": 390,
+ "scrollWidth": 390
+ },
+ "width": 390,
+ "view": "components",
+ "browserErrors": [],
+ "treeNames": [
+ "Plant A configuration",
+ "Plant B configuration"
+ ],
+ "monacoName": "Synthetic local JSON payload",
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 390,
+ "scrollWidth": 390
+ },
+ "width": 390,
+ "view": "sms",
+ "browserErrors": [],
+ "passed": true
+ },
+ {
+ "duplicateIds": [],
+ "labels": [],
+ "descriptions": [],
+ "controls": [],
+ "layout": {
+ "innerWidth": 390,
+ "scrollWidth": 390
+ },
+ "width": 390,
+ "view": "smtp",
+ "browserErrors": [],
+ "passed": true
+ }
+]
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/sms-1440.png b/docs/ui-consistency/evidence/sb01-03/forms-browser/sms-1440.png
new file mode 100644
index 00000000..9d6db124
Binary files /dev/null and b/docs/ui-consistency/evidence/sb01-03/forms-browser/sms-1440.png differ
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/sms-390.png b/docs/ui-consistency/evidence/sb01-03/forms-browser/sms-390.png
new file mode 100644
index 00000000..a2d98cfb
Binary files /dev/null and b/docs/ui-consistency/evidence/sb01-03/forms-browser/sms-390.png differ
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/smtp-1440.png b/docs/ui-consistency/evidence/sb01-03/forms-browser/smtp-1440.png
new file mode 100644
index 00000000..36ee9816
Binary files /dev/null and b/docs/ui-consistency/evidence/sb01-03/forms-browser/smtp-1440.png differ
diff --git a/docs/ui-consistency/evidence/sb01-03/forms-browser/smtp-390.png b/docs/ui-consistency/evidence/sb01-03/forms-browser/smtp-390.png
new file mode 100644
index 00000000..fd6e4b8c
Binary files /dev/null and b/docs/ui-consistency/evidence/sb01-03/forms-browser/smtp-390.png differ
diff --git a/docs/ui-consistency/evidence/sb01-03/help-and-composite-green.log b/docs/ui-consistency/evidence/sb01-03/help-and-composite-green.log
new file mode 100644
index 00000000..e89c13e8
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/help-and-composite-green.log
@@ -0,0 +1,25 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+
+Passed! - Failed: 0, Passed: 129, Skipped: 0, Total: 129, Duration: 280 ms - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/help-and-composite-suite.log b/docs/ui-consistency/evidence/sb01-03/help-and-composite-suite.log
new file mode 100644
index 00000000..8438f2e5
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/help-and-composite-suite.log
@@ -0,0 +1,19 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+/Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor(79,25): error RZ10007: The attribute 'aria-describedby' is used two or more times for this element. Attributes must be unique (case-insensitive). [/Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/ZB.MOM.WW.ScadaBridge.CentralUI.csproj]
diff --git a/docs/ui-consistency/evidence/sb01-03/help-inventory.json b/docs/ui-consistency/evidence/sb01-03/help-inventory.json
new file mode 100644
index 00000000..27e2a2e7
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/help-inventory.json
@@ -0,0 +1,107 @@
+[
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ExternalSystemForm.razor",
+ "0 = use gateway default",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "This is the re-fire",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "Optional throttle",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "Per-script execution",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor",
+ "Routes Instance",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DbConnectionForm.razor",
+ "Treat as sensitive",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "Site is locked",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "Protocol is locked",
+ "no matching control"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor",
+ "Retries before failing",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/SchemaLibrary.razor",
+ "Referenced as",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportExport.razor",
+ "Strength:",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/SiteForm.razor",
+ "Retained for historical",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/SiteForm.razor",
+ "Retained for historical",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/InstanceCreate.razor",
+ "@_templateHint",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/FlowDebugger.razor",
+ "@script.TriggerType trigger",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmsConfiguration.razor",
+ "Provide a From Number",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmsConfiguration.razor",
+ "Optional \u2014 used instead",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmsConfiguration.razor",
+ "Treat as sensitive",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmtpConfiguration.razor",
+ "Treat as sensitive",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmtpConfiguration.razor",
+ "Token-endpoint URL",
+ "linked"
+ ],
+ [
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmtpConfiguration.razor",
+ "Scope requested",
+ "linked"
+ ]
+]
diff --git a/docs/ui-consistency/evidence/sb01-03/raw-json-association-green.log b/docs/ui-consistency/evidence/sb01-03/raw-json-association-green.log
new file mode 100644
index 00000000..95501add
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/raw-json-association-green.log
@@ -0,0 +1,36 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+[xUnit.net 00:00:00.40] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Design.ParameterValueFormMonacoSchemaTests.EscapeHatch_ParseErrorIsLinkedToNamedGroupUntilCorrection [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Design.ParameterValueFormMonacoSchemaTests.EscapeHatch_ParseErrorIsLinkedToNamedGroupUntilCorrection [31 ms]
+ Error Message:
+ Assert.Equal() Failure: Strings differ
+ ↓ (pos 0)
+Expected: "false"
+Actual: "true"
+ ↑ (pos 0)
+ Stack Trace:
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Design.ParameterValueFormMonacoSchemaTests.EscapeHatch_ParseErrorIsLinkedToNamedGroupUntilCorrection() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Design/ParameterValueFormMonacoSchemaTests.cs:line 53
+--- End of stack trace from previous location ---
+
+Failed! - Failed: 1, Passed: 98, Skipped: 0, Total: 99, Duration: 278 ms - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/raw-json-association-red.log b/docs/ui-consistency/evidence/sb01-03/raw-json-association-red.log
new file mode 100644
index 00000000..e4a39fe5
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/raw-json-association-red.log
@@ -0,0 +1,34 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+[xUnit.net 00:00:00.35] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Design.ParameterValueFormMonacoSchemaTests.EscapeHatch_ParseErrorIsLinkedToNamedGroupUntilCorrection [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Design.ParameterValueFormMonacoSchemaTests.EscapeHatch_ParseErrorIsLinkedToNamedGroupUntilCorrection [202 ms]
+ Error Message:
+ Assert.Equal() Failure: Strings differ
+Expected: "group"
+Actual: null
+ Stack Trace:
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Design.ParameterValueFormMonacoSchemaTests.EscapeHatch_ParseErrorIsLinkedToNamedGroupUntilCorrection() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Design/ParameterValueFormMonacoSchemaTests.cs:line 47
+--- End of stack trace from previous location ---
+
+Failed! - Failed: 1, Passed: 0, Skipped: 0, Total: 1, Duration: 208 ms - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-acceptance.trx b/docs/ui-consistency/evidence/sb01-03/sb03-acceptance.trx
new file mode 100644
index 00000000..ec7e95e0
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-acceptance.trx
@@ -0,0 +1,11252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [xUnit.net 00:00:02.05] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithNoPendingStep_NeverPolls [FAIL]
+
+
+ [xUnit.net 00:00:03.07] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RequiredListItemField_LeftEmpty_KeepsRunDisabled [FAIL]
+
+
+ [xUnit.net 00:00:04.08] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_StandbyNodeRefusal_ShowsInlineAlertVerbatim [FAIL]
+
+
+ [xUnit.net 00:00:04.09] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_CallKind_ShowsTheParameterForm_AndRunsWithParameters [FAIL]
+
+
+ [xUnit.net 00:00:05.10] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsTheInlineLogTruncationBadge [FAIL]
+
+
+ [xUnit.net 00:00:06.11] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Retry_ConfirmsRelaysAndRepollsUntilNotParked [FAIL]
+
+
+ [xUnit.net 00:00:07.16] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_OmitsLogCounts_WhenTheRunLoggedNothing [FAIL]
+
+
+ [xUnit.net 00:00:08.19] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_SwitchingMethods_ResetsTheFormAndItsValidity [FAIL]
+
+
+ [xUnit.net 00:00:09.20] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_SendsTypedInputs_AndRendersTheReturnedGraph [FAIL]
+
+
+ [xUnit.net 00:00:10.21] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithPendingOutbound_PollsReplayUntilTerminal [FAIL]
+
+
+ [xUnit.net 00:00:11.22] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_InvalidDocument_BlocksRun_AndShowsTheError [FAIL]
+
+
+ [xUnit.net 00:00:11.23] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingFromAnInvalidFormToANoParameterScript_EnablesRun [FAIL]
+
+
+ [xUnit.net 00:00:12.23] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StepDetail_LogHint_SelectsTheSiblingStepCarryingTheOtherLines [FAIL]
+
+
+ [xUnit.net 00:00:13.24] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsLogCountsByLevel [FAIL]
+
+
+ [xUnit.net 00:00:14.26] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Discard_UsesDangerConfirm_AndDoesNotPollWhenRefused [FAIL]
+
+
+ [xUnit.net 00:00:15.26] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_ClearsTheInlineCapBadge_OnceItMergesInMoreLogRows [FAIL]
+
+
+ [xUnit.net 00:00:16.27] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_WithNoSiteStepsAndNoChildId_ShowsSiteNotTracedLabel [FAIL]
+
+
+ [xUnit.net 00:00:17.28] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.PendingRefresh_KeepsStepsTheLiveRunAlreadyHad_WhenReplayLagsBehindTelemetry [FAIL]
+
+
+ [xUnit.net 00:00:18.29] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_KeepsTheInlineCapBadge_WhenTheReReadBringsBackNoNewLines [FAIL]
+
+
+ [xUnit.net 00:00:19.29] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StateChip_StaysCompleted_WhenTheOnlyErrorsAreLogLines [FAIL]
+
+
+ [xUnit.net 00:00:20.30] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_LegacyFlatStringEntry_ThatNoLongerValidates_IsDropped [FAIL]
+
+
+ [xUnit.net 00:00:21.30] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_ValidDocument_IsSentVerbatim_AndSurvivesTheSwitchBackToForm [FAIL]
+
+
+ [xUnit.net 00:00:22.33] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_ConfirmDeclined_NeverRelays [FAIL]
+
+
+ [xUnit.net 00:00:22.34] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ChoosingAMethod_ShowsThePredictedGraph_AndTheInputsForm [FAIL]
+
+
+ [xUnit.net 00:00:23.34] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_ArrayOfObjects_RoundTripsFromItemEditorsToTheRunPayload [FAIL]
+
+
+ [xUnit.net 00:00:24.37] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_NotesLinesThatCouldNotBePlacedOnAStep [FAIL]
+
+
+ [xUnit.net 00:00:25.38] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_PersistedValueTree_IsRestoredIntoTheForm [FAIL]
+
+
+ [xUnit.net 00:00:25.41] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingBetweenCallKindScripts_ResetsTheFormAndValidity [FAIL]
+
+
+
+
\ No newline at end of file
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-corrected-suite.log b/docs/ui-consistency/evidence/sb01-03/sb03-corrected-suite.log
new file mode 100644
index 00000000..87d51f8c
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-corrected-suite.log
@@ -0,0 +1,26 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+Results File: /Users/dohertj2/Desktop/ScadaBridge/docs/ui-consistency/evidence/sb01-03/sb03-acceptance-corrected.trx
+
+Passed! - Failed: 0, Passed: 1559, Skipped: 0, Total: 1559, Duration: 33 s - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-final-suite.log b/docs/ui-consistency/evidence/sb01-03/sb03-final-suite.log
new file mode 100644
index 00000000..997d6eaf
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-final-suite.log
@@ -0,0 +1,879 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+[xUnit.net 00:00:02.05] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithNoPendingStep_NeverPolls [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithNoPendingStep_NeverPolls [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithNoPendingStep_NeverPolls() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 681
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:03.07] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RequiredListItemField_LeftEmpty_KeepsRunDisabled [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RequiredListItemField_LeftEmpty_KeepsRunDisabled [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-SAPID'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RequiredListItemField_LeftEmpty_KeepsRunDisabled() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1349
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:04.08] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_StandbyNodeRefusal_ShowsInlineAlertVerbatim [FAIL]
+[xUnit.net 00:00:04.09] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_CallKind_ShowsTheParameterForm_AndRunsWithParameters [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_StandbyNodeRefusal_ShowsInlineAlertVerbatim [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_StandbyNodeRefusal_ShowsInlineAlertVerbatim() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 345
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_CallKind_ShowsTheParameterForm_AndRunsWithParameters [10 ms]
+ Error Message:
+ Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-n'
+ Stack Trace:
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.RenderedComponentExtensions.Find[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_CallKind_ShowsTheParameterForm_AndRunsWithParameters() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 794
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
+[xUnit.net 00:00:05.10] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsTheInlineLogTruncationBadge [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsTheInlineLogTruncationBadge [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsTheInlineLogTruncationBadge() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1116
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:06.11] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Retry_ConfirmsRelaysAndRepollsUntilNotParked [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Retry_ConfirmsRelaysAndRepollsUntilNotParked [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunToParkedNode(Guid root, FlowDebugOutcome parked) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 436
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Retry_ConfirmsRelaysAndRepollsUntilNotParked() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 454
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:07.16] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_OmitsLogCounts_WhenTheRunLoggedNothing [FAIL]
+[xUnit.net 00:00:08.19] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_SwitchingMethods_ResetsTheFormAndItsValidity [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_OmitsLogCounts_WhenTheRunLoggedNothing [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_OmitsLogCounts_WhenTheRunLoggedNothing() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1102
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_SwitchingMethods_ResetsTheFormAndItsValidity [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_SwitchingMethods_ResetsTheFormAndItsValidity() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1435
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:09.20] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_SendsTypedInputs_AndRendersTheReturnedGraph [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_SendsTypedInputs_AndRendersTheReturnedGraph [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_SendsTypedInputs_AndRendersTheReturnedGraph() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 317
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:10.21] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithPendingOutbound_PollsReplayUntilTerminal [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithPendingOutbound_PollsReplayUntilTerminal [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.LiveRun_WithPendingOutbound_PollsReplayUntilTerminal() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 585
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:11.22] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_InvalidDocument_BlocksRun_AndShowsTheError [FAIL]
+[xUnit.net 00:00:11.23] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingFromAnInvalidFormToANoParameterScript_EnablesRun [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_InvalidDocument_BlocksRun_AndShowsTheError [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_InvalidDocument_BlocksRun_AndShowsTheError() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1368
+--- End of stack trace from previous location ---
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingFromAnInvalidFormToANoParameterScript_EnablesRun [5 ms]
+ Error Message:
+ Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-n'
+ Stack Trace:
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.RenderedComponentExtensions.Find[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ChooseScriptWithAnInvalidParameter() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 854
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingFromAnInvalidFormToANoParameterScript_EnablesRun() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 884
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+[xUnit.net 00:00:12.23] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StepDetail_LogHint_SelectsTheSiblingStepCarryingTheOtherLines [FAIL]
+[xUnit.net 00:00:13.24] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsLogCountsByLevel [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StepDetail_LogHint_SelectsTheSiblingStepCarryingTheOtherLines [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StepDetail_LogHint_SelectsTheSiblingStepCarryingTheOtherLines() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1175
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsLogCountsByLevel [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_ShowsLogCountsByLevel() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1091
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:14.26] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Discard_UsesDangerConfirm_AndDoesNotPollWhenRefused [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Discard_UsesDangerConfirm_AndDoesNotPollWhenRefused [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunToParkedNode(Guid root, FlowDebugOutcome parked) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 436
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_Discard_UsesDangerConfirm_AndDoesNotPollWhenRefused() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 476
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:15.26] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_ClearsTheInlineCapBadge_OnceItMergesInMoreLogRows [FAIL]
+[xUnit.net 00:00:16.27] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_WithNoSiteStepsAndNoChildId_ShowsSiteNotTracedLabel [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_ClearsTheInlineCapBadge_OnceItMergesInMoreLogRows [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_ClearsTheInlineCapBadge_OnceItMergesInMoreLogRows() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1237
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_WithNoSiteStepsAndNoChildId_ShowsSiteNotTracedLabel [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.Run_WithNoSiteStepsAndNoChildId_ShowsSiteNotTracedLabel() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 383
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:17.28] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.PendingRefresh_KeepsStepsTheLiveRunAlreadyHad_WhenReplayLagsBehindTelemetry [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.PendingRefresh_KeepsStepsTheLiveRunAlreadyHad_WhenReplayLagsBehindTelemetry [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.PendingRefresh_KeepsStepsTheLiveRunAlreadyHad_WhenReplayLagsBehindTelemetry() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 658
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:18.29] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_KeepsTheInlineCapBadge_WhenTheReReadBringsBackNoNewLines [FAIL]
+[xUnit.net 00:00:19.29] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StateChip_StaysCompleted_WhenTheOnlyErrorsAreLogLines [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_KeepsTheInlineCapBadge_WhenTheReReadBringsBackNoNewLines [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RefreshOutcomes_KeepsTheInlineCapBadge_WhenTheReReadBringsBackNoNewLines() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1256
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StateChip_StaysCompleted_WhenTheOnlyErrorsAreLogLines [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StateChip_StaysCompleted_WhenTheOnlyErrorsAreLogLines() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1141
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:20.30] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_LegacyFlatStringEntry_ThatNoLongerValidates_IsDropped [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_LegacyFlatStringEntry_ThatNoLongerValidates_IsDropped [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_LegacyFlatStringEntry_ThatNoLongerValidates_IsDropped() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1473
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:21.30] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_ValidDocument_IsSentVerbatim_AndSurvivesTheSwitchBackToForm [FAIL]
+[xUnit.net 00:00:22.33] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_ConfirmDeclined_NeverRelays [FAIL]
+[xUnit.net 00:00:22.34] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ChoosingAMethod_ShowsThePredictedGraph_AndTheInputsForm [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_ValidDocument_IsSentVerbatim_AndSurvivesTheSwitchBackToForm [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-SAPID'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_RawJson_ValidDocument_IsSentVerbatim_AndSurvivesTheSwitchBackToForm() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1404
+--- End of stack trace from previous location ---
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_ConfirmDeclined_NeverRelays [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunToParkedNode(Guid root, FlowDebugOutcome parked) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 436
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ParkedNode_ConfirmDeclined_NeverRelays() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 495
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ChoosingAMethod_ShowsThePredictedGraph_AndTheInputsForm [9 ms]
+ Error Message:
+ Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ChoosingAMethod_ShowsThePredictedGraph_AndTheInputsForm() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 300
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+[xUnit.net 00:00:23.34] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_ArrayOfObjects_RoundTripsFromItemEditorsToTheRunPayload [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_ArrayOfObjects_RoundTripsFromItemEditorsToTheRunPayload [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-SAPID'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_ArrayOfObjects_RoundTripsFromItemEditorsToTheRunPayload() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1317
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:24.37] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_NotesLinesThatCouldNotBePlacedOnAStep [FAIL]
+[xUnit.net 00:00:25.38] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_PersistedValueTree_IsRestoredIntoTheForm [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_NotesLinesThatCouldNotBePlacedOnAStep [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The CSS selector and/or predicate did not result in a matching element before the timeout period passed.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 363
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElementCore[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 353
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForElement[TComponent](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForElement.cs:line 21
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.FillRequiredMethodInput(IRenderedComponent`1 cut) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1301
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.RunWith(FlowDebugOutcome outcome) in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1079
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.StatusStrip_NotesLinesThatCouldNotBePlacedOnAStep() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1127
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at Bunit.Extensions.WaitForHelpers.WaitForElementHelper`2.<>c__DisplayClass5_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForElementHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_PersistedValueTree_IsRestoredIntoTheForm [1 s]
+ Error Message:
+ Bunit.Extensions.WaitForHelpers.WaitForFailedException : The assertion did not pass within the timeout period.
+
+If this test does not fail consistently, the reason may be that
+the wait timeout is too short, and the runtime did not have enough
+time to complete the necessary number of renders of the component under test.
+This can happen on highly utilized or slower hardware, for example.
+
+To determine if this is the cause, compare the check and render count(s) below
+and see if they match what is expected. If they do not,
+consider increasing the timeout, either at the individual
+method call level, e.g. WaitForElement("div", TimeSpan.FromSeconds(15)),
+or via the static TestContext.DefaultWaitTimeout property.
+
+Check count: 1.
+Component render count: 4.
+Total render count across all components: 0.
+---- Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-MachineCode'
+ Stack Trace:
+ at Bunit.RenderedComponentWaitForHelperExtensions.WaitForAssertion[TComponent](IRenderedComponent`1 renderedComponent, Action assertion, Nullable`1 timeout) in /_/src/bunit/Extensions/WaitForHelpers/RenderedComponentWaitForHelperExtensions.WaitForState.cs:line 77
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.MethodEntry_PersistedValueTree_IsRestoredIntoTheForm() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1456
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+----- Inner Stack Trace -----
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.<>c__DisplayClass80_0.b__0() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 1456
+ at Bunit.Extensions.WaitForHelpers.WaitForAssertionHelper`1.<>c__DisplayClass6_0.<.ctor>b__0() in /_/src/bunit/Extensions/WaitForHelpers/WaitForAssertionHelper.cs:line 35
+ at Bunit.Extensions.WaitForHelpers.WaitForHelper`2.OnAfterRender(Object sender, EventArgs args) in /_/src/bunit/Extensions/WaitForHelpers/WaitForHelper.cs:line 173
+[xUnit.net 00:00:25.41] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingBetweenCallKindScripts_ResetsTheFormAndValidity [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingBetweenCallKindScripts_ResetsTheFormAndValidity [3 ms]
+ Error Message:
+ Bunit.ElementNotFoundException : No elements were found that matches the selector '#param-n'
+ Stack Trace:
+ at Bunit.RenderedComponentExtensions.Find[TComponent,TElement](IRenderedComponent`1 renderedComponent, String cssSelector) in /_/src/bunit/Extensions/RenderedComponentExtensions.cs:line 42
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ChooseScriptWithAnInvalidParameter() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 854
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Deployment.FlowDebuggerPageTests.ScriptEntry_SwitchingBetweenCallKindScripts_ResetsTheFormAndValidity() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs:line 865
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
+ at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
+ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+Results File: /Users/dohertj2/Desktop/ScadaBridge/docs/ui-consistency/evidence/sb01-03/sb03-acceptance.trx
+
+Failed! - Failed: 28, Passed: 1531, Skipped: 0, Total: 1559, Duration: 33 s - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-freeze-suite.log b/docs/ui-consistency/evidence/sb01-03/sb03-freeze-suite.log
new file mode 100644
index 00000000..2b56d7de
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-freeze-suite.log
@@ -0,0 +1,26 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+Results File: /Users/dohertj2/Desktop/ScadaBridge/docs/ui-consistency/evidence/sb01-03/sb03-freeze.trx
+
+Passed! - Failed: 0, Passed: 1559, Skipped: 0, Total: 1559, Duration: 33 s - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-freeze.trx b/docs/ui-consistency/evidence/sb01-03/sb03-freeze.trx
new file mode 100644
index 00000000..365976b1
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-freeze.trx
@@ -0,0 +1,9516 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-frozen-suite.log b/docs/ui-consistency/evidence/sb01-03/sb03-frozen-suite.log
new file mode 100644
index 00000000..806b8a85
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-frozen-suite.log
@@ -0,0 +1,26 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+Results File: /Users/dohertj2/Desktop/ScadaBridge/docs/ui-consistency/evidence/sb01-03/sb03-frozen.trx
+
+Passed! - Failed: 0, Passed: 1559, Skipped: 0, Total: 1559, Duration: 33 s - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-reviewed-final-suite.log b/docs/ui-consistency/evidence/sb01-03/sb03-reviewed-final-suite.log
new file mode 100644
index 00000000..449d510a
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-reviewed-final-suite.log
@@ -0,0 +1,26 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+Results File: /Users/dohertj2/Desktop/ScadaBridge/docs/ui-consistency/evidence/sb01-03/sb03-reviewed-final.trx
+
+Passed! - Failed: 0, Passed: 1559, Skipped: 0, Total: 1559, Duration: 33 s - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/docs/ui-consistency/evidence/sb01-03/sb03-source-freeze.json b/docs/ui-consistency/evidence/sb01-03/sb03-source-freeze.json
new file mode 100644
index 00000000..7591b44e
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/sb03-source-freeze.json
@@ -0,0 +1,67 @@
+{
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Audit/AuditFilterBar.razor": "2bcdc0f3aa0515ab8f28a49b2164c0e041747274b19b1ee90707f52e4e43b8ba",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Dialogs/NodeBrowserDialog.razor": "8fef5fd69d12f2e31cbc68f5474eb5f226f7a6f80e7d29e9b09293adc950e519",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/MxGatewayEndpointEditor.razor": "de40d6b4ca2ec6b11d811054206271a09dd2aec85275705108206b3c80f28777",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/OpcUaEndpointEditor.razor": "99aaea03e00e32b5b3a09249bd6c4a4f7a3cc018c89e5232db46f2923e2774a2",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/ApiKeyForm.razor": "e570a86aedfbf07e371fd97c8059b731fa3cc6d59fbd9c645bbd8a984b2e3969",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/ApiKeys.razor": "3652d2bed8794b5c30d13c4a4ed57b3c93e71bb5d3421cd2d3f24d8a6b2b0ff3",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/LdapMappingForm.razor": "0586fd3a24db512ed62c179c08921a8fb2a3c119a0cbb1675a9e4e27768438e9",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/LdapMappings.razor": "fb111ea682cb74b2887e1871d6a5360256b2b1207bcd55b0870c0e06156ef4cd",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/SiteForm.razor": "2873169c1aff2afb131cefa667410efec6ea0bacf02644b0027c9aaa987e5dbc",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Admin/Sites.razor": "6901a47bba7b464908a3c6a31ff3261d981d9cbd93b27b078d7e0e8b2ec0f7a9",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/CreateAreaDialog.razor": "fa14117412ef5e92681a101e914853f2422a3d6507e6ffaf8b9719ba35424d37",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/DebugView.razor": "eb3ab54cdc1ce9eba5501f7262b25cd04e2373a3a189dd85a32309c2da5867f4",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/FlowDebugger.razor": "241979045163e15f707f28f6614976aae495e0e36b430785717e0cddb3c37316",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/InstanceConfigure.razor": "a1d4b8f46d373eed1a14b861783dbc64fdf739ca406301fe7b8d425248f1cb11",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/InstanceCreate.razor": "a85eb8e0d8a8b907e3b8102c9f8ac6b6d3cc907bfc65c9cc2a85ec0cafec9352",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/MoveAreaDialog.razor": "b8b85d377676c3483ecd125502aa3c515046932c1c2c181ad20b4ecbe002f158",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/MoveInstanceDialog.razor": "feec5322422159685fd8ea4721709e244bc9c453efdd26c04a45ee536c7cb9a3",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Deployment/Topology.razor": "e3c91d6fc976c86007110ac0a819479f822540cbe365934223450c4835384f0e",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ApiMethodForm.razor": "17fd593bd83b7071bf6284d826385194f8e83e2faa7418e3404e62661481d520",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnectionForm.razor": "6b2230d07556ae49d775339443ea71bd16a000127011f240b3a7b77c1fbff4b9",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DataConnections.razor": "12fc2ff8a5c6b744d4c70760fedf6b5f9a43249743b1c18e53ca906cf1c6d0cd",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/DbConnectionForm.razor": "8b8f5df35fea669ab970251e8ff806433a2a381cb4b27e7867ff68eed9647c87",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ExternalSystemForm.razor": "c6676d330b3648656aec7016b7c54e717dcee63ffcc214de76004bc08cd9ef20",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/ExternalSystems.razor": "f98bc6a6bf4586b927ad5edfe9047fbfe6300fb394ecdbf641398a4524161892",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/SchemaLibrary.razor": "edb6c10cc68c1b20defb1871fa69c67973ab86c2c35e81b00e45d8ad1a2c47f3",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/SharedScriptForm.razor": "36331cd27d41774d894b2d179322b6acc0d71d621f9a960528fe68766044cf3f",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/SharedScripts.razor": "a525cb72c6dbcdc6bf705a9da57d8ab36f410c6520c4aedca3409d06d90a2668",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateAlarmDialog.razor": "c7692a2fea772fd48ed089b6d1ec0848238bd2c3c51af2780bff04d8cba40d3a",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateAttributeDialog.razor": "28dbaef42cf94290abaede243548e48e4e1f3d1333c6841e28f171dc99f01657",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateCreate.razor": "38074169da5d3d8c890d2440eea13e92209d0b62553b083589041d80983ef1da",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateEdit.razor": "a7f5431b2676a46a8dd8426e53229e08af44cc4b3496b9380348e609a977921a",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TemplateScriptDialog.razor": "2446ae972b91d2f9dca52a0f04a0d9cf948a15cf6bcfb91b30427762f8de8cb6",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/Templates.razor": "6f253bc40b8b7fff66257c1e542ce237205cd1c5008219762a32a6f53628665b",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportExport.razor": "d7cb5a6a013d714f1993856f4e6b3bb15aee21201743538e2b7f6f9315959426",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Design/TransportImport.razor": "23fd7ebeb6be48b406bd0a17e53fbf9ba731ce3a61faa962af977af5321432c3",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Monitoring/Health.razor": "0f2779609ef54edb4304599a2979048c180fe09c421d1926ce6648ecad31a898",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/NotificationListForm.razor": "a138d4d53121140f88a8ce9678ae4c9e2185cd659c6d5bc917b3daf85f28ee0b",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmsConfiguration.razor": "b52a4e87dbdbc50c2c9b4c5968381bcfd3c69346d44298017a413c792f0b6e3c",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Notifications/SmtpConfiguration.razor": "a0ab690b0759d6d6c6770183bdf781e9d8d0f5bfbac911c994fe5374f98a51f1",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Pages/Operations/SecuredWrites.razor": "72ab4d79c3dd360970333998ffeffbe13943977e27e2b272ede3558644d588ef",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/AlarmTriggerEditor.razor": "9b9b9dbe565c4736a3a22f97bdb526d0311843e0a20d5f09bca58c9ff2934490",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/AttributeListEditor.razor": "efd2a47f67187a82ad2b4d0c1324f8b283562f8d3cb1958691179c467a2db1c9",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/ComposeIntoDialog.razor": "2af91f3c923c75767827019df77e3da6908ac9094593489d426d502e71897c39",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/DataTable.razor": "65deb2f88b520f1c7e809cc0f0021d636166f49c125f8f33a516c44876d592a4",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/DeployAllDialog.razor": "f61ce4e4e3909f54e394ee40cb4fdb12e8626cd0ca19a05d7a95835ffa1e4d42",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/MonacoEditor.razor": "5d2857baf99d3bcfd71b5680107630f1edfa2ba9a5b52073ac9e9da92e25c68a",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/MoveDataConnectionDialog.razor": "21aa5fccf1b82310d45fb5fe19623a1e6946ddb16c7df4f3d0e687e2326405b5",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/MoveFolderDialog.razor": "82cb7bab20b5e3d7660b8d8e56e658037eef8d3cf3bb3aa101566e85169f6d29",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/MoveTemplateDialog.razor": "2b9d29ef921a5996d11d0cbacc13fdb7ee291678da8c8827fa66de0b86bd264e",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/MultiSelectDropdown.razor": "7b3a13b67e996b8380703cd0264bf1db3f962017614659ee50aa0bbcc6ca6428",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/MultiSelectDropdown.razor.cs": "85bcd2c03d96e695976ddab9e41777f7614e0ac4116ba2cfc13b990635fb4922",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/ParameterValueForm.razor": "7fa3ffcb09274b8b23c7cd8434efdff0d7d7b1fb828b6cbd0420b22e90a39432",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/RenameFolderDialog.razor": "5a9104184180f23e718df8a9866b465fb2cd711064f6a6bdd40ac5506ffe9821",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/SchemaBuilder.razor": "182c15aa50f8528da4aac6c30ae2bcc38caf95c2e0f43dcf732b8d8b7d685ba4",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/ScriptTriggerEditor.razor": "baeda2c1dc80ecb92042157946d9b93796f02d86dea3e3433578a44679a45b59",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/TemplatePickerDialog.razor": "5415a5cd85df0276a058a33578a998a9fcd143181c9638a0a7dc3825cac16cdc",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Shared/TreeView.razor": "99c35c99f5db339e4fce75d1d68903accd90028e5c03e592dd02f2799e04fff4",
+ "src/ZB.MOM.WW.ScadaBridge.CentralUI/wwwroot/js/monaco-init.js": "b4d7d2c47279bf247390733a1c253ba95e2b0c99bd6ada03510d80701cacc5e4",
+ "tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Deployment/FlowDebuggerPageTests.cs": "1ffff52e458302f2164656edded9620c6c69227ce49325fff9e521c455675a4c",
+ "tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Design/ParameterValueFormTests.cs": "3b6fef8ea94441fe3ae38fcbd8cae9981b83ca460bfe26ac23df1f2f4ed02f0a",
+ "tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Forms/OpcUaEndpointEditorTests.cs": "778553af9313e01eae482eb509dd0f1d930fd7431c35b916d18c5286c93449ba",
+ "tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Pages/Design/TransportExportPageTests.cs": "123b3c31bf59f5a1b39ffc67a8cc5e0102bbbeefacbee6905f3fd22504baf279",
+ "tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Shared/MonacoEditorLoggingTests.cs": "67f4d8cb757dc74d9f16916e1b84281d313c3c08b291857609481ef26adfeebe",
+ "tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/TreeViewMultiSelectTests.cs": "aedd611175a4babfe67b50dab1a1e9dba07512c9ba6f869bd729534984d47477",
+ "tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Shared/ControlLabelTests.cs": "bc88e1ec88b635379ded223a467b775223fa8686b510c91bd370790b75693e4c"
+}
diff --git a/docs/ui-consistency/evidence/sb01-03/transport-description-red.log b/docs/ui-consistency/evidence/sb01-03/transport-description-red.log
new file mode 100644
index 00000000..4fc825b8
--- /dev/null
+++ b/docs/ui-consistency/evidence/sb01-03/transport-description-red.log
@@ -0,0 +1,34 @@
+ ZB.MOM.WW.ScadaBridge.Commons -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Commons.dll
+ ZB.MOM.WW.ScadaBridge.KpiHistory -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.KpiHistory/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.KpiHistory.dll
+ ZB.MOM.WW.ScadaBridge.ConfigurationDatabase -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.dll
+ ZB.MOM.WW.ScadaBridge.Communication -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Communication/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Communication.dll
+ ZB.MOM.WW.ScadaBridge.Security -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Security/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Security.dll
+ ZB.MOM.WW.ScadaBridge.ScriptAnalysis -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.dll
+ ZB.MOM.WW.ScadaBridge.SiteEventLogging -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.SiteEventLogging.dll
+ ZB.MOM.WW.ScadaBridge.StoreAndForward -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.StoreAndForward.dll
+ ZB.MOM.WW.ScadaBridge.TemplateEngine -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.TemplateEngine/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.TemplateEngine.dll
+ ZB.MOM.WW.ScadaBridge.AuditLog -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.AuditLog/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.AuditLog.dll
+ ZB.MOM.WW.ScadaBridge.Transport -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Transport/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.Transport.dll
+ ZB.MOM.WW.ScadaBridge.DeploymentManager -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.DeploymentManager/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.DeploymentManager.dll
+ ZB.MOM.WW.ScadaBridge.NotificationService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationService.dll
+ ZB.MOM.WW.ScadaBridge.HealthMonitoring -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.HealthMonitoring/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.HealthMonitoring.dll
+ ZB.MOM.WW.ScadaBridge.ExternalSystemGateway -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ExternalSystemGateway.dll
+ ZB.MOM.WW.ScadaBridge.InboundAPI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.InboundAPI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.InboundAPI.dll
+ ZB.MOM.WW.ScadaBridge.NotificationOutbox -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.NotificationOutbox/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.NotificationOutbox.dll
+ ZB.MOM.WW.ScadaBridge.ManagementService -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.ManagementService/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.ManagementService.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker -> /Users/dohertj2/Desktop/ScadaBridge/src/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.SandboxWorker.dll
+ ZB.MOM.WW.ScadaBridge.CentralUI.Tests -> /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll
+Test run for /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/bin/Release/net10.0/ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (.NETCoreApp,Version=v10.0)
+A total of 1 test files matched the specified pattern.
+[xUnit.net 00:00:00.41] ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Pages.Design.TransportExportPageTests.Step4_triggers_ExportAsync_with_selected_artifacts_and_user_identity [FAIL]
+ Failed ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Pages.Design.TransportExportPageTests.Step4_triggers_ExportAsync_with_selected_artifacts_and_user_identity [5 ms]
+ Error Message:
+ Assert.Equal() Failure: Strings differ
+Expected: "true"
+Actual: null
+ Stack Trace:
+ at ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Pages.Design.TransportExportPageTests.Step4_triggers_ExportAsync_with_selected_artifacts_and_user_identity() in /Users/dohertj2/Desktop/ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.Tests/Pages/Design/TransportExportPageTests.cs:line 309
+--- End of stack trace from previous location ---
+
+Failed! - Failed: 1, Passed: 11, Skipped: 0, Total: 12, Duration: 289 ms - ZB.MOM.WW.ScadaBridge.CentralUI.Tests.dll (net10.0)
diff --git a/infra/tools/inspect_form_associations.py b/infra/tools/inspect_form_associations.py
new file mode 100644
index 00000000..8ab43068
--- /dev/null
+++ b/infra/tools/inspect_form_associations.py
@@ -0,0 +1,18 @@
+from pathlib import Path
+import json
+from playwright.sync_api import sync_playwright
+out=Path('docs/ui-consistency/evidence/sb01-03/forms-browser');out.mkdir(exist_ok=True);results=[]
+with sync_playwright() as p:
+ b=p.chromium.launch(channel='chromium')
+ for width in [1440,390]:
+ for view in ['components','sms','smtp']:
+ page=b.new_page(viewport={'width':width,'height':1000},reduced_motion='reduce');errors=[];page.on('pageerror',lambda e:errors.append(str(e)));page.goto('http://127.0.0.1:5201/form-samples?view='+view,wait_until='networkidle')
+ if view=='sms':page.get_by_role('button',name='Add SMS configuration',exact=True).click()
+ if view=='smtp':page.get_by_role('button',name='Add SMTP configuration',exact=True).click()
+ if view=='components':page.locator('.monaco-editor textarea').wait_for();page.locator('#parameter-samples input[type=number]').first.fill('3');page.locator('#parameter-samples input[type=number]').first.dispatch_event('input');page.wait_for_timeout(200)
+ record=page.evaluate(r'''()=>{let ids=[...document.querySelectorAll('[id]')].map(e=>e.id);let duplicateIds=ids.filter((id,i)=>ids.indexOf(id)!==i);let labels=[...document.querySelectorAll('label[for]')].map(e=>({text:e.textContent.trim(),target:e.htmlFor,count:document.querySelectorAll('[id="'+e.htmlFor+'"]').length}));let descriptions=[...document.querySelectorAll('[aria-describedby]')].map(e=>({control:e.id||e.tagName,ids:e.getAttribute('aria-describedby').split(/\s+/).filter(Boolean),valid:e.getAttribute('aria-describedby').split(/\s+/).filter(Boolean).every(id=>document.getElementById(id))}));let controls=[...document.querySelectorAll('input,select,textarea')].filter(e=>e.type!=='hidden'&&!e.closest('[aria-hidden=true]')&&e.getClientRects().length>0).map(e=>({tag:e.tagName,type:e.type,id:e.id,name:e.getAttribute('aria-label')||e.getAttribute('aria-labelledby')||[...e.labels||[]].map(l=>l.textContent.trim()).join(' ')}));return {duplicateIds,labels,descriptions,controls,layout:{innerWidth,scrollWidth:document.documentElement.scrollWidth}};}''');record.update({'width':width,'view':view,'browserErrors':errors})
+ if view=='components':record['treeNames']=page.locator('#tree-samples input').evaluate_all('xs=>xs.map(e=>document.getElementById(e.getAttribute("aria-labelledby")).textContent.trim())');record['monacoName']=page.locator('.monaco-editor [role=textbox]').get_attribute('aria-label')
+ record['passed']=not record['duplicateIds'] and all(l['count']==1 for l in record['labels']) and all(d['valid'] for d in record['descriptions']) and all(c['name'] for c in record['controls']) and not errors
+ page.screenshot(path=str(out/f'{view}-{width}.png'),full_page=True);results.append(record);page.close()
+ b.close()
+(out/'results.json').write_text(json.dumps(results,indent=2)+'\n');print([(r['width'],r['view'],r['passed'],r['duplicateIds']) for r in results])
diff --git a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Audit/AuditFilterBar.razor b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Audit/AuditFilterBar.razor
index bd9b739a..80033fd2 100644
--- a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Audit/AuditFilterBar.razor
+++ b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Audit/AuditFilterBar.razor
@@ -29,34 +29,34 @@
@* Kind options are narrowed by the Channel selection (VisibleKinds). *@
-
+
+ LabelledBy="audit-kind-label" DataTest="filter-kind-ms" />
-
+
+ LabelledBy="audit-status-label" DataTest="filter-status-ms" />
-
+
+ LabelledBy="audit-site-label" DataTest="filter-site-ms" />
@@ -65,13 +65,13 @@
for 60s so a render of this bar costs at most one DB hit per
minute per circuit. *@
-
+
+ LabelledBy="audit-node-label" DataTest="filter-node-ms" />
diff --git a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Dialogs/NodeBrowserDialog.razor b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Dialogs/NodeBrowserDialog.razor
index d6263749..b28d2615 100644
--- a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Dialogs/NodeBrowserDialog.razor
+++ b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Dialogs/NodeBrowserDialog.razor
@@ -26,7 +26,7 @@
@if (ShowSearch)
{
-
@@ -112,7 +112,7 @@
Manual node id:
-
+
@if (!OpcUaReferenceForm.IsDurable(_manualNodeId))
diff --git a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/MxGatewayEndpointEditor.razor b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/MxGatewayEndpointEditor.razor
index 0ec3e6c1..85a70b70 100644
--- a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/MxGatewayEndpointEditor.razor
+++ b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/MxGatewayEndpointEditor.razor
@@ -12,15 +12,15 @@
-
- Gateway endpoint
+
@RenderFieldError("Endpoint")
-
- API key
+
@RenderFieldError("ApiKey")
@@ -29,19 +29,19 @@
-
- Client name
+
-
- Write user id
+
-
- Read timeout (ms)
+
@RenderFieldError("ReadTimeoutMs")
@@ -63,14 +63,14 @@
@if (Config.UseTls)
{
-
- CA certificate path
+
-
- Server name override
+
@@ -85,15 +85,19 @@
[Parameter] public string IdPrefix { get; set; } = "mxgateway-endpoint";
[Parameter] public ValidationResult? Errors { get; set; }
+ private ValidationEntry? FieldError(string field) => Errors?.Errors.FirstOrDefault(e =>
+ e.EntityName != null && (e.EntityName == field || e.EntityName.EndsWith("." + field)));
+ private string ErrorId(string field) => _fieldScope + "-error-" + field.Replace('.', '-');
+
private RenderFragment? RenderFieldError(string field)
{
- var match = Errors?.Errors.FirstOrDefault(e =>
- e.EntityName != null
- && (e.EntityName == field || e.EntityName.EndsWith("." + field)));
+ var match = FieldError(field);
// Validator text can carry raw, unbounded detail — clamp it and keep the full
// message reachable via the title so it cannot reflow the surrounding row.
return match is null
? null
- : @@match.Message;
+ : @@match.Message;
}
}
+
+@code { private readonly string _fieldScope = "field-" + Guid.NewGuid().ToString("N"); }
diff --git a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/OpcUaEndpointEditor.razor b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/OpcUaEndpointEditor.razor
index 5c928673..c25b32f9 100644
--- a/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/OpcUaEndpointEditor.razor
+++ b/src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Forms/OpcUaEndpointEditor.razor
@@ -25,15 +25,15 @@
-
- Endpoint URL
+
@RenderFieldError("EndpointUrl")
-
-