From bb7dd9c1f6c3a3ea60323f1d23fd21a31f3344ba Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Tue, 28 Nov 2023 09:47:17 +0100 Subject: [PATCH] feat: minipipeline to analyze measurements (#1393) This diff introduces the `minipipeline` package and command. The general idea here is to analyze experiments results using an architecture that matches https://github.com/ooni/data as closely as possible. The advantage of using this architecture is that we can neatly divide the data analysis process into three phases: 1. ingestion converts an OONI measurement into observations, which are flat data structures; 2. analysis converts observations into an analysis structure, which is significantly simpler than observations; 3. scoring is the process (implemented by each experiment) to turn the analysis into top-level keys. That is: ```mermaid stateDiagram-v2 state "{ingestion}" as ingestion MEASUREMENT --> ingestion ingestion --> OBSERVATIONS state "{analysis}" as analysis OBSERVATIONS --> analysis analysis --> ANALYSIS state "{scoring}" as scoring ANALYSIS --> scoring scoring --> TOP_LEVEL_KEYS ``` This diff in particular tackles points 1 and 2. We'll implement 3 for Web Connectivity LTE in a separate diff. The diff itself commits several observations and analysis files along with the measurements from which they originate, which we all collectively use to write regression tests for the `minipipeline` package. The motivation for implementing these changes is that I need a more clearly defined model to address the differences between Web Connectivity LTE and v0.4 (see also https://github.com/ooni/probe-cli/pull/1392). Because there is already an architectural model for implementing these changes in ooni/data, it seems logical to borrow liberally from ooni/data. Incidentally, this change has the benefit of making it easier, in the future, to align ooni/probe-cli and ooni/data. The reference issue is https://github.com/ooni/probe/issues/2634. Implementing this change seems now a precondition for implementing extra changes that would address such an issue for good, by changing LTE's scoring. Unlike the ooni/data pipeline, this pipeline is minimal (hence the name): it only aims to process measurements collected by a recent version of ooniprobe, rather than all measurements from the beginning of time. While there, disable signal integration tests because of https://github.com/ooni/probe/issues/2636. --- .gitignore | 1 + internal/cmd/minipipeline/main.go | 62 + internal/cmd/minipipeline/main_test.go | 101 + .../cmd/minipipeline/testdata/analysis.json | 23 + .../minipipeline/testdata/measurement.json | 986 ++++ .../minipipeline/testdata/observations.json | 266 + internal/experiment/signal/signal_test.go | 1 + internal/minipipeline/analysis.go | 693 +++ internal/minipipeline/analysis_test.go | 427 ++ internal/minipipeline/doc.go | 22 + internal/minipipeline/measurement.go | 47 + internal/minipipeline/observation.go | 582 ++ internal/minipipeline/observation_test.go | 204 + internal/minipipeline/qa_test.go | 79 + .../webconnectivity/generated/README.md | 1 + .../analysis.json | 16 + .../measurement.json | 371 ++ .../observations.json | 160 + .../analysis.json | 16 + .../measurement.json | 588 ++ .../observations.json | 236 + .../analysis.json | 25 + .../measurement.json | 676 +++ .../observations.json | 213 + .../badSSLWithWrongServerName/analysis.json | 16 + .../measurement.json | 361 ++ .../observations.json | 160 + .../analysis.json | 20 + .../measurement.json | 458 ++ .../observations.json | 165 + .../analysis.json | 18 + .../measurement.json | 508 ++ .../observations.json | 203 + .../analysis.json | 25 + .../measurement.json | 511 ++ .../observations.json | 170 + .../generated/dnsBlockingBOGON/analysis.json | 27 + .../dnsBlockingBOGON/measurement.json | 574 ++ .../dnsBlockingBOGON/observations.json | 213 + .../dnsBlockingNXDOMAIN/analysis.json | 25 + .../dnsBlockingNXDOMAIN/measurement.json | 501 ++ .../dnsBlockingNXDOMAIN/observations.json | 170 + .../analysis.json | 23 + .../measurement.json | 684 +++ .../observations.json | 213 + .../analysis.json | 20 + .../measurement.json | 738 +++ .../observations.json | 298 + .../httpBlockingConnectionReset/analysis.json | 18 + .../measurement.json | 519 ++ .../observations.json | 208 + .../httpDiffWithConsistentDNS/analysis.json | 22 + .../measurement.json | 520 ++ .../observations.json | 208 + .../httpDiffWithInconsistentDNS/analysis.json | 22 + .../measurement.json | 740 +++ .../observations.json | 294 + .../analysis.json | 19 + .../measurement.json | 664 +++ .../observations.json | 369 ++ .../analysis.json | 18 + .../measurement.json | 633 +++ .../observations.json | 326 ++ .../analysis.json | 20 + .../measurement.json | 824 +++ .../observations.json | 369 ++ .../analysis.json | 18 + .../measurement.json | 700 +++ .../observations.json | 326 ++ .../analysis.json | 20 + .../measurement.json | 824 +++ .../observations.json | 369 ++ .../analysis.json | 18 + .../measurement.json | 700 +++ .../observations.json | 326 ++ .../analysis.json | 16 + .../measurement.json | 647 +++ .../observations.json | 245 + .../analysis.json | 20 + .../measurement.json | 824 +++ .../observations.json | 369 ++ .../analysis.json | 18 + .../measurement.json | 927 +++ .../observations.json | 402 ++ .../generated/successWithHTTP/analysis.json | 21 + .../successWithHTTP/measurement.json | 543 ++ .../successWithHTTP/observations.json | 213 + .../generated/successWithHTTPS/analysis.json | 23 + .../successWithHTTPS/measurement.json | 499 ++ .../successWithHTTPS/observations.json | 170 + .../tcpBlockingConnectTimeout/analysis.json | 18 + .../measurement.json | 281 + .../observations.json | 165 + .../analysis.json | 25 + .../measurement.json | 636 +++ .../observations.json | 299 + .../analysis.json | 18 + .../measurement.json | 339 ++ .../observations.json | 165 + .../analysis.json | 21 + .../measurement.json | 469 ++ .../observations.json | 208 + .../websiteDownNXDOMAIN/analysis.json | 16 + .../websiteDownNXDOMAIN/measurement.json | 216 + .../websiteDownNXDOMAIN/observations.json | 82 + .../testdata/webconnectivity/manual/README.md | 1 + .../manual/dnsgoogle80/analysis.json | 1 + .../manual/dnsgoogle80/measurement.json | 1 + .../manual/dnsgoogle80/observations.json | 767 +++ .../manual/noipv6/analysis.json | 27 + .../manual/noipv6/measurement.json | 4975 +++++++++++++++++ .../manual/noipv6/observations.json | 3035 ++++++++++ .../manual/youtube/analysis.json | 27 + .../manual/youtube/measurement.json | 4630 +++++++++++++++ .../manual/youtube/observations.json | 2466 ++++++++ internal/minipipeline/utils.go | 8 + 116 files changed, 44824 insertions(+) create mode 100644 internal/cmd/minipipeline/main.go create mode 100644 internal/cmd/minipipeline/main_test.go create mode 100644 internal/cmd/minipipeline/testdata/analysis.json create mode 100644 internal/cmd/minipipeline/testdata/measurement.json create mode 100644 internal/cmd/minipipeline/testdata/observations.json create mode 100644 internal/minipipeline/analysis.go create mode 100644 internal/minipipeline/analysis_test.go create mode 100644 internal/minipipeline/doc.go create mode 100644 internal/minipipeline/measurement.go create mode 100644 internal/minipipeline/observation.go create mode 100644 internal/minipipeline/observation_test.go create mode 100644 internal/minipipeline/qa_test.go create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/README.md create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/README.md create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/noipv6/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json create mode 100644 internal/minipipeline/utils.go diff --git a/.gitignore b/.gitignore index d632bd8b77..a013e69185 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /*.csv /*.deb /*.exe +/*.json /*.jsonl /*.pprof /*.sqlite3 diff --git a/internal/cmd/minipipeline/main.go b/internal/cmd/minipipeline/main.go new file mode 100644 index 0000000000..3c9edf496a --- /dev/null +++ b/internal/cmd/minipipeline/main.go @@ -0,0 +1,62 @@ +package main + +import ( + "flag" + "fmt" + "os" + "path/filepath" + + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +var ( + // destdir is the -destdir flag + destdir = flag.String("destdir", ".", "destination directory to use") + + // measurement is the -measurement flag + measurement = flag.String("measurement", "", "measurement file to analyze") + + // mustWriteFileLn allows overwriting must.WriteFile in tests + mustWriteFileFn = must.WriteFile + + // prefix is the -prefix flag + prefix = flag.String("prefix", "", "prefix to add to generated files") + + // osExit allows overwriting os.Exit in tests + osExit = os.Exit +) + +func main() { + flag.Parse() + if *measurement == "" { + fmt.Fprintf(os.Stderr, "\n") + fmt.Fprintf(os.Stderr, "usage: %s -measurement [-prefix ]\n", filepath.Base(os.Args[0])) + fmt.Fprintf(os.Stderr, "\n") + fmt.Fprintf(os.Stderr, "Mini measurement processing pipeline to reprocess recent probe measurements\n") + fmt.Fprintf(os.Stderr, "and align results calculation with ooni/data.\n") + fmt.Fprintf(os.Stderr, "\n") + fmt.Fprintf(os.Stderr, "Analyzes the provided using -measurement and writes the\n") + fmt.Fprintf(os.Stderr, "observations.json and analysis.json files in the -destdir directory,\n") + fmt.Fprintf(os.Stderr, "which must already exist.\n") + fmt.Fprintf(os.Stderr, "\n") + fmt.Fprintf(os.Stderr, "Use -prefix to add in front of the generated files names.\n") + fmt.Fprintf(os.Stderr, "\n") + osExit(1) + } + + // parse the measurement file + var parsed minipipeline.WebMeasurement + must.UnmarshalJSON(must.ReadFile(*measurement), &parsed) + + // generate and write observations + observationsPath := filepath.Join(*destdir, *prefix+"observations.json") + container := runtimex.Try1(minipipeline.IngestWebMeasurement(&parsed)) + mustWriteFileFn(observationsPath, must.MarshalAndIndentJSON(container, "", " "), 0600) + + // generate and write observations analysis + analysisPath := filepath.Join(*destdir, *prefix+"analysis.json") + analysis := minipipeline.AnalyzeWebObservations(container) + mustWriteFileFn(analysisPath, must.MarshalAndIndentJSON(analysis, "", " "), 0600) +} diff --git a/internal/cmd/minipipeline/main_test.go b/internal/cmd/minipipeline/main_test.go new file mode 100644 index 0000000000..9df67a88e5 --- /dev/null +++ b/internal/cmd/minipipeline/main_test.go @@ -0,0 +1,101 @@ +package main + +import ( + "errors" + "fmt" + "io/fs" + "os" + "path/filepath" + "testing" + + "github.com/google/go-cmp/cmp" + "github.com/ooni/probe-cli/v3/internal/must" +) + +func mustloadfile(filename string) (object map[string]any) { + data := must.ReadFile(filename) + must.UnmarshalJSON(data, &object) + return +} + +func mustloaddata(contentmap map[string][]byte, key string) (object map[string]any) { + data := contentmap[key] + must.UnmarshalJSON(data, &object) + return +} + +func TestMainSuccess(t *testing.T) { + // make sure we set the destination directory + *destdir = "xo" + + // make sure we're reading from the expected input + *measurement = filepath.Join("testdata", "measurement.json") + + // make sure we store the expected output + contentmap := make(map[string][]byte) + mustWriteFileFn = func(filename string, content []byte, mode fs.FileMode) { + contentmap[filename] = content + } + + // make sure osExit is correct + osExit = os.Exit + + // also check whether we can add a prefix + *prefix = "y-" + + // run the main function + main() + + // make sure the generated observations are good + expectedObservations := mustloadfile(filepath.Join("testdata", "observations.json")) + gotObservations := mustloaddata(contentmap, filepath.Join("xo", "y-observations.json")) + if diff := cmp.Diff(expectedObservations, gotObservations); diff != "" { + t.Fatal(diff) + } + + // make sure the generated analysis is good + expectedAnalysis := mustloadfile(filepath.Join("testdata", "analysis.json")) + gotAnalysis := mustloaddata(contentmap, filepath.Join("xo", "y-analysis.json")) + if diff := cmp.Diff(expectedAnalysis, gotAnalysis); diff != "" { + t.Fatal(diff) + } +} + +func TestMainUsage(t *testing.T) { + // make sure we clear the destination directory + *destdir = "" + + // make sure the expected input file is empty + *measurement = "" + + // make sure we panic if we try to write on disk + mustWriteFileFn = func(filename string, content []byte, mode fs.FileMode) { + panic(errors.New("mustWriteFileFn")) + } + + // make sure osExit is correct + osExit = func(code int) { + panic(fmt.Errorf("osExit: %d", code)) + } + + // make sure the prefix is also clean + *prefix = "" + + var err error + func() { + // intercept panic caused by osExit or other panics + defer func() { + if r := recover(); r != nil { + err = r.(error) + } + }() + + // run the main function with the given args + main() + }() + + // make sure we've got the expected error + if err == nil || err.Error() != "osExit: 1" { + t.Fatal("expected", "os.Exit: 1", "got", err) + } +} diff --git a/internal/cmd/minipipeline/testdata/analysis.json b/internal/cmd/minipipeline/testdata/analysis.json new file mode 100644 index 0000000000..6484ef3121 --- /dev/null +++ b/internal/cmd/minipipeline/testdata/analysis.json @@ -0,0 +1,23 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "x-drupal-cache": true, + "x-generator": true + }, + "HTTPFinalResponses": { + "4": true + }, + "HTTPFinalResponsesWithTLS": { + "4": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} diff --git a/internal/cmd/minipipeline/testdata/measurement.json b/internal/cmd/minipipeline/testdata/measurement.json new file mode 100644 index 0000000000..3054658250 --- /dev/null +++ b/internal/cmd/minipipeline/testdata/measurement.json @@ -0,0 +1,986 @@ +{ + "annotations": { + "architecture": "arm64", + "engine_name": "ooniprobe-engine", + "engine_version": "3.20.0-alpha", + "go_version": "go1.20.11", + "platform": "macos", + "vcs_modified": "true", + "vcs_revision": "1eaaac071af3411a63e55edcf4269d41c5c77d63", + "vcs_time": "2023-11-27T16:55:20Z", + "vcs_tool": "git" + }, + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://nexa.polito.it/", + "measurement_start_time": "2023-11-27 17:05:00", + "probe_asn": "AS30722", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Vodafone Italia S.p.A.", + "report_id": "20231127T170500Z_webconnectivity_IT_30722_n1_keQcbSW2K4LoWC9c", + "resolver_asn": "AS30722", + "resolver_ip": "91.80.36.88", + "resolver_network_name": "Vodafone Italia S.p.A.", + "software_name": "miniooni", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://1.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.16.171:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.093297, + "t": 0.154834, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.15486, + "t": 0.15486, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 280, + "operation": "write", + "proto": "tcp", + "t0": 0.155095, + "t": 0.15513, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.155134, + "t": 0.18851, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 3957, + "operation": "read", + "proto": "tcp", + "t0": 0.188732, + "t": 0.188772, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 80, + "operation": "write", + "proto": "tcp", + "t0": 0.193892, + "t": 0.193915, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.193924, + "t": 0.193924, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.193968, + "t": 0.193968, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 304, + "operation": "write", + "proto": "tcp", + "t0": 0.194091, + "t": 0.194109, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 158, + "operation": "read", + "proto": "tcp", + "t0": 0.194948, + "t": 0.226114, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 4864, + "operation": "read", + "proto": "tcp", + "t0": 0.226159, + "t": 0.236533, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 3776, + "operation": "read", + "proto": "tcp", + "t0": 0.236932, + "t": 0.236965, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 2880, + "operation": "read", + "proto": "tcp", + "t0": 0.236969, + "t": 0.237599, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 5760, + "operation": "read", + "proto": "tcp", + "t0": 0.237604, + "t": 0.257691, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 4320, + "operation": "read", + "proto": "tcp", + "t0": 0.257839, + "t": 0.268806, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 15698, + "operation": "read", + "proto": "tcp", + "t0": 0.268812, + "t": 0.270366, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.270579, + "t": 0.270579, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.270868, + "t": 0.270917, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.270564, + "t": 0.271008, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 41989, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.271046, + "t": 0.271046, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": [ + { + "address": "91.80.36.88" + } + ], + "udp_v4": { + "8.8.4.4:53": [ + { + "address": "91.80.36.88" + } + ] + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000834, + "t": 0.000834, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.004079, + "t": 0.020861, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.020896, + "t": 0.020896, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 276, + "operation": "write", + "proto": "tcp", + "t0": 0.02106, + "t": 0.021101, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.021114, + "t": 0.054429, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 3856, + "operation": "read", + "proto": "tcp", + "t0": 0.054733, + "t": 0.054765, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.060409, + "t": 0.060486, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.060502, + "t": 0.060502, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.060567, + "t": 0.060596, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 161, + "operation": "write", + "proto": "tcp", + "t0": 0.060688, + "t": 0.060714, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.060728, + "t": 0.060745, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 38, + "operation": "write", + "proto": "tcp", + "t0": 0.060776, + "t": 0.060812, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.060933, + "t": 0.060954, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 93, + "operation": "read", + "proto": "tcp", + "t0": 0.060649, + "t": 0.077923, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.077966, + "t": 0.078012, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 283, + "operation": "read", + "proto": "tcp", + "t0": 0.078024, + "t": 0.089493, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 1182, + "operation": "read", + "proto": "tcp", + "t0": 0.089627, + "t": 0.090785, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "tcp", + "t0": 0.090846, + "t": 0.090883, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.09104, + "t": 0.09104, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.091081, + "t": 0.091123, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.09094, + "t": 0.091199, + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8888", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8844", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.4.4", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.8.8", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "dns.google.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.google", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001062, + "t": 0.002296, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "8.8.4.4", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.004079, + "t": 0.020861, + "tags": [], + "transaction_id": 2 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "8.8.4.4:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "dns.google", + "t0": 0.020896, + "t": 0.060502, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 2 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.0008, + "t": 0.0008, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001301, + "t": 0.001329, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001311, + "t": 0.001371, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 48, + "operation": "read", + "proto": "udp", + "t0": 0.001361, + "t": 0.030029, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 82, + "operation": "read", + "proto": "udp", + "t0": 0.001417, + "t": 0.031817, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.03185, + "t": 0.03185, + "transaction_id": 3 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "9ESBgAABAAEAAAAABG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAVGAAASCwBCr", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.001128, + "t": 0.030047, + "tags": [], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "4dCBgAABAAAAAQAABG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAACowACYIbGVvbmFyZG/AEQRyb290wCx4lj/+AAAqMAAABwgAEnUAAAFRgA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000817, + "t": 0.031832, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "nexa.polito.it.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000639, + "t": 0.032278, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "IHGBgAABAAEAAAABBG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAFRgAASCwBCrAAApAgAAAIAAAZkADAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.001105, + "t": 0.090905, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "zmOBgAABAAAAAQABBG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAAAcIACYIbGVvbmFyZG/AEQRyb290wCx4lj/+AAAqMAAABwgAEnUAAAFRgAAAKQIAAACAAAF3AAwBcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.000872, + "t": 0.091008, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "nexa.polito.it" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "nexa.polito.it", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://nexa.polito.it/" + }, + "response": { + "body": "\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\n \n\n\n\n \n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n
\n
\n \n\n
\n\t\n\t\n\t\t\t\t\t\t
\n\t\t\t\t\"Nexa\n\t\t\t
\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\t
\n
\n\n \n
\n \n
\"RSS
\n
\"Mail\"
\n
\"Communia
\n
\"Nexa
\n
\"Nexa
\n
\"Nexa
\n
\"github
\n
\n\n\n \n
\n
\n\t\t\t\t\t\n\t\t\t \n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
\n \n
\n\t\t\t
\n\t\t\t\n\t\t\t \t\t\t\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\n\n
\n\n \n\t \n\t\t\t\t\t
\n\t\t \n \n\t\t\t\t\n\t\n\t
\n\t\t
\n\n\t\t\t\n\t\t\t\t\t\n\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\n\n\t\t\t\n\t\t\t
\t\t\t\n\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t \n\t\t\t \n\t\t\t\t
\n
\n\n \n
\n \n
\n \n \n \n
\n \n
\n
\n\n\n\n
    \n \t
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    Il nuovo saggio del co-direttore del Centro Nexa Juan Carlo De Martin

    \nData di uscita: 22 settembre 2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\t

    \n\t\t\tevents \t\t\t

    \n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    15 dicembre 2023

    \nTwitter hashtag della conferenza: #nexa2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    L'intervista di Dealogando al co-direttore del Centro Nexa Maurizio Borghi
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    22 novembre 2023

    \nGIACOMO PISANI (Euricse)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    8 novembre 2023

    \nGUGLIELMO TAMBURRINI (Università di Napoli Federico II)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    25 ottobre 2023

    \nLORENZO LAUDADIO (Politecnico di Torino)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    11 ottobre 2023

    \nSTEVEN UMBRELLO (Institute for Ethics and Emerging Technologies)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
\n\n\n\n
\n
\n\n\n\n\n
\n \n

Pages

\n \n \n \n \n
\n\n\n \n
\n
\n \n\t\t\t \n\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\n\t\t\t \n\t\t
\n \n\t\t\n\t\t\t
\n\t\t\t\t\t\t\t\t
\n
\n\n

Upcoming events

\n \n
\n \n
\n \n \n \n
\n
\n

December

13

2023

\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t
\t\t\n\t
\n\t \n\n\n\t\n\t \n\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t\nPer il ciclo di incontri “i Mercoledì di Nexa” (ogni 2° mercoledì del mese) \n167° Mercoledì di Nexa\nInternet fatta a pezzi\nSovranità digitale,...\t\t\n\t
\n\t \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\n

Recent Publications

\n \n
\n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\t\t\t
\n\t\t \n\n\t
\n \n\t\t\t
\n\t\n\n\t\n\t
\n\t\t
\n
\n\n

search

\n \n
\n \n
\n
\n \n \n
\n
\n\n
\n
\n\n\n \n
\n
\n\n

join our community

\n \n
\n \n

Iscriviti alle nostre mailing lists, contattaci, esplora i nostri corsi, controlla le nostre offerte di lavoro, compila il nostro form per essere aggiornato su future opportunità (come bandi per assegni o borse di ricerca).

\n
\n\n\n \n
\n
\n\n

recommended links

\n \n \n\n\n \n
\n\n
\n\t
\t\t\t\t\n\n\t\n\n
\n
\n
\n\n \n
\n \n
\nNexa Center for Internet & Society
\nVia Boggio, 65/a 10138 Torino, Italy
\nPh. +39 011 090 7217 | Fax +39 011 090
\n7216 | email: info [at] nexa [dot] polito
\n[dot] it\n
\n
\nIl Centro Nexa è un centro di ricerca
\ndel Dipartimento di Automatica e
\nInformatica
del Politecnico di Torino.\n
\n
\nTranne dove altrimenti indicato, il
\ncontenuto di questo sito è rilasciato
\nsecondo i termini della licenza Creative
\nCommons Attribuzione 3.0 Unported
. / Unless otherwise noted this
\n
\n\n
\n\n\n \n
\n
\n
\n\n
\n \n\n\n\n\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Cache-Control", + "public, max-age=3600" + ], + [ + "Content-Language", + "en" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Mon, 27 Nov 2023 17:04:59 GMT" + ], + [ + "Etag", + "\"1701103514-0\"" + ], + [ + "Expires", + "Sun, 19 Nov 1978 05:00:00 GMT" + ], + [ + "Last-Modified", + "Mon, 27 Nov 2023 16:45:14 GMT" + ], + [ + "Link", + "; rel=\"canonical\",; rel=\"shortlink\"" + ], + [ + "Server", + "Apache" + ], + [ + "Vary", + "Cookie,Accept-Encoding" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Drupal-Cache", + "HIT" + ], + [ + "X-Frame-Options", + "SAMEORIGIN" + ], + [ + "X-Generator", + "Drupal 7 (http://drupal.org)" + ] + ], + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 17:04:59 GMT", + "Etag": "\"1701103514-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", + "Link": "; rel=\"canonical\",; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + } + }, + "t0": 0.193968, + "t": 0.270579, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "130.192.16.171", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.093297, + "t": 0.154834, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", + "format": "base64" + }, + { + "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", + "format": "base64" + }, + { + "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", + "format": "base64" + } + ], + "server_name": "nexa.polito.it", + "t0": 0.15486, + "t": 0.193924, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://nexa.polito.it/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.16.171:443", + "130.192.16.171:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.16.171:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.16.171:443": { + "server_name": "nexa.polito.it", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 36564, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 17:05:00 GMT", + "Etag": "\"1701103514-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", + "Link": "; rel=\"canonical\",; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "130.192.16.171" + ] + }, + "ip_info": { + "130.192.16.171": { + "asn": 137, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.16.171 Flags:7}]", + "t": 0.091374 + }, + { + "msg": "conn 130.192.16.171:443: granted permission: true", + "t": 0.193943 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 1.417294625, + "test_start_time": "2023-11-27 17:04:58", + "test_version": "0.5.26" +} diff --git a/internal/cmd/minipipeline/testdata/observations.json b/internal/cmd/minipipeline/testdata/observations.json new file mode 100644 index 0000000000..96de828ee9 --- /dev/null +++ b/internal/cmd/minipipeline/testdata/observations.json @@ -0,0 +1,266 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "3": { + "DNSTransactionID": 3, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 3, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "4": { + "DNSTransactionID": 3, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.16.171:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "nexa.polito.it", + "HTTPRequestURL": "https://nexa.polito.it/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 36564, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 36564, + "ControlHTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "ControlHTTPResponseTitle": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" + } + } +} diff --git a/internal/experiment/signal/signal_test.go b/internal/experiment/signal/signal_test.go index cbae88470d..a8d553e6dd 100644 --- a/internal/experiment/signal/signal_test.go +++ b/internal/experiment/signal/signal_test.go @@ -26,6 +26,7 @@ func TestGood(t *testing.T) { if testing.Short() { t.Skip("skip test in short mode") } + t.Skip("https://github.com/ooni/probe/issues/2636") measurer := signal.NewExperimentMeasurer(signal.Config{}) measurement := new(model.Measurement) diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go new file mode 100644 index 0000000000..3886abbd6d --- /dev/null +++ b/internal/minipipeline/analysis.go @@ -0,0 +1,693 @@ +package minipipeline + +import ( + "strings" + + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// AnalyzeWebObservations generates a [*WebAnalysis] from a [*WebObservationsContainer]. +func AnalyzeWebObservations(container *WebObservationsContainer) *WebAnalysis { + analysis := &WebAnalysis{} + analysis.ComputeDNSExperimentFailure(container) + analysis.ComputeDNSTransactionsWithBogons(container) + analysis.ComputeDNSTransactionsWithUnexpectedFailures(container) + analysis.ComputeDNSPossiblyInvalidAddrs(container) + analysis.ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) + analysis.ComputeHTTPDiffBodyProportionFactor(container) + analysis.ComputeHTTPDiffStatusCodeMatch(container) + analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) + analysis.ComputeHTTPDiffTitleDifferentLongWords(container) + analysis.ComputeHTTPFinalResponses(container) + analysis.ComputeTCPTransactionsWithUnexplainedUnexpectedFailures(container) + analysis.ComputeHTTPFinalResponsesWithTLS(container) + return analysis +} + +// WebAnalysis summarizes the content of [*WebObservationsContainer]. +// +// The zero value of this struct is ready to use. +// +// Methods that mutate this struct are not idempotent. You should invoke each +// of these methods just once, after you have filled a container. +type WebAnalysis struct { + // DNSExperimentFailure is the first failure experienced by a getaddrinfo-like resolver. + DNSExperimentFailure optional.Value[string] + + // DNSTransactionsWithBogons contains the list of DNS transactions containing bogons. + DNSTransactionsWithBogons optional.Value[map[int64]bool] + + // DNSTransactionsWithUnexpectedFailures contains the DNS transaction IDs that + // contain failures while the control measurement succeeded. Note that we don't + // include DNS-over-HTTPS failures inside the list, because a DoH failure is + // not related to the domain we're querying for. + DNSTransactionsWithUnexpectedFailures optional.Value[map[int64]bool] + + // DNSPossiblyInvalidAddrs contains the addresses that are not valid for the + // domain. An addres is valid for the domain if: + // + // 1. we can TLS handshake with the expected SNI using this address; or + // + // 2. the address was resolved by the TH; or + // + // 3. the address ASN belongs to the set of ASNs obtained by mapping + // addresses resolved by the TH to their corresponding ASN. + DNSPossiblyInvalidAddrs optional.Value[map[string]bool] + + // HTTPDiffBodyProportionFactor is the body proportion factor. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffBodyProportionFactor optional.Value[float64] + + // HTTPDiffStatusCodeMatch returns whether the status code matches. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffStatusCodeMatch optional.Value[bool] + + // HTTPDiffTitleDifferentLongWords contains the words long 5+ characters that appear + // in the probe's "final" response title or in the TH title but not in both. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffTitleDifferentLongWords optional.Value[map[string]bool] + + // HTTPDiffUncommonHeadersIntersection contains the uncommon headers intersection. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffUncommonHeadersIntersection optional.Value[map[string]bool] + + // HTTPFinalResponses contains the transaction IDs of "final" responses (i.e., responses + // that are like 2xx, 4xx, or 5xx). Typically, we expect to have a single response that + // if final when we're analyzing Web Connectivity LTE. + HTTPFinalResponses optional.Value[map[int64]bool] + + // HTTPFinalResponsesWithTLS is like HTTPFinalResponses but only includes the + // cases where we're using TLS to fetch the final response. + HTTPFinalResponsesWithTLS optional.Value[map[int64]bool] + + // TCPTransactionsWithUnexpectedTCPConnectFailures contains the TCP transaction IDs that + // contain TCP connect failures while the control measurement succeeded. + TCPTransactionsWithUnexpectedTCPConnectFailures optional.Value[map[int64]bool] + + // TCPTransactionsWithUnexpectedTLSHandshakeFailures contains the TCP transaction IDs that + // contain TLS handshake failures while the control measurement succeeded. + TCPTransactionsWithUnexpectedTLSHandshakeFailures optional.Value[map[int64]bool] + + // TCPSTransactionsWithUnexpectedHTTPFailures contains the TCP transaction IDs that + // contain HTTP failures while the control measurement succeeded. + TCPTransactionsWithUnexpectedHTTPFailures optional.Value[map[int64]bool] + + // TCPTransactionsWithUnexplainedUnexpectedFailures contains the TCP transaction IDs for + // which we cannot explain TCP or TLS failures with control information, but for which we + // expect to see a success because the control's HTTP succeeded. + TCPTransactionsWithUnexplainedUnexpectedFailures optional.Value[map[int64]bool] +} + +func analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs *WebObservation) bool { + return obs.DNSQueryType.UnwrapOr("") == "AAAA" && + obs.DNSLookupFailure.UnwrapOr("") == netxlite.FailureDNSNoAnswer +} + +// ComputeDNSExperimentFailure computes the DNSExperimentFailure field. +func (wa *WebAnalysis) ComputeDNSExperimentFailure(c *WebObservationsContainer) { + + for _, obs := range c.DNSLookupFailures { + // make sure we have probe domain + probeDomain := obs.DNSDomain.UnwrapOr("") + if probeDomain == "" { + continue + } + + // make sure we have TH domain + thDomain := obs.ControlDNSDomain.UnwrapOr("") + if thDomain == "" { + continue + } + + // we only care about when we're resolving the same domain + if probeDomain != thDomain { + continue + } + + // make sure we only include the system resolver + switch obs.DNSEngine.UnwrapOr("") { + case "getaddrinfo", "golang_net_resolver": + // skip cases where there's no DNS record for AAAA, which is a false positive + // + // in principle, this should not happen with getaddrinfo, but we add this + // check nonetheless for robustness against this corner case + if analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs) { + continue + } + + // only record the first failure + // + // we should only consider the first DNS lookup to be consistent with + // what was previously returned by Web Connectivity v0.4 + wa.DNSExperimentFailure = obs.DNSLookupFailure + return + + default: + // nothing + } + } +} + +// ComputeDNSTransactionsWithBogons computes the DNSTransactionsWithBogons field. +func (wa *WebAnalysis) ComputeDNSTransactionsWithBogons(c *WebObservationsContainer) { + // Implementation note: any bogon IP address resolved by a DoH service + // is STILL suspicious since it SHOULD NOT happen. TODO(bassosimone): an + // even better algorithm could possibly check whether also the TH has + // observed bogon IP addrs and avoid flagging in such a case. + // + // See https://github.com/ooni/probe/issues/2274 for more information. + + state := make(map[int64]bool) + + for _, obs := range c.DNSLookupSuccesses { + // do nothing if we don't know whether there's a bogon + if obs.IPAddressBogon.IsNone() { + continue + } + + // do nothing if there is no bogon + if !obs.IPAddressBogon.Unwrap() { + continue + } + + // update state + if id := obs.DNSTransactionID.UnwrapOr(0); id > 0 { + state[id] = true + } + } + + wa.DNSTransactionsWithBogons = optional.Some(state) +} + +func analysisDNSEngineIsDNSOverHTTPS(obs *WebObservation) bool { + return obs.DNSEngine.UnwrapOr("") == "doh" +} + +// ComputeDNSTransactionsWithUnexpectedFailures computes the DNSTransactionsWithUnexpectedFailures field. +func (wa *WebAnalysis) ComputeDNSTransactionsWithUnexpectedFailures(c *WebObservationsContainer) { + // Implementation note: a DoH failure is not information about the URL we're + // measuring but about the DoH service being blocked. + // + // See https://github.com/ooni/probe/issues/2274 + + state := make(map[int64]bool) + + for _, obs := range c.DNSLookupFailures { + // skip cases with no control + if obs.ControlDNSLookupFailure.IsNone() { + continue + } + + // skip cases where the control failed as well + if obs.ControlDNSLookupFailure.Unwrap() != "" { + continue + } + + // skip cases where the engine is doh (see above comment) + if analysisDNSEngineIsDNSOverHTTPS(obs) { + continue + } + + // skip cases where there's no DNS record for AAAA, which is a false positive + if analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs) { + continue + } + + // TODO(bassosimone): if we set an IPv6 address as the resolver address, we + // end up with false positive errors when there's no IPv6 support + + // update state + if id := obs.DNSTransactionID.UnwrapOr(0); id > 0 { + state[id] = true + } + } + + wa.DNSTransactionsWithUnexpectedFailures = optional.Some(state) +} + +// ComputeDNSPossiblyInvalidAddrs computes the DNSPossiblyInvalidAddrs field. +func (wa *WebAnalysis) ComputeDNSPossiblyInvalidAddrs(c *WebObservationsContainer) { + // Implementation note: in the case in which DoH returned answers, here + // it still feels okay to consider them. We should avoid flagging DoH + // failures as measurement failures but if DoH returns us some unexpected + // even-non-bogon addr, it seems worth flagging for now. + // + // See https://github.com/ooni/probe/issues/2274 + + state := make(map[string]bool) + + // pass 1: insert candidates into the state map + for _, obs := range c.KnownTCPEndpoints { + addr := obs.IPAddress.Unwrap() + + // an address is suspicious if we have information regarding its potential + // matching with TH info and we know it does not match + if !obs.MatchWithControlIPAddress.IsNone() && !obs.MatchWithControlIPAddressASN.IsNone() && + !obs.MatchWithControlIPAddress.Unwrap() && !obs.MatchWithControlIPAddressASN.Unwrap() { + state[addr] = true + continue + } + } + + // pass 2: remove IP addresses we could validate using TLS handshakes + // + // we need to perform this second step because the order with which we walk + // through c.KnownTCPEndpoints is not fixed _and_ in any case, there is no + // guarantee that we'll observe 80/tcp entries _before_ 443/tcp ones. So, by + // applying this algorithm as a second step, we ensure that we're always + // able to remove TLS-validate addresses from the "bad" set. + for _, obs := range c.KnownTCPEndpoints { + addr := obs.IPAddress.Unwrap() + + // we cannot do much if we don't have TLS handshake information + if obs.TLSHandshakeFailure.IsNone() { + continue + } + + // we should not modify the state if the TLS handshake failed + if obs.TLSHandshakeFailure.Unwrap() != "" { + continue + } + + delete(state, addr) + } + + wa.DNSPossiblyInvalidAddrs = optional.Some(state) +} + +func analysisTCPConnectFailureSeemsMisconfiguredIPv6(obs *WebObservation) bool { + switch obs.TCPConnectFailure.UnwrapOr("") { + case netxlite.FailureNetworkUnreachable, netxlite.FailureHostUnreachable: + isv6, err := netxlite.IsIPv6(obs.IPAddress.UnwrapOr("")) + return err == nil && isv6 + + default: // includes the case of missing TCPConnectFailure + return false + } +} + +// ComputeTCPTransactionsWithUnexpectedTCPConnectFailures computes the TCPTransactionsWithUnexpectedTCPConnectFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we cannot do anything unless we have both records + if obs.TCPConnectFailure.IsNone() || obs.ControlTCPConnectFailure.IsNone() { + continue + } + + // skip cases with no failures + if obs.TCPConnectFailure.Unwrap() == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlTCPConnectFailure.Unwrap() != "" { + continue + } + + // skip cases where the root cause could be a misconfigured IPv6 stack + if analysisTCPConnectFailureSeemsMisconfiguredIPv6(obs) { + continue + } + + // update state + state[obs.EndpointTransactionID.Unwrap()] = true + } + + wa.TCPTransactionsWithUnexpectedTCPConnectFailures = optional.Some(state) +} + +// ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures computes the TCPTransactionsWithUnexpectedTLSHandshakeFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we cannot do anything unless we have both records + if obs.TLSHandshakeFailure.IsNone() || obs.ControlTLSHandshakeFailure.IsNone() { + continue + } + + // skip cases with no failures + if obs.TLSHandshakeFailure.Unwrap() == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlTLSHandshakeFailure.Unwrap() != "" { + continue + } + + // update state + state[obs.EndpointTransactionID.Unwrap()] = true + } + + wa.TCPTransactionsWithUnexpectedTLSHandshakeFailures = optional.Some(state) +} + +// ComputeTCPTransactionsWithUnexpectedHTTPFailures computes the TCPTransactionsWithUnexpectedHTTPFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexpectedHTTPFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we cannot do anything unless we have both records + if obs.HTTPFailure.IsNone() || obs.ControlHTTPFailure.IsNone() { + continue + } + + // skip cases with no failures + if obs.HTTPFailure.Unwrap() == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlHTTPFailure.Unwrap() != "" { + continue + } + + // update state + state[obs.EndpointTransactionID.Unwrap()] = true + } + + wa.TCPTransactionsWithUnexpectedHTTPFailures = optional.Some(state) +} + +// ComputeHTTPDiffBodyProportionFactor computes the HTTPDiffBodyProportionFactor field. +func (wa *WebAnalysis) ComputeHTTPDiffBodyProportionFactor(c *WebObservationsContainer) { + for _, obs := range c.KnownTCPEndpoints { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + + // we need a valid body length and the body must not be truncated + measurement := obs.HTTPResponseBodyLength.UnwrapOr(0) + if measurement <= 0 || obs.HTTPResponseBodyIsTruncated.UnwrapOr(true) { + continue + } + + // we also need a valid control body length + control := obs.ControlHTTPResponseBodyLength.UnwrapOr(0) + if control <= 0 { + continue + } + + // compute the body proportion factor + var proportion float64 + if measurement >= control { + proportion = float64(control) / float64(measurement) + } else { + proportion = float64(measurement) / float64(control) + } + + // update state + wa.HTTPDiffBodyProportionFactor = optional.Some(proportion) + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" response. + break + } +} + +// ComputeHTTPDiffStatusCodeMatch computes the HTTPDiffStatusCodeMatch field. +func (wa *WebAnalysis) ComputeHTTPDiffStatusCodeMatch(c *WebObservationsContainer) { + for _, obs := range c.KnownTCPEndpoints { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + + // we need a positive status code for both + measurement := obs.HTTPResponseStatusCode.UnwrapOr(0) + if measurement <= 0 { + continue + } + control := obs.ControlHTTPResponseStatusCode.UnwrapOr(0) + if control <= 0 { + continue + } + + // compute whether there's a match including caveats + good := control == measurement + if !good && control/100 != 2 { + // Avoid comparison if it seems the TH failed _and_ the two + // status codes are not equal. Originally, this algorithm was + // https://github.com/measurement-kit/measurement-kit/blob/b55fbecb205be62c736249b689df0c45ae342804/src/libmeasurement_kit/ooni/web_connectivity.cpp#L60 + // and excluded the case where the TH failed with 5xx. + // + // Then, we discovered when implementing websteps a bunch + // of control failure modes that suggested to be more + // cautious. See https://github.com/bassosimone/websteps-illustrated/blob/632f27443ab9d94fb05efcf5e0b0c1ce190221e2/internal/engine/experiment/websteps/analysisweb.go#L137. + // + // However, it seems a bit retarded to avoid comparison + // when both the TH and the probe failed equally. See + // https://github.com/ooni/probe/issues/2287, which refers + // to a measurement where both the probe and the TH fail + // with 404, but we fail to say "status_code_match = true". + // + // See https://explorer.ooni.org/measurement/20220911T203447Z_webconnectivity_IT_30722_n1_YDZQZOHAziEJk6o9?input=http%3A%2F%2Fwww.webbox.com%2Findex.php + // for a measurement where this was fixed. + return + } + + // update state + wa.HTTPDiffStatusCodeMatch = optional.Some(good) + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" request. + break + } +} + +var analysisCommonHeaders = map[string]bool{ + "date": true, + "content-type": true, + "server": true, + "cache-control": true, + "vary": true, + "set-cookie": true, + "location": true, + "expires": true, + "x-powered-by": true, + "content-encoding": true, + "last-modified": true, + "accept-ranges": true, + "pragma": true, + "x-frame-options": true, + "etag": true, + "x-content-type-options": true, + "age": true, + "via": true, + "p3p": true, + "x-xss-protection": true, + "content-language": true, + "cf-ray": true, + "strict-transport-security": true, + "link": true, + "x-varnish": true, +} + +// ComputeHTTPDiffUncommonHeadersIntersection computes the HTTPDiffUncommonHeadersIntersection field. +func (wa *WebAnalysis) ComputeHTTPDiffUncommonHeadersIntersection(c *WebObservationsContainer) { + state := make(map[string]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + + // We should only perform the comparison if we have valid control data. Because + // the headers could legitimately be empty, let's use the status code here. + if obs.ControlHTTPResponseStatusCode.UnwrapOr(0) <= 0 { + continue + } + + // Implementation note: here we need to continue running when either + // headers are empty in order to produce an empty intersection. If we'd stop + // after noticing that either dictionary is empty, we'd produce a nil + // analysis result, which causes QA differences with v0.4. + measurement := obs.HTTPResponseHeadersKeys.UnwrapOr(nil) + control := obs.ControlHTTPResponseHeadersKeys.UnwrapOr(nil) + + const ( + byProbe = 1 << iota + byTH + ) + + matching := make(map[string]int64) + for key := range measurement { + key = strings.ToLower(key) + if _, ok := analysisCommonHeaders[key]; !ok { + matching[key] |= byProbe + } + } + + for key := range control { + key = strings.ToLower(key) + if _, ok := analysisCommonHeaders[key]; !ok { + matching[key] |= byTH + } + } + + // compute the intersection of uncommon headers + for key, value := range matching { + if (value & (byProbe | byTH)) == (byProbe | byTH) { + state[key] = true + } + } + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" request. + wa.HTTPDiffUncommonHeadersIntersection = optional.Some(state) + break + } +} + +// ComputeHTTPDiffTitleDifferentLongWords computes the HTTPDiffTitleDifferentLongWords field. +func (wa *WebAnalysis) ComputeHTTPDiffTitleDifferentLongWords(c *WebObservationsContainer) { + state := make(map[string]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + + // We should only perform the comparison if we have valid control data. Because + // the title could legitimately be empty, let's use the status code here. + if obs.ControlHTTPResponseStatusCode.UnwrapOr(0) <= 0 { + continue + } + + measurement := obs.HTTPResponseTitle.UnwrapOr("") + control := obs.ControlHTTPResponseTitle.UnwrapOr("") + + const ( + byProbe = 1 << iota + byTH + ) + + // Implementation note + // + // We don't consider to match words that are shorter than 5 + // characters (5 is the average word length for english) + // + // The original implementation considered the word order but + // considering different languages it seems we could have less + // false positives by ignoring the word order. + words := make(map[string]int64) + const minWordLength = 5 + for _, word := range strings.Split(measurement, " ") { + if len(word) >= minWordLength { + words[strings.ToLower(word)] |= byProbe + } + } + for _, word := range strings.Split(control, " ") { + if len(word) >= minWordLength { + words[strings.ToLower(word)] |= byTH + } + } + + // compute the list of long words that do not appear in both titles + for word, score := range words { + if (score & (byProbe | byTH)) != (byProbe | byTH) { + state[word] = true + } + } + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" request. + wa.HTTPDiffTitleDifferentLongWords = optional.Some(state) + break + } +} + +// ComputeHTTPFinalResponses computes the HTTPFinalResponses field. +func (wa *WebAnalysis) ComputeHTTPFinalResponses(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + txid := obs.EndpointTransactionID.UnwrapOr(0) + if txid <= 0 { + continue + } + if obs.HTTPResponseIsFinal.UnwrapOr(false) { + state[txid] = true + continue + } + } + + wa.HTTPFinalResponses = optional.Some(state) +} + +// ComputeTCPTransactionsWithUnexplainedUnexpectedFailures computes the TCPTransactionsWithUnexplainedUnexpectedFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexplainedUnexpectedFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // obtain the transaction ID + txid := obs.EndpointTransactionID.UnwrapOr(0) + if txid <= 0 { + continue + } + + // to execute the algorithm we must have the reasonable expectation of + // success, which we have iff the control succeeded. + if obs.ControlHTTPFailure.IsNone() || obs.ControlHTTPFailure.Unwrap() != "" { + continue + } + + // if we have a TCP connect measurement, the measurement failed, and we don't have + // a corresponding control measurement, we cannot explain this failure using the control + // + // while doing this, deal with misconfigured-IPv6 false positives + if !obs.TCPConnectFailure.IsNone() && obs.TCPConnectFailure.Unwrap() != "" && + !analysisTCPConnectFailureSeemsMisconfiguredIPv6(obs) && + obs.ControlTCPConnectFailure.IsNone() { + state[txid] = true + continue + } + + // if we have a TLS handshake measurement, the measurement failed, and we don't have + // a corresponding control measurement, we cannot explain this failure using the control + if !obs.TLSHandshakeFailure.IsNone() && obs.TLSHandshakeFailure.Unwrap() != "" && + obs.ControlTLSHandshakeFailure.IsNone() { + state[txid] = true + continue + } + } + + wa.TCPTransactionsWithUnexplainedUnexpectedFailures = optional.Some(state) +} + +// ComputeHTTPFinalResponsesWithTLS computes the HTTPFinalResponsesWithTLS field. +func (wa *WebAnalysis) ComputeHTTPFinalResponsesWithTLS(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + txid := obs.EndpointTransactionID.UnwrapOr(0) + if txid <= 0 { + continue + } + isFinal := obs.HTTPResponseIsFinal.UnwrapOr(false) + tlsSuccess := obs.TLSHandshakeFailure.UnwrapOr("unknown_failure") == "" + if isFinal && tlsSuccess { + state[txid] = true + continue + } + } + + wa.HTTPFinalResponsesWithTLS = optional.Some(state) +} diff --git a/internal/minipipeline/analysis_test.go b/internal/minipipeline/analysis_test.go new file mode 100644 index 0000000000..e23d1436ca --- /dev/null +++ b/internal/minipipeline/analysis_test.go @@ -0,0 +1,427 @@ +package minipipeline + +import ( + "testing" + + "github.com/ooni/probe-cli/v3/internal/optional" +) + +func TestWebAnalysisComputeDNSExperimentFailure(t *testing.T) { + t.Run("when there's no DNSDomain", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{ + 1: { + DNSTransactionID: optional.Some(int64(1)), + DNSDomain: optional.None[string](), // explicitly set + DNSLookupFailure: optional.Some("dns_no_answer"), + DNSQueryType: optional.Some("A"), + DNSEngine: optional.Some("getaddrinfo"), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeDNSExperimentFailure(container) + + if !wa.DNSExperimentFailure.IsNone() { + t.Fatal("DNSExperimentFailure is not none") + } + }) + + t.Run("when DNSDomain does not match ControlDNSDomain", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{ + 1: { + DNSTransactionID: optional.Some(int64(1)), + DNSDomain: optional.Some("dns.google.com"), + DNSLookupFailure: optional.Some("dns_no_answer"), + DNSQueryType: optional.Some("A"), + DNSEngine: optional.Some("getaddrinfo"), + ControlDNSDomain: optional.Some("dns.google"), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeDNSExperimentFailure(container) + + if !wa.DNSExperimentFailure.IsNone() { + t.Fatal("DNSExperimentFailure is not none") + } + }) + + t.Run("when the failure is dns_no_answer for AAAA", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{ + 1: { + DNSTransactionID: optional.Some(int64(1)), + DNSDomain: optional.Some("dns.google.com"), + DNSLookupFailure: optional.Some("dns_no_answer"), + DNSQueryType: optional.Some("AAAA"), + DNSEngine: optional.Some("getaddrinfo"), + ControlDNSDomain: optional.Some("dns.google.com"), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeDNSExperimentFailure(container) + + if !wa.DNSExperimentFailure.IsNone() { + t.Fatal("DNSExperimentFailure is not none") + } + }) +} + +func TestWebAnalysisComputeDNSTransactionsWithBogons(t *testing.T) { + t.Run("when there's no IPAddressBogon", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupSuccesses: []*WebObservation{ + { + /* empty */ + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeDNSTransactionsWithBogons(container) + + if v := wa.DNSTransactionsWithBogons.UnwrapOr(nil); len(v) != 0 { + t.Fatal("DNSTransactionsWithBogons is not none") + } + }) +} + +func TestWebAnalysisComputeTCPTransactionsWithUnexpectedHTTPFailures(t *testing.T) { + t.Run("when both measurement and control fail", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPFailure: optional.Some("connection_reset"), + ControlHTTPFailure: optional.Some("connection_reset"), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) + + result := wa.TCPTransactionsWithUnexpectedHTTPFailures.Unwrap() + if len(result) != 0 { + t.Fatal("should not have added any entry") + } + }) +} + +func TestWebAnalysisComputeHTTPDiffBodyProportionFactor(t *testing.T) { + t.Run("when there is no probe response body length", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseBodyLength: optional.None[int64](), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffBodyProportionFactor(container) + + if !wa.HTTPDiffBodyProportionFactor.IsNone() { + t.Fatal("should still be none") + } + }) + + t.Run("when the probe response body length is negative", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseBodyLength: optional.Some[int64](-1), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffBodyProportionFactor(container) + + if !wa.HTTPDiffBodyProportionFactor.IsNone() { + t.Fatal("should still be none") + } + }) + + t.Run("when the probe response body length is zero", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseBodyLength: optional.Some[int64](0), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffBodyProportionFactor(container) + + if !wa.HTTPDiffBodyProportionFactor.IsNone() { + t.Fatal("should still be none") + } + }) + + t.Run("when the probe response body is truncated", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseBodyLength: optional.Some[int64](11), + HTTPResponseBodyIsTruncated: optional.Some(true), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffBodyProportionFactor(container) + + if !wa.HTTPDiffBodyProportionFactor.IsNone() { + t.Fatal("should still be none") + } + }) +} + +func TestWebAnalysisComputeHTTPDiffStatusCodeMatch(t *testing.T) { + t.Run("when there is no probe status code", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseStatusCode: optional.None[int64](), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffStatusCodeMatch(container) + + if !wa.HTTPDiffStatusCodeMatch.IsNone() { + t.Fatal("should still be none") + } + }) + + t.Run("when the probe status code is negative", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseStatusCode: optional.Some[int64](-1), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffStatusCodeMatch(container) + + if !wa.HTTPDiffStatusCodeMatch.IsNone() { + t.Fatal("should still be none") + } + }) + + t.Run("when the probe status code is zero", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseStatusCode: optional.Some[int64](0), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffStatusCodeMatch(container) + + if !wa.HTTPDiffStatusCodeMatch.IsNone() { + t.Fatal("should still be none") + } + }) + + t.Run("when there's status code mismatch and the control is not like 2xx", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseStatusCode: optional.Some[int64](403), + ControlHTTPResponseStatusCode: optional.Some[int64](500), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffStatusCodeMatch(container) + + if !wa.HTTPDiffStatusCodeMatch.IsNone() { + t.Fatal("should still be none") + } + }) +} + +func TestWebAnalysisComputeHTTPDiffTitleDifferentLongWords(t *testing.T) { + t.Run("when there is no probe title", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseTitle: optional.None[string](), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffTitleDifferentLongWords(container) + + if !wa.HTTPDiffTitleDifferentLongWords.IsNone() { + t.Fatal("should still be none") + } + }) + + t.Run("when the probe title is empty", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + HTTPResponseIsFinal: optional.Some(true), + HTTPResponseTitle: optional.Some[string](""), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPDiffTitleDifferentLongWords(container) + + if !wa.HTTPDiffTitleDifferentLongWords.IsNone() { + t.Fatal("should still be none") + } + }) +} + +func TestWebAnalysisComputeHTTPFinalResponses(t *testing.T) { + t.Run("when there is no endpoint transaction ID", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + EndpointTransactionID: optional.None[int64](), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPFinalResponses(container) + + if v := wa.HTTPFinalResponses.UnwrapOr(nil); len(v) > 0 { + t.Fatal("should be empty") + } + }) + + t.Run("when the endpoint transaction ID is negative", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + EndpointTransactionID: optional.Some[int64](-1), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPFinalResponses(container) + + if v := wa.HTTPFinalResponses.UnwrapOr(nil); len(v) > 0 { + t.Fatal("should be empty") + } + }) + + t.Run("when the endpoint transaction ID is zero", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + EndpointTransactionID: optional.Some[int64](0), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPFinalResponses(container) + + if v := wa.HTTPFinalResponses.UnwrapOr(nil); len(v) > 0 { + t.Fatal("should be empty") + } + }) +} + +func TestWebAnalysisComputeTCPTransactionsWithUnexplainedUnexpectedFailures(t *testing.T) { + t.Run("when we don't have a transaction ID", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + EndpointTransactionID: optional.None[int64](), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeTCPTransactionsWithUnexplainedUnexpectedFailures(container) + + if v := wa.TCPTransactionsWithUnexplainedUnexpectedFailures.UnwrapOr(nil); len(v) > 0 { + t.Fatal("should be empty") + } + }) +} + +func TestWebAnalysisComputeHTTPFinalResponsesWithTLS(t *testing.T) { + t.Run("when there is no endpoint transaction ID", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + EndpointTransactionID: optional.None[int64](), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPFinalResponsesWithTLS(container) + + if v := wa.HTTPFinalResponsesWithTLS.UnwrapOr(nil); len(v) > 0 { + t.Fatal("should be empty") + } + }) + + t.Run("when the endpoint transaction ID is negative", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + EndpointTransactionID: optional.Some[int64](-1), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPFinalResponsesWithTLS(container) + + if v := wa.HTTPFinalResponsesWithTLS.UnwrapOr(nil); len(v) > 0 { + t.Fatal("should be empty") + } + }) + + t.Run("when the endpoint transaction ID is zero", func(t *testing.T) { + container := &WebObservationsContainer{ + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + EndpointTransactionID: optional.Some[int64](0), + }, + }, + } + + wa := &WebAnalysis{} + wa.ComputeHTTPFinalResponsesWithTLS(container) + + if v := wa.HTTPFinalResponsesWithTLS.UnwrapOr(nil); len(v) > 0 { + t.Fatal("should be empty") + } + }) +} diff --git a/internal/minipipeline/doc.go b/internal/minipipeline/doc.go new file mode 100644 index 0000000000..368fcffee2 --- /dev/null +++ b/internal/minipipeline/doc.go @@ -0,0 +1,22 @@ +// Package minipipeline implements a minimal data processing pipeline used +// to analyze local measurements collected by OONI Probe. +// +// This package mimics ooni/data design. +// +// A user provides as input to the minipipeline an OONI measurement and obtains +// as an intermediate result one or more observations. In turn, the user +// can process the observations to obtain a measurement analysis. Observations +// are an intermediate, flat data format useful to simplify writing analysis +// algorithms. The measurement analysis contains scalar, vector, and map +// fields summarizing the measurement. Each experiment should write custom +// expressions for generating top-level test keys given the analysis. +// +// For [*WebMeasurement], [*WebObservation] is an observation. The +// [*WebObservationsContainer] type allows one to create observations +// from OONI experiments measurements. In the same vein, the [*WebAnalysis] +// type contains the analysis for [*WebMeasurement]. +// +// The [IngestWebMeasurement] convenience function simplifies transforming +// a [*WebMeasurement] into a [*WebObservationsContainer]. Likewise, the +// [AnalyzeWebObservations] function simplifies obtaining a [*WebAnalysis]. +package minipipeline diff --git a/internal/minipipeline/measurement.go b/internal/minipipeline/measurement.go new file mode 100644 index 0000000000..79fff7b775 --- /dev/null +++ b/internal/minipipeline/measurement.go @@ -0,0 +1,47 @@ +package minipipeline + +import ( + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// WebMeasurement is the canonical web measurement structure assumed by minipipeline. +type WebMeasurement struct { + // Input contains the input we measured (a URL). + Input string `json:"input"` + + // TestKeys contains the test-specific measurements. + TestKeys optional.Value[*WebMeasurementTestKeys] `json:"test_keys"` +} + +// WebMeasurementTestKeys is the canonical container for observations +// generated by most OONI experiments. This is the data format ingested +// by this package for generating [*WebEndpointObservations]. +// +// This structure is designed to support Web Connectivity LTE and possibly +// other OONI experiments such as telegram, signal, etc. +type WebMeasurementTestKeys struct { + // Control contains the OPTIONAL TH response. + Control optional.Value[*model.THResponse] `json:"control"` + + // NetworkEvents contains I/O events. + NetworkEvents []*model.ArchivalNetworkEvent `json:"network_events"` + + // Queries contains the DNS queries results. + Queries []*model.ArchivalDNSLookupResult `json:"queries"` + + // Requests contains HTTP request results. + Requests []*model.ArchivalHTTPRequestResult `json:"requests"` + + // TCPConnect contains the TCP connect results. + TCPConnect []*model.ArchivalTCPConnectResult `json:"tcp_connect"` + + // TLSHandshakes contains the TLS handshakes results. + TLSHandshakes []*model.ArchivalTLSOrQUICHandshakeResult `json:"tls_handshakes"` + + // QUICHandshakes contains the QUIC handshakes results. + QUICHandshakes []*model.ArchivalTLSOrQUICHandshakeResult `json:"quic_handshakes"` + + // XControlRequest contains the OPTIONAL TH request. + XControlRequest optional.Value[*model.THRequest] `json:"x_control_request"` +} diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go new file mode 100644 index 0000000000..fdee386b18 --- /dev/null +++ b/internal/minipipeline/observation.go @@ -0,0 +1,582 @@ +package minipipeline + +import ( + "errors" + "net" + "net/url" + "strconv" + "strings" + + "github.com/ooni/probe-cli/v3/internal/geoipx" + "github.com/ooni/probe-cli/v3/internal/measurexlite" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// ErrNoTestKeys indicates that a [*WebMeasurement] does not contain [*MeasurementTestKeys]. +var ErrNoTestKeys = errors.New("minipipeline: no test keys") + +// IngestWebMeasurement loads a [*WebMeasurement] into a [*WebObservationsContainter]. To this +// end, we create a [*WebObservationsContainer] and fill it with the contents of the input +// [*WebMeasurement]. An empty [*WebMeasurement] will cause this function to produce an empty +// result. It is safe to pass to this function a [*WebMeasurement] with empty Control and +// XControlRequestFields: in such a case, this function will just avoid using the test helper +// (aka control) information for generating flat [*WebObservation]. This function returns an +// error if the [*WebMeasurement] TestKeys are empty or Input is not a valid URL. +func IngestWebMeasurement(meas *WebMeasurement) (*WebObservationsContainer, error) { + tk := meas.TestKeys.UnwrapOr(nil) + if tk == nil { + return nil, ErrNoTestKeys + } + + container := NewWebObservationsContainer() + container.IngestDNSLookupEvents(tk.Queries...) + container.IngestTCPConnectEvents(tk.TCPConnect...) + container.IngestTLSHandshakeEvents(tk.TLSHandshakes...) + container.IngestHTTPRoundTripEvents(tk.Requests...) + + // be defensive in case the control request or control are not defined + if !tk.XControlRequest.IsNone() && !tk.Control.IsNone() { + // Implementation note: the only error that can happen here is when the input + // doesn't parse as a URL, which should have triggered previous errors if we're + // running this code as part of Web Connectivity LTE. + if err := container.IngestControlMessages(tk.XControlRequest.Unwrap(), tk.Control.Unwrap()); err != nil { + return nil, err + } + } + + return container, nil +} + +// WebObservation is an observation of the flow that starts with a DNS lookup that +// either fails or discovers an IP address and proceeds by documenting binding such an +// address to a part to obtain and use a TCP or UDP endpoint. +// +// A key property of the [WebObservation] is that there is a single failure mode +// for the whole [WebObservation]. If the DNS fails, there is no IP address to +// construct and endpoint. If TCP connect fails, there is no connection to use for +// a TLS handshake. Likewise, if QUIC fails, there is also no connection. Finally, +// if there is no suitable connection, we cannot peform an HTTP round trip. +// +// Most fields are optional.Value fields. When the field contains an optional.None, it +// means that the related information is not available. We represent failures using flat +// strings and we use optional.Some("") to indicate the absence of any errors. +// +// We borrow this struct from https://github.com/ooni/data. +type WebObservation struct { + // The following fields are optional.Some when you process the DNS + // lookup events contained inside an OONI measurement: + + // DNSTransactionIDs contains the ID of the DNS transaction that caused this + // specific [*WebObservation] to be generated by the minipipeline. + DNSTransactionID optional.Value[int64] + + // DNSDomain is the domain from which we resolved the IP address. This field + // is empty when this record wasn't generated by a DNS lookup. This occurs, e.g., + // when Web Connectivity LTE discovers new addresses from the TH response. + DNSDomain optional.Value[string] + + // DNSLookupFailure is the failure that occurred during the DNS lookup. This field will be + // optional.None if there's no DNS lookup information. Otherwise, it contains a string + // representing the error, where the empty string means success. + DNSLookupFailure optional.Value[string] + + // DNSQueryType is the type of the DNS query (e.g., "A"). + DNSQueryType optional.Value[string] + + // DNSEngine is the DNS engine that we're using (e.g., "getaddrinfo"). + DNSEngine optional.Value[string] + + // The following fields are optional.Some in these cases: + // + // 1. when you process successful DNS lookup events from OONI measurements; + // + // 2. when the experiment discovers IP addresses through the TH response; + // + // 3. when the input URL contains an IP address. + + // IPAddress is the optional IP address that this observation is about. We typically derive + // this value from a DNS lookup, but sometimes we know it from other means (e.g., from + // the Web Connectivity test helper response). When DNSLookupFailure contains an nonempty + // error string, the DNS lookup failed and this field is an optional.None. + IPAddress optional.Value[string] + + // IPAddressASN is the optional ASN associated to this IP address as discovered by + // the probe while performing the measurement. When this field is optional.None, it + // means that the probe failed to discover the IP address ASN. + IPAddressASN optional.Value[int64] + + // IPAddressOrg is the optional organization name associated to this IP adddress + // as discovered by the probe while performing the measurement. When this field is + // optional.None, it means that the probe failed to discover the IP address org. + IPAddressOrg optional.Value[string] + + // IPAddressBogon is true if IPAddress is a bogon. + IPAddressBogon optional.Value[bool] + + // The following fields are optional.Some when you process the TCP + // connect events contained inside an OONI measurement: + + // EndpointTransactionID is the transaction ID used by this endpoint. + EndpointTransactionID optional.Value[int64] + + // EndpointProto is either "tcp" or "udp". + EndpointProto optional.Value[string] + + // EndpointPort is the port used by this endpoint. + EndpointPort optional.Value[string] + + // EndpointAddress is "${IPAddress}:${EndpointPort}" where "${IPAddress}" is + // quoted using "[" and "]" when the protocol family is IPv6. + EndpointAddress optional.Value[string] + + // TCPConnectFailure is the optional TCP connect failure. + TCPConnectFailure optional.Value[string] + + // The following fields are optional.Some when you process the TLS + // handshake events contained inside an OONI measurement: + + // TLSHandshakeFailure is the optional TLS handshake failure. + TLSHandshakeFailure optional.Value[string] + + // TLSServerName is the optional TLS server name used by the TLS handshake. + TLSServerName optional.Value[string] + + // The following fields are optional.Some when you process the HTTP round + // trip events contained inside an OONI measurement: + + // HTTPRequestURL is the HTTP request URL. + HTTPRequestURL optional.Value[string] + + // HTTPFailure is the error that occurred during the HTTP round trip. + HTTPFailure optional.Value[string] + + // HTTPResponseStatusCode is the response status code. + HTTPResponseStatusCode optional.Value[int64] + + // HTTPResponseBodyLength is the length of the response body. + HTTPResponseBodyLength optional.Value[int64] + + // HTTPResponseBodyIsTruncated indicates whether the response body was truncated. + HTTPResponseBodyIsTruncated optional.Value[bool] + + // HTTPResponseHeadersKeys contains maps response headers keys to true. + HTTPResponseHeadersKeys optional.Value[map[string]bool] + + // HTTPResponseLocation contains the location we're redirected to. + HTTPResponseLocation optional.Value[string] + + // HTTPResponseTitle contains the response title. + HTTPResponseTitle optional.Value[string] + + // HTTPResponseIsFinal is true if the status code is 2xx, 4xx, or 5xx. + HTTPResponseIsFinal optional.Value[bool] + + // The following fields are optional.Some when you process the control information + // contained inside a measurement and there's information available: + + // ControlDNSDomain is the domain used by the control for its DNS lookup. This field is + // optional.Some only when the domain used by the control matches the domain used by the + // probe. So, we won't see this record for redirect endpoints using another domain. + ControlDNSDomain optional.Value[string] + + // ControlDNSLookupFailure is the corresponding control DNS lookup failure. + ControlDNSLookupFailure optional.Value[string] + + // ControlTCPConnectFailure is the control's TCP connect failure. + ControlTCPConnectFailure optional.Value[string] + + // MatchWithControlIPAddress is true if also the control resolved this IP address. + MatchWithControlIPAddress optional.Value[bool] + + // MatchWithControlIPAddressASN is true if the ASN associated to IPAddress + // is one of the ASNs obtained by mapping the TH-resolved IP addresses to ASNs. + MatchWithControlIPAddressASN optional.Value[bool] + + // ControlTLSHandshakeFailure is the control's TLS handshake failure. + ControlTLSHandshakeFailure optional.Value[string] + + // ControlHTTPFailure is the HTTP failure seen by the control. + ControlHTTPFailure optional.Value[string] + + // ControlHTTPResponseStatusCode is the status code seen by the control. + ControlHTTPResponseStatusCode optional.Value[int64] + + // ControlHTTPResponseBodyLength contains the control HTTP response body length. + ControlHTTPResponseBodyLength optional.Value[int64] + + // ControlHTTPResponseHeadersKeys contains the response headers keys. + ControlHTTPResponseHeadersKeys optional.Value[map[string]bool] + + // ControlHTTPResponseTitle contains the title seen by the control. + ControlHTTPResponseTitle optional.Value[string] +} + +// WebObservationsContainer contains [*WebObservations]. +// +// The zero value of this struct is not ready to use, please use [NewWebObservationsContainer]. +type WebObservationsContainer struct { + // DNSLookupFailures maps transaction IDs to DNS lookup failures. + // + // Note that DNSLookupFailures and KnownTCPEndpoints share the same transaction + // ID space, i.e., you can't see the same transaction ID in both. Transaction IDs + // are strictly positive unique numbers within the same OONI measurement. Note + // that the A and AAAA events for the same DNS lookup uses the same transaction ID + // until we fix the https://github.com/ooni/probe/issues/2624 issue. + DNSLookupFailures map[int64]*WebObservation + + // DNSLookupSuccesses contains all the successful transactions. + DNSLookupSuccesses []*WebObservation + + // KnownTCPEndpoints maps transaction IDs to TCP observations. + KnownTCPEndpoints map[int64]*WebObservation + + // knownIPAddresses is an internal field that maps an IP address to the + // corresponding DNS observation that discovered it. + knownIPAddresses map[string]*WebObservation +} + +// NewWebObservationsContainer constructs a [*WebObservationsContainer]. +func NewWebObservationsContainer() *WebObservationsContainer { + return &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{}, + DNSLookupSuccesses: []*WebObservation{}, + KnownTCPEndpoints: map[int64]*WebObservation{}, + knownIPAddresses: map[string]*WebObservation{}, + } +} + +// IngestDNSLookupEvents ingests DNS lookup events from a OONI measurement. You MUST +// ingest DNS lookup events before ingesting any other kind of event. +func (c *WebObservationsContainer) IngestDNSLookupEvents(evs ...*model.ArchivalDNSLookupResult) { + c.ingestDNSLookupFailures(evs...) + c.ingestDNSLookupSuccesses(evs...) +} + +func (c *WebObservationsContainer) ingestDNSLookupFailures(evs ...*model.ArchivalDNSLookupResult) { + for _, ev := range evs { + // skip all the succesful queries + if ev.Failure == nil { + continue + } + + // create record + obs := &WebObservation{ + DNSTransactionID: optional.Some(ev.TransactionID), + DNSDomain: optional.Some(ev.Hostname), + DNSLookupFailure: optional.Some(utilsStringPointerToString(ev.Failure)), + DNSQueryType: optional.Some(ev.QueryType), + DNSEngine: optional.Some(ev.Engine), + } + + // add record + c.DNSLookupFailures[ev.TransactionID] = obs + } +} + +func (c *WebObservationsContainer) ingestDNSLookupSuccesses(evs ...*model.ArchivalDNSLookupResult) { + for _, ev := range evs { + // skip all the failed queries + if ev.Failure != nil { + continue + } + + // walk through the answers + for _, answer := range ev.Answers { + // extract the IP address we resolved + var addr string + switch answer.AnswerType { + case "A": + addr = answer.IPv4 + case "AAAA": + addr = answer.IPv6 + default: + continue + } + + // create the record + obs := &WebObservation{ + DNSTransactionID: optional.Some(ev.TransactionID), + DNSDomain: optional.Some(ev.Hostname), + DNSLookupFailure: optional.Some(""), + DNSQueryType: optional.Some(ev.QueryType), + DNSEngine: optional.Some(ev.Engine), + IPAddress: optional.Some(addr), + IPAddressBogon: optional.Some(netxlite.IsBogon(addr)), + } + if asn, asOrg, err := geoipx.LookupASN(addr); err == nil { + obs.IPAddressASN = optional.Some(int64(asn)) + obs.IPAddressOrg = optional.Some(asOrg) + } + + // add record + c.DNSLookupSuccesses = append(c.DNSLookupSuccesses, obs) + + // store the first lookup that resolved this address + if _, found := c.knownIPAddresses[addr]; !found { + c.knownIPAddresses[addr] = obs + } + } + } +} + +// IngestTCPConnectEvents ingests TCP connect events from a OONI measurement. You MUST ingest +// these events after DNS events and before any other kind of events. +func (c *WebObservationsContainer) IngestTCPConnectEvents(evs ...*model.ArchivalTCPConnectResult) { + for _, ev := range evs { + // create or fetch a record + obs, found := c.knownIPAddresses[ev.IP] + if !found { + obs = &WebObservation{ + IPAddress: optional.Some(ev.IP), + IPAddressBogon: optional.Some(netxlite.IsBogon(ev.IP)), + } + if asn, asOrg, err := geoipx.LookupASN(ev.IP); err == nil { + obs.IPAddressASN = optional.Some(int64(asn)) + obs.IPAddressOrg = optional.Some(asOrg) + } + } + + // clone the record because the same IP address MAY belong + // to multiple endpoints across the same measurement + // + // while there also fill endpoint specific info + portString := strconv.Itoa(ev.Port) + obs = &WebObservation{ + DNSTransactionID: obs.DNSTransactionID, + DNSDomain: obs.DNSDomain, + DNSLookupFailure: obs.DNSLookupFailure, + IPAddress: obs.IPAddress, + IPAddressASN: obs.IPAddressASN, + IPAddressOrg: obs.IPAddressOrg, + IPAddressBogon: obs.IPAddressBogon, + EndpointTransactionID: optional.Some(ev.TransactionID), + EndpointProto: optional.Some("tcp"), + EndpointPort: optional.Some(portString), + EndpointAddress: optional.Some(net.JoinHostPort(ev.IP, portString)), + TCPConnectFailure: optional.Some(utilsStringPointerToString(ev.Status.Failure)), + } + + // register the observation + c.KnownTCPEndpoints[ev.TransactionID] = obs + } +} + +// IngestTLSHandshakeEvents ingests TLS handshake events from a OONI measurement. You MUST +// ingest these events after ingesting TCP connect events. +func (c *WebObservationsContainer) IngestTLSHandshakeEvents(evs ...*model.ArchivalTLSOrQUICHandshakeResult) { + for _, ev := range evs { + // find the corresponding obs + obs, found := c.KnownTCPEndpoints[ev.TransactionID] + if !found { + continue + } + + // update the record + obs.TLSHandshakeFailure = optional.Some(utilsStringPointerToString(ev.Failure)) + obs.TLSServerName = optional.Some(ev.ServerName) + } +} + +// IngestHTTPRoundTripEvents ingests HTTP round trip events from a OONI measurement. You +// MUST ingest these events after ingesting TCP connect events. +func (c *WebObservationsContainer) IngestHTTPRoundTripEvents(evs ...*model.ArchivalHTTPRequestResult) { + for _, ev := range evs { + // find the corresponding obs + obs, found := c.KnownTCPEndpoints[ev.TransactionID] + if !found { + continue + } + + // update the record + obs.HTTPRequestURL = optional.Some(ev.Request.URL) + obs.HTTPFailure = optional.Some(utilsStringPointerToString(ev.Failure)) + obs.HTTPResponseStatusCode = optional.Some(ev.Response.Code) + obs.HTTPResponseBodyLength = optional.Some(int64(len(ev.Response.Body))) + obs.HTTPResponseBodyIsTruncated = optional.Some(ev.Request.BodyIsTruncated) + + httpResponseHeadersKeys := make(map[string]bool) + for key := range ev.Response.Headers { + httpResponseHeadersKeys[key] = true + } + obs.HTTPResponseHeadersKeys = optional.Some(httpResponseHeadersKeys) + + if value := measurexlite.WebGetTitle(string(ev.Response.Body)); value != "" { + obs.HTTPResponseTitle = optional.Some(value) + } + for key, value := range ev.Response.Headers { + if strings.ToLower(key) == "location" { + obs.HTTPResponseLocation = optional.Some(string(value)) + break // only first entry (typically there's just a single entry) + } + } + + obs.HTTPResponseIsFinal = optional.Some((func() bool { + switch ev.Response.Code / 100 { + case 2, 4, 5: + return true + default: + return false + } + }())) + } +} + +// IngestControlMessages ingests the control request and response. You MUST call +// this method last, after you've ingested all the other measurement events. +// +// This method fails if req.HTTPRequest is not a valid serialized URL. +func (c *WebObservationsContainer) IngestControlMessages(req *model.THRequest, resp *model.THResponse) error { + URL, err := url.Parse(req.HTTPRequest) + if err != nil { + return err + } + inputDomain := URL.Hostname() + + c.controlXrefDNSQueries(inputDomain, resp) + c.controlMatchDNSLookupResults(inputDomain, resp) + c.controlXrefTCPIPFailures(resp) + c.controlXrefTLSFailures(resp) + c.controlSetHTTPFinalResponseExpectation(resp) + + return nil +} + +func (c *WebObservationsContainer) controlXrefDNSQueries(inputDomain string, resp *model.THResponse) { + for _, obs := range c.DNSLookupFailures { + // skip cases where the domain is different + if obs.DNSDomain.Unwrap() != inputDomain { + continue + } + + // register the corresponding DNS domain used by the control + obs.ControlDNSDomain = optional.Some(inputDomain) + + // register the corresponding DNS lookup failure + obs.ControlDNSLookupFailure = optional.Some(utilsStringPointerToString(resp.DNS.Failure)) + } +} + +func (c *WebObservationsContainer) controlMatchDNSLookupResults(inputDomain string, resp *model.THResponse) { + // map out all the IP addresses resolved by the TH + thAddrMap := make(map[string]bool) + for _, addr := range resp.DNS.Addrs { + thAddrMap[addr] = true + } + + // (re)map out all the ASNs discovered by the TH using the same ASN + // database used to build the probe's ASN mapping + thASNMap := make(map[int64]bool) + for _, addr := range resp.DNS.Addrs { + if asn, _, err := geoipx.LookupASN(addr); err == nil && asn != 0 { + thASNMap[int64(asn)] = true + } + } + + // walk through the list of known TCP observations + for _, obs := range c.KnownTCPEndpoints { + // obtain the domain from which we obtained the endpoint's address + domain := obs.DNSDomain.UnwrapOr("") + + // obtain the IP address + addr := obs.IPAddress.Unwrap() + + // handle the case in which the IP address has been provided by the control, which + // is a case where the domain is empty and the IP address is in thAddrMap + if domain == "" && thAddrMap[addr] { + obs.MatchWithControlIPAddress = optional.Some(true) + obs.MatchWithControlIPAddressASN = optional.Some(true) + continue + } + + // skip entries using a different domain than the one used by the TH + if domain == "" || domain != inputDomain { + continue + } + + // compute whether also the TH observed this addr + obs.MatchWithControlIPAddress = optional.Some(thAddrMap[addr]) + + // cannot continue unless we know the probe's ASN + ourASN := obs.IPAddressASN.UnwrapOr(0) + if ourASN <= 0 { + continue + } + + // register whether there is matching in terms of the ASNs + obs.MatchWithControlIPAddressASN = optional.Some(thASNMap[ourASN]) + } +} + +func (c *WebObservationsContainer) controlXrefTCPIPFailures(resp *model.THResponse) { + for _, obs := range c.KnownTCPEndpoints { + endpointAddress := obs.EndpointAddress.Unwrap() + + // skip when we don't have a record + tcp, found := resp.TCPConnect[endpointAddress] + if !found { + continue + } + + // save the corresponding control result + obs.ControlTCPConnectFailure = optional.Some(utilsStringPointerToString(tcp.Failure)) + } +} + +func (c *WebObservationsContainer) controlXrefTLSFailures(resp *model.THResponse) { + for _, obs := range c.KnownTCPEndpoints { + endpointAddress := obs.EndpointAddress.Unwrap() + + // skip entries without a TLS server name (e.g., entries where we did not TLS handshake) + // + // this check should be ~first to exclude cases w/o TLS + if obs.TLSServerName.IsNone() { + continue + } + serverName := obs.TLSServerName.Unwrap() + + // skip when we don't have a record + tls, found := resp.TLSHandshake[endpointAddress] + if !found { + continue + } + + // skip when the server name does not match + if tls.ServerName != serverName { + continue + } + + // save the corresponding control result + obs.ControlTLSHandshakeFailure = optional.Some(utilsStringPointerToString(tls.Failure)) + } +} + +func (c *WebObservationsContainer) controlSetHTTPFinalResponseExpectation(resp *model.THResponse) { + // Implementation note: the TH response does not have a clear semantics for "missing" values + // therefore we are accepting as valid values within the correct range + // + // also note that we add control information to all endpoints and then we check for "final" + // responses and only compare against "final" responses during the analysis + for _, obs := range c.KnownTCPEndpoints { + obs.ControlHTTPFailure = optional.Some(utilsStringPointerToString(resp.HTTPRequest.Failure)) + if value := resp.HTTPRequest.StatusCode; value > 0 { + obs.ControlHTTPResponseStatusCode = optional.Some(value) + } + if value := resp.HTTPRequest.BodyLength; value >= 0 { + obs.ControlHTTPResponseBodyLength = optional.Some(value) + } + + controlHTTPResponseHeadersKeys := make(map[string]bool) + for key := range resp.HTTPRequest.Headers { + controlHTTPResponseHeadersKeys[key] = true + } + if len(controlHTTPResponseHeadersKeys) > 0 { + obs.ControlHTTPResponseHeadersKeys = optional.Some(controlHTTPResponseHeadersKeys) + } + + if v := resp.HTTPRequest.Title; v != "" { + obs.ControlHTTPResponseTitle = optional.Some(v) + } + } +} diff --git a/internal/minipipeline/observation_test.go b/internal/minipipeline/observation_test.go new file mode 100644 index 0000000000..98b07ed531 --- /dev/null +++ b/internal/minipipeline/observation_test.go @@ -0,0 +1,204 @@ +package minipipeline + +import ( + "errors" + "strings" + "testing" + + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +func TestLoadWebObservations(t *testing.T) { + t.Run("we handle the case where the test keys are nil", func(t *testing.T) { + meas := &WebMeasurement{ /* empty */ } + container, err := IngestWebMeasurement(meas) + if !errors.Is(err, ErrNoTestKeys) { + t.Fatal("expected", ErrNoTestKeys, "got", err) + } + if container != nil { + t.Fatal("expected nil container, got", container) + } + }) + + t.Run("we handle the case where the input is not a valid URL", func(t *testing.T) { + meas := &WebMeasurement{ + Input: "https://www.example.com", // invalid URL + TestKeys: optional.Some(&WebMeasurementTestKeys{ + Control: optional.Some(&model.THResponse{}), + NetworkEvents: []*model.ArchivalNetworkEvent{}, + Queries: []*model.ArchivalDNSLookupResult{}, + Requests: []*model.ArchivalHTTPRequestResult{}, + TCPConnect: []*model.ArchivalTCPConnectResult{}, + TLSHandshakes: []*model.ArchivalTLSOrQUICHandshakeResult{}, + QUICHandshakes: []*model.ArchivalTLSOrQUICHandshakeResult{}, + XControlRequest: optional.Some(&model.THRequest{ + HTTPRequest: "\t", // this should fail to parse + HTTPRequestHeaders: map[string][]string{}, + TCPConnect: []string{}, + XQUICEnabled: false, + }), + }), + } + container, err := IngestWebMeasurement(meas) + if err == nil || !strings.HasSuffix(err.Error(), "invalid control character in URL") { + t.Fatal("unexpected err", err) + } + if container != nil { + t.Fatal("expected nil container, got", container) + } + }) +} + +func TestWebObservationsContainerIngestTLSHandshakeEvents(t *testing.T) { + t.Run("when we don't have any known TCP endpoint", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{}, + KnownTCPEndpoints: map[int64]*WebObservation{}, // this map must be empty in this test + knownIPAddresses: map[string]*WebObservation{}, + } + + handshake := &model.ArchivalTLSOrQUICHandshakeResult{ + Network: "", + Address: "", + CipherSuite: "", + Failure: nil, + SoError: nil, + NegotiatedProtocol: "", + NoTLSVerify: false, + PeerCertificates: []model.ArchivalBinaryData{}, + ServerName: "", + T0: 0, + T: 0, + Tags: []string{}, + TLSVersion: "", + TransactionID: 0, // any transaction ID would do since the map is empty + } + + container.IngestTLSHandshakeEvents(handshake) + + // we should not crash and we should not have added new endpoints + if len(container.KnownTCPEndpoints) != 0 { + t.Fatal("the number of known TCP endpoints should not have changed") + } + }) +} + +func TestWebObservationsContainerIngestHTTPRoundTripEvents(t *testing.T) { + t.Run("when we don't have any known TCP endpoint", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{}, + KnownTCPEndpoints: map[int64]*WebObservation{}, // this map must be empty in this test + knownIPAddresses: map[string]*WebObservation{}, + } + + roundTrip := &model.ArchivalHTTPRequestResult{ + Network: "", + Address: "", + ALPN: "", + Failure: nil, + Request: model.ArchivalHTTPRequest{}, + Response: model.ArchivalHTTPResponse{}, + T0: 0, + T: 0, + Tags: []string{}, + TransactionID: 0, // any transaction ID would do since the map is empty + } + + container.IngestHTTPRoundTripEvents(roundTrip) + + // we should not crash and we should not have added new endpoints + if len(container.KnownTCPEndpoints) != 0 { + t.Fatal("the number of known TCP endpoints should not have changed") + } + }) +} + +func TestWebObservationsContainerIngestControlMessages(t *testing.T) { + t.Run("we don't set MatchWithControlIPAddressASN when we don't have probe ASN info", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{}, + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + DNSDomain: optional.Some("dns.google"), + IPAddress: optional.Some("8.8.8.8"), + IPAddressASN: optional.None[int64](), // no ASN info! + EndpointTransactionID: optional.Some(int64(1)), + EndpointPort: optional.Some("443"), + EndpointAddress: optional.Some("8.8.8.8:443"), + }, + }, + knownIPAddresses: map[string]*WebObservation{}, + } + + thRequest := &model.THRequest{ + HTTPRequest: "https://dns.google/", + } + + thResponse := &model.THResponse{ + DNS: model.THDNSResult{ + Failure: nil, + Addrs: []string{"8.8.8.8"}, + }, + } + + if err := container.IngestControlMessages(thRequest, thResponse); err != nil { + t.Fatal(err) + } + + entry := container.KnownTCPEndpoints[1] + + // we should have set MatchWithControlIPAddress + if entry.MatchWithControlIPAddress.IsNone() { + t.Fatal("MatchWithControlIPAddress is not set") + } + if entry.MatchWithControlIPAddress.Unwrap() == false { + t.Fatal("MatchWithControlIPAddress is not true") + } + + // we should not have set MatchWithControlIPAddressASN + if !entry.MatchWithControlIPAddressASN.IsNone() { + t.Fatal("MatchWithControlIPAddressASN should not be set") + } + }) + + t.Run("we don't save TLS handshake failures when the SNI is different", func(t *testing.T) { + container := &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{}, + KnownTCPEndpoints: map[int64]*WebObservation{ + 1: { + IPAddress: optional.Some("8.8.8.8"), + EndpointTransactionID: optional.Some(int64(1)), + EndpointPort: optional.Some("443"), + EndpointAddress: optional.Some("8.8.8.8:443"), + TLSServerName: optional.Some("dns.google.com"), + }, + }, + knownIPAddresses: map[string]*WebObservation{}, + } + + thRequest := &model.THRequest{ + HTTPRequest: "https://dns.google/", + } + + thResponse := &model.THResponse{ + TLSHandshake: map[string]model.THTLSHandshakeResult{ + "8.8.8.8:443": { + ServerName: "dns.google", + Status: true, + Failure: nil, + }, + }, + } + + if err := container.IngestControlMessages(thRequest, thResponse); err != nil { + t.Fatal(err) + } + + entry := container.KnownTCPEndpoints[1] + + if !entry.ControlTLSHandshakeFailure.IsNone() { + t.Fatal("ControlTLSHandshakeFailure should be none") + } + }) +} diff --git a/internal/minipipeline/qa_test.go b/internal/minipipeline/qa_test.go new file mode 100644 index 0000000000..b6fe02691b --- /dev/null +++ b/internal/minipipeline/qa_test.go @@ -0,0 +1,79 @@ +package minipipeline_test + +import ( + "os" + "path/filepath" + "testing" + + "github.com/google/go-cmp/cmp" + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +func testCmpDiffUsingGenericMaps(origLeft, origRight any) string { + rawLeft := must.MarshalJSON(origLeft) + rawRight := must.MarshalJSON(origRight) + var left map[string]any + must.UnmarshalJSON(rawLeft, &left) + var right map[string]any + must.UnmarshalJSON(rawRight, &right) + return cmp.Diff(left, right) +} + +func testMustRunAllWebTestCases(t *testing.T, topdir string) { + t.Run(topdir, func(t *testing.T) { + entries := runtimex.Try1(os.ReadDir(topdir)) + for _, entry := range entries { + if !entry.IsDir() { + continue + } + t.Run(entry.Name(), func(t *testing.T) { + fullpath := filepath.Join(topdir, entry.Name()) + // read the raw measurement from the test case + measurementFile := filepath.Join(fullpath, "measurement.json") + measurementRaw := must.ReadFile(measurementFile) + var measurementData minipipeline.WebMeasurement + must.UnmarshalJSON(measurementRaw, &measurementData) + + // load the expected container from the test case + expectedContainerFile := filepath.Join(fullpath, "observations.json") + expectedContainerRaw := must.ReadFile(expectedContainerFile) + var expectedContainerData minipipeline.WebObservationsContainer + must.UnmarshalJSON(expectedContainerRaw, &expectedContainerData) + + // load the expected analysis from the test case + expectedAnalysisFile := filepath.Join(fullpath, "analysis.json") + expectedAnalysisRaw := must.ReadFile(expectedAnalysisFile) + var expectedAnalysisData minipipeline.WebAnalysis + must.UnmarshalJSON(expectedAnalysisRaw, &expectedAnalysisData) + + // load the measurement into the pipeline + gotContainerData, err := minipipeline.IngestWebMeasurement(&measurementData) + if err != nil { + t.Fatal(err) + } + + // analyze the measurement + gotAnalysisData := minipipeline.AnalyzeWebObservations(gotContainerData) + + t.Run("observations", func(t *testing.T) { + if diff := testCmpDiffUsingGenericMaps(&expectedContainerData, gotContainerData); diff != "" { + t.Fatal(diff) + } + }) + + t.Run("analysis", func(t *testing.T) { + if diff := testCmpDiffUsingGenericMaps(&expectedAnalysisData, gotAnalysisData); diff != "" { + t.Fatal(diff) + } + }) + }) + } + }) +} + +func TestQAWeb(t *testing.T) { + testMustRunAllWebTestCases(t, filepath.Join("testdata", "webconnectivity", "generated")) + testMustRunAllWebTestCases(t, filepath.Join("testdata", "webconnectivity", "manual")) +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/README.md b/internal/minipipeline/testdata/webconnectivity/generated/README.md new file mode 100644 index 0000000000..6baa157870 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/README.md @@ -0,0 +1 @@ +Test cases automatically generated from webconnectivityqa. diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json new file mode 100644 index 0000000000..9f5839859c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json new file mode 100644 index 0000000000..dc1d613947 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json @@ -0,0 +1,371 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://expired.badssl.com/", + "measurement_start_time": "2023-11-27 23:46:08", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010757, + "t": 0.016832, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016846, + "t": 0.016846, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 284, + "operation": "write", + "proto": "tcp", + "t0": 0.016938, + "t": 0.016947, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016949, + "t": 0.02689, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.026991, + "t": 0.026992, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 815, + "operation": "read", + "proto": "tcp", + "t0": 0.026993, + "t": 0.027004, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.027041, + "t": 0.027047, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.027053, + "t": 0.027053, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2263, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.027077, + "t": 0.027077, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000059, + "t": 0.000059, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 36, + "operation": "write", + "proto": "udp", + "t0": 0.000095, + "t": 0.000116, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 36, + "operation": "write", + "proto": "udp", + "t0": 0.000097, + "t": 0.000122, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 36, + "operation": "read", + "proto": "udp", + "t0": 0.000121, + "t": 0.005293, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 70, + "operation": "read", + "proto": "udp", + "t0": 0.000126, + "t": 0.005647, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005689, + "t": 0.005689, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "expired.badssl.com", + "query_type": "AAAA", + "raw_response": "vdKBAAABAAAAAAAAB2V4cGlyZWQGYmFkc3NsA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000069, + "t": 0.005299, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "expired.badssl.com", + "query_type": "A", + "raw_response": "itOBAAABAAEAAAAAB2V4cGlyZWQGYmFkc3NsA2NvbQAAAQABB2V4cGlyZWQGYmFkc3NsA2NvbQAAAQABAAAOEAAEaJpZaQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000078, + "t": 0.005657, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "expired.badssl.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000069, + "t": 0.006382, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010757, + "t": 0.016832, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_invalid_certificate", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDeDCCAmCgAwIBAgIUX6aQn8Ksv8lK/QcWw/L2DE9eTHgwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMTcwNzE2MjMwMDAwWhcNMTcwNzE3MDEwMDAwWjA1MRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRswGQYDVQQDExJleHBpcmVkLmJhZHNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHFq5kcIfdN/mX9XseVB00UUUunT2VCPx/qESv9JsO7MscFw8OAIuAswu/Eq7PtTgr5ZH32KoAJuVZSMrus+KuAD8C3Zg2CiL50QE8eNKM4KfRo3+efm13AI00trIH+s5SuXp9uNpCS29lf57ZbGcG/Nv3lxqLeKzdzZCE+REsZ3OG3gj3IJlCzEDpj4XO3vbLUyjsElm3MYjXb3Qjx+oqGFwfYtjoTLjUHBOxq/S9/mu629tg9ANTTO1Pk1yKid6h7e7bznBLS9aI6DsGhfkGkQHk7YUCKj8n38pHlcv+GZ3jIvIW00W9HeJmIU19ZPOj/7iTRk+OYOcIzxneidN/AgMBAAGjgZUwgZIwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFDjUycf4bSlVrN1kpOLiccpe5LpCMB8GA1UdIwQYMBaAFPQUHexwQt4+yjX9IOEw+J3TamKoMB0GA1UdEQQWMBSCEmV4cGlyZWQuYmFkc3NsLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAMfvkYmbJ3QWDAaMMuy/uKiI4zK5cFtFyfujCNDCDUpzKziDIpNnOh3G/sQTpWHCRBhWFcWW3Bou3UeRpNnA3VinPY+uxQJIaCyuBgjw9/wAN3+6f3brSx4DlVD3ahoACAVM36ufSHDDr6+Po+hZ5lQwv+rQCUdeOjgh5wz35kXasQgGWgzLSulKdst026b+77kqkZMYpwcnKJIPtZdkI2u739I5IXaiqdotLYwpA/Bj6z4StIzWOtL61K3YHZg7Rp/r0gUMWbOVmI6MH7zffqgAmaiw7xZvY3T/zUiYd+2xLSxwOZGVGRYGamH+HBQT2plUUnW1dS4lvQDRNdXc/KA==", + "format": "base64" + } + ], + "server_name": "expired.badssl.com", + "t0": 0.016846, + "t": 0.027053, + "tags": [], + "tls_version": "", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://expired.badssl.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "expired.badssl.com", + "status": false, + "failure": "ssl_invalid_certificate" + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "unknown_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "104.154.89.105" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 3 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:3}]", + "t": 0.010716 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 4, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506688, + "test_start_time": "2023-11-27 23:46:08", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json new file mode 100644 index 0000000000..8daa1e5e39 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json @@ -0,0 +1,160 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_certificate", + "TLSServerName": "expired.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "ssl_invalid_certificate", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json new file mode 100644 index 0000000000..9f5839859c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json new file mode 100644 index 0000000000..7506963dcb --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json @@ -0,0 +1,588 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://untrusted-root.badssl.com/", + "measurement_start_time": "2023-11-27 23:46:07", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.034317, + "t": 0.039779, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.039808, + "t": 0.039808, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 291, + "operation": "write", + "proto": "tcp", + "t0": 0.039905, + "t": 0.039916, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.039918, + "t": 0.781365, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 1701, + "operation": "read", + "proto": "tcp", + "t0": 0.781475, + "t": 0.781476, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.782352, + "t": 0.782361, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.78237, + "t": 0.78237, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2277, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.782402, + "t": 0.782402, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000342, + "t": 0.000342, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.007562, + "t": 0.01344, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.013493, + "t": 0.013493, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 279, + "operation": "write", + "proto": "tcp", + "t0": 0.01372, + "t": 0.013729, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.013732, + "t": 0.021419, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 1691, + "operation": "read", + "proto": "tcp", + "t0": 0.021541, + "t": 0.021542, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.022421, + "t": 0.022427, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.02243, + "t": 0.02243, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 384, + "operation": "write", + "proto": "tcp", + "t0": 0.022568, + "t": 0.022613, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 180, + "operation": "read", + "proto": "tcp", + "t0": 0.022585, + "t": 0.028467, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 384, + "operation": "write", + "proto": "tcp", + "t0": 0.028538, + "t": 0.028545, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 221, + "operation": "read", + "proto": "tcp", + "t0": 0.028519, + "t": 0.033989, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.034055, + "t": 0.034055, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.034066, + "t": 0.034117, + "transaction_id": 3 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "9.9.9.9", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.quad9.net", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001472, + "t": 0.007256, + "tags": [], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "9.9.9.9", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.007562, + "t": 0.01344, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "9.9.9.9:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbjCCAlagAwIBAgIUe4ebUO4CmaOtir1Qq7yuC52rXYcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjA3WhcNMjMxMTI4MDA0NjA3WjAwMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRYwFAYDVQQDEw1kbnMucXVhZDkubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqHmMEvpdKlBkIMfhrUvGG4aMmtXDunFCXly6vs68ak6RpKvDsTFLst6JFms1hr4kKisrWTIMEnQ7o+QgiL9JlBhMjLzIoqSaoZAgjqRPkXpw47eHRGCbka/CL97v0y6tDNy0j9x1DL/8Zk2+xTPMOaojdHwBEKXjC0BiQVvSsjlmSjQ/gRnzewcIBDvSi/V3cB054U6Mj92g4R/8TdE46irVYHcig1wF2DGIVlPGIgqLH/qUpZchYCTxZTr96HcpqrITK8tddEaXu9cmIuLVmwqWtjzPzO4Da+M/lhwemF++EtkzmOhBtHO5mcNcq8gzIypHhnVE6tKoqmZu5CXknQIDAQABo4GQMIGNMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBStJ+bHcgYHC5gwWZRqzJJ1GzSQXzAfBgNVHSMEGDAWgBSj8Dpzh5dESavhR/yGH/aNMc6ojTAYBgNVHREEETAPgg1kbnMucXVhZDkubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQAzafnJykLhIvQiFpu4bkwYDUhw9vDkjoDR3pmwFcxkNz5X8MLXMDPk+b0LWp5PTHxFWzNegLsHvFdY5+hMO3oNGL5NjCaL01eYUcb4o3v8X9vP/faF9+7IDupqOXFupkaqCrON6RbFU/3IjMbVCxF2vrAtVbB6Es/VoqGPaSvL8LtAYDpACOkwYS/9CHRM5eXu4Tohav3uuUKRwx8kifKqMGM7gDbyICg35TQJahuFJmgZkbC7ndB9XTMojJfbhDI5I+rA6f5QOe346eiHTjF2g/McXXwVBoh63QAew60b/wr7SBbLIJ4hsV6PeMoWl1UZD4psbbkvY2TcccwXYmIJ", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUJCAhf3/R47CqIAW64xglEU24uG4wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjA3WhcNMjMxMTI4MjM0NjA3WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALDv7fIoHTLIuJ/lYfdepwuMIhVIBkSkx0StoHd+RBHGiUNaRz+qGbArwBHuiz4ycebsBhJxPt7FwymjtH0TY7+6tjqSThekKh9YRVgPiHZawmWWkpKrw3b+apeCiWUXfU19cn2GOCS99gkZ9mDrvOUSwksVufbOnsq78/urzwDLjMkVmCXNBAgv+cbU35X3euBgeb/ZZl1Zbof126dsPzGKjRgrmFV6dPyMy33DcNj0ebYOdEULkIoS/GccTFP1P0ke/jQieVNFj9V8KDcWsa+FCKIOnxu5F1rXOxTkEOqyUmcxZkPDuA/ENQEcrx0i+v9ekpmyemb5WgApWSBGTNECAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKPwOnOHl0RJq+FH/IYf9o0xzqiNMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCLIJ+Z4bo7tx4yOmaAnl7wgLixGX0MorVz9JpYqNbd3Jsh1Ztkjt3AZ3brbDg7fDMhOdMqsFZuA45YAmATA7dfOVYvZE274n+622UOStT2swrMe01KTagY0sTUP2RDeQBYf5Dw6IRT+VNAMrxquOXbSSDrbKW3Xi6gAWg4jldteE5+NtYitURCxtAJ1hwCjd8D+SgEBa5wfrn71eAyBgI8NwJIp8baKJC6dSG6zDrF3As/fso1Z0HaGJcOryJzfdtN3C6LIk5FE/f3KZHRvVKqeIwcd6qZROjKm0jBQqKIgTHnrjGYP8JCJr7xQBQGtTUAc4eLqDGy8+qLY9c8RkdO", + "format": "base64" + } + ], + "server_name": "dns.quad9.net", + "t0": 0.013493, + "t": 0.02243, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000337, + "t": 0.000337, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 43, + "operation": "write", + "proto": "udp", + "t0": 0.001028, + "t": 0.001094, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 43, + "operation": "write", + "proto": "udp", + "t0": 0.001064, + "t": 0.001098, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 43, + "operation": "read", + "proto": "udp", + "t0": 0.001102, + "t": 0.006875, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 84, + "operation": "read", + "proto": "udp", + "t0": 0.001109, + "t": 0.00747, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.007763, + "t": 0.007763, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "untrusted-root.badssl.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000503, + "t": 0.007348, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "untrusted-root.badssl.com", + "query_type": "AAAA", + "raw_response": "j6uBAAABAAAAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AABwAAQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000535, + "t": 0.006881, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "untrusted-root.badssl.com", + "query_type": "A", + "raw_response": "a4yBAAABAAEAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AAAEAAQ51bnRydXN0ZWQtcm9vdAZiYWRzc2wDY29tAAABAAEAAA4QAARomllp", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000497, + "t": 0.007475, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "untrusted-root.badssl.com", + "query_type": "AAAA", + "raw_response": "u4iBAAABAAAAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AABwAAQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000514, + "t": 0.028522, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "untrusted-root.badssl.com", + "query_type": "A", + "raw_response": "Zt2BAAABAAEAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AAAEAAQ51bnRydXN0ZWQtcm9vdAZiYWRzc2wDY29tAAABAAEAAA4QAARomllp", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000538, + "t": 0.034031, + "tags": [], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.034317, + "t": 0.039779, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_unknown_authority", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDNTCCAh2gAwIBAgIUH2iwg+NIKOKkjyfbfzdbBS35Zg4wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjA4WhcNMjMxMTI4MjM0NjA4WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALSwL7UyJc094fhk7xNPHmeBkvjSzHriRqvtyG/O7nPkQzZTbMOKYCC90TH0wBo8FLp67+SgILJ0k616OcgrjTv5+MZiJNXlIQRuhRjg23pMSJusCyO5Ymv0BvU3uz9ob+vv2QBvRXnAJZQoQ+QGCZxPhMjk6/mw0P8RdBgTRwimCuPG8GDYIxm3/dI7okUqZ4+S9/dY2Zsds6E74ZkqekSzfmbNPenuqs75p8fDzXoktShCpTOSLknmlXOVrYVSdRCfRBv4MKlJrti28AZZT4sQnsam5L3V9p5yi1e584DMygfRi+zyAkjkeNGVL4DpbMEMqm+sdE12Mzs7BCXE4+ECAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGVBpLMq1in11+OGcEBwBLntATdlMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCpn3Jnx8Fvn4NQjrMBC4cGmaxr0TUshA0y3YtHYCLFTNlf1d7Qx3pHRw1WQ6R9rH6iAXUfNhlJtuGsdOgFrNDvO31fexUKeYhji6+EA4rqp/m9/j323xPnaBirfZIF/xz1zlHFaLWnk8IR0uPEtZ7QFy6JTZ7/j1y0/X8SHbTnv9Nj7M9TA4hwrchCgT3WYIoKUigMTzKKcrYK//XB6WnFSQTfc22IpZgFId6yLDBBZd+Qsq8Q4EiNFpvY92tTRMPUR0T5zU6l8ZQqS5euU95UWRoRSRPIIFMYYqalEcgrHe0glSxiT5oc3pGIlhRI0iUQcK9xMCHkUNZgLVnu34q7", + "format": "base64" + } + ], + "server_name": "untrusted-root.badssl.com", + "t0": 0.039808, + "t": 0.78237, + "tags": [], + "tls_version": "", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://untrusted-root.badssl.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "untrusted-root.badssl.com", + "status": false, + "failure": "ssl_unknown_authority" + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "unknown_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "104.154.89.105" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 3 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:7}]", + "t": 0.034173 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 4, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.782878, + "test_start_time": "2023-11-27 23:46:07", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json new file mode 100644 index 0000000000..7340385ad7 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json @@ -0,0 +1,236 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "3": { + "DNSTransactionID": 3, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "4": { + "DNSTransactionID": 2, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "untrusted-root.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..4b299dbc25 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json @@ -0,0 +1,25 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": { + "104.154.89.105": true + }, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "4": true + }, + "HTTPFinalResponsesWithTLS": { + "4": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..4f120c0380 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json @@ -0,0 +1,676 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:10", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.012129, + "t": 0.017943, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017957, + "t": 0.017957, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.018062, + "t": 0.018071, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.018073, + "t": 0.396306, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 1681, + "operation": "read", + "proto": "tcp", + "t0": 0.396421, + "t": 0.396423, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.39715, + "t": 0.397158, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.397167, + "t": 0.397167, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2257, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.397209, + "t": 0.397209, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.470121, + "t": 0.475478, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.475499, + "t": 0.475499, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.475586, + "t": 0.475593, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.475595, + "t": 0.483512, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1738, + "operation": "read", + "proto": "tcp", + "t0": 0.48361, + "t": 0.483611, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.484452, + "t": 0.484457, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.48446, + "t": 0.48446, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2314, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.576971, + "t": 0.576971, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.984538, + "t": 0.984538, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.984641, + "t": 0.984685, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.984631, + "t": 0.989433, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.989489, + "t": 0.990023, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.99004, + "t": 0.99004, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.99006, + "t": 0.990069, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4029, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.990079, + "t": 0.990079, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000072, + "t": 0.000072, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000107, + "t": 0.00013, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000163, + "t": 0.000172, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000137, + "t": 0.00318, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000176, + "t": 0.004236, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.004277, + "t": 0.004277, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "sFuBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003195, + "t": 0.004714, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "1GOBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.004258, + "t": 0.005796, + "tags": [], + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "sFuBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000081, + "t": 0.003186, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "1GOBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEaJpZaQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000144, + "t": 0.004245, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000066, + "t": 0.00436, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.984538, + "t": 0.99004, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.012129, + "t": 0.017943, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.470121, + "t": 0.475478, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_unknown_authority", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDNjCCAh6gAwIBAgIVANseN3ppr6D/OKIyG/muOgTDQhiPMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxMFoXDTIzMTEyODIzNDYxMFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQ7rqf6jgLJ7MCZLph6k98J3jy4bboWDupWSjjlXv2HZoO3xzHGKCBd7yS2rzVfnOhRAaUhlakRnTQE2gzhRTtzGfncF3RoYYHRrn0G9KxDDyNgEwPxpQ2K/cKRsJ68eRN9wymOQ4ruLyxsEuYLNYn+U+57aCVcp8UFrvd4yZqYDvhZ+8lFV1sqZJ2TIGl4IGDepquXUADG3SODMHpTpWPsnwbKX8oupVBAiXsVmz9drnxO2HbYQxWzw0bDOB4QWHY4weIAfgW4TY/PHFkFJI5NX6tIR2T4rDki5fzQxAdfk68skJUNsZp2JNe8ZHEb3l3zIp0ZMLQM8UK+xS6sXudAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTSsjkg+KB+Y4hcXq5X/XWkAikhmjAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAnrO8toelwEAJ5NPC+dFPwtRXcrW81q3x2T2FG4ewS/rTyliykYApEhbmlSM1ezvy34iInaDtKjSKK+rqoMBHUQwp6TdbfvN4Fvmm4U5naWvPd2TP4th8XXEBGmW1DAgtRalODpsN4/Q6HqOzaAAORbvBLHJqSzNtPYRPCQ3D+YKSIzWTQonC3zpCGYvlowDglFCH80DW457rI8ju1mQrweQy0nI2oodx7x8kU9e0t1IwyJPiMCO5Zb9BCr9hhnp1QrQ96FZ204qaOR9pWrEpaepgq/sAG8+hsC1JnmGiA9kUUtovAgGtkOtNXN2ppK8FaQy8C7EWBHy7fh/wwbjA5Q==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.017957, + "t": 0.397167, + "tags": [], + "tls_version": "", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUJhp+cTO6IfvguVQBgPgpj/DX9ckwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjEwWhcNMjMxMTI4MDA0NjEwWjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+2FJUeqk9rqJm1itk3aXklWiBpLpyJhJome4M0etR4hHohpn5Xphk+t0jvNjt9C6Fwlp6iI1llg5caVhe3IH+Ow36pVyev7Oj14ikVQdsAhjgo1Lw07UYmFIbDd5F+aZcyj1j2lj1bKl4Yqf5ctboJNOomszsx6QS5oxLGPlrwSBDkfDoAd96G+80qYEDK/+IZN3uYxyLLhj1Eak1bNZeVKOXlgkghe13tThGV3GbQ1P6tjUDYjx2qTXJx/jfBZiMk1XdrKt8l0ITwhfs0PLXDhx+mVb4LJAEJRfTDU9pnDyK/quuOWwaXoO2kp9xsrosORNYD/Km/9fbgDY0Q7s/AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBV02BCMLUTjfDuMt7k8Papejve5MB8GA1UdIwQYMBaAFG89xlVBSf+5WTY7TqW554egSM8SMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAJktjUok2rJcYzDvfg9MXrazt8qIzlC1vHG7oR9lMMy1siB9d4pqMSGcIwBF3preX9OTXPxd4gAGSiP2c9nEczm29YrbT9ayNH8xxqiQW/LX1sPwG366tvGaJPz45KtuLcxet7TxRQX2UGHPzQqkRh97jlLLn2aj9RESgoDiIYDVlcRbv5VK7AnolVPbVlblTTZJ7RkpGutuiAsy3y8j7g6b0/et+JLAoegSv0EhV+y7XOivE5PeW8am16kHb+P9shBnHD+aoMW53bPT4ydMlIE+7HnVd34gXpmZdD/TMs/z/oxplZj9gjlw1HQwO5oG+btcYHPMY+y9tQ+/QsO6bWM=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUbNAszBIU93bs/zbkQ1Pf+V2lTtkwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjEwWhcNMjMxMTI4MjM0NjEwWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJtqfN/9mhtHuVsVb166mPSMGQthEdFDKCl2LuAaIdv06GJNsZX2qha+mhqOHx1nsyWg0ccrxPdUJvU9hvSe6Ouyzx4JlaFg/mz0KYncECb7BbP9uRcInYGEg3MiAuEZyQ/lkFf8B88ynQhukjx7Easgox8PB5JzbgcWJAqS0mL7yg91b5xVp/8Z4s0OwgmPUBuwVNQqWkCQIIUaSMj3Jp1j2HYEYfBRWk1l87MNW9BbLsyXKIwVFT+iYhbfYFC+0qh/pPrKY3ZhqvUuyAHQ9oT7lO6azsm8/QEh1BDyOyAwjAaI4jw/KFwAqFzUO73AL/69Pw3jMtpdbMFGXURg+8CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFG89xlVBSf+5WTY7TqW554egSM8SMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQBvNGPxqu6MhX1NkS1L0TIR5aMapasD3mEWKR2hL8BNQA2dxxlnX7FYSXR9mJnmyPlvL0tgDlAtheHOZNQ3Ln0H6bqq23IsAbk2QAm2244h2pqvJR9qhIE9/N2+1RQw5audX2j/Ws0/+vdN7AHQFBLmz/pDG04dlEFJ6Hgw/0t9JsNHSvAo+XK8b+lGa+2TD+adlP6ULww+NmOzRtqxkQ3JkFcsatXg7IYs/ibYr46rfHHf+c2Kf2Nf1+T6Jr5oErqKKzoZ4sJ4wXjWoyb1dOiBopf0Q0DKJ9Xo4qXqQG1cEp/S2rNeIu3u37RkfhaM4xHos/s3oR41UILL44fP7M+N", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.475499, + "t": 0.48446, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "www.example.com", + "status": false, + "failure": "ssl_unknown_authority" + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 1 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:3}]", + "t": 0.012068 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.98452 + } + ], + "control_failure": null, + "x_dns_flags": 4, + "dns_experiment_failure": null, + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 33, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.990577, + "test_start_time": "2023-11-27 23:46:10", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..fa39a563e2 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json @@ -0,0 +1,213 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json new file mode 100644 index 0000000000..9f5839859c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json new file mode 100644 index 0000000000..b474089e3e --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json @@ -0,0 +1,361 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://wrong.host.badssl.com/", + "measurement_start_time": "2023-11-27 23:46:09", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011243, + "t": 0.016818, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016835, + "t": 0.016835, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 287, + "operation": "write", + "proto": "tcp", + "t0": 0.016931, + "t": 0.016939, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016945, + "t": 0.02664, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 1694, + "operation": "read", + "proto": "tcp", + "t0": 0.026749, + "t": 0.02675, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.026788, + "t": 0.026795, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026801, + "t": 0.026801, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2270, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.026825, + "t": 0.026825, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000081, + "t": 0.000081, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "udp", + "t0": 0.000129, + "t": 0.000148, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "udp", + "t0": 0.000209, + "t": 0.000225, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 39, + "operation": "read", + "proto": "udp", + "t0": 0.000163, + "t": 0.004931, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 76, + "operation": "read", + "proto": "udp", + "t0": 0.000242, + "t": 0.005874, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005913, + "t": 0.005913, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "wrong.host.badssl.com", + "query_type": "AAAA", + "raw_response": "mN6BAAABAAAAAAAABXdyb25nBGhvc3QGYmFkc3NsA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000087, + "t": 0.004938, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "wrong.host.badssl.com", + "query_type": "A", + "raw_response": "s1qBAAABAAEAAAAABXdyb25nBGhvc3QGYmFkc3NsA2NvbQAAAQABBXdyb25nBGhvc3QGYmFkc3NsA2NvbQAAAQABAAAOEAAEaJpZaQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000189, + "t": 0.00588, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "wrong.host.badssl.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000067, + "t": 0.006128, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011243, + "t": 0.016818, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_invalid_hostname", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDfzCCAmegAwIBAgIVAOAO9v5N3ad2QtsmJPbOdmKJEEzEMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYwOVoXDTIzMTEyODAwNDYwOVowODEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEeMBwGA1UEAxMVd3JvbmctaG9zdC5iYWRzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4VmqaJzWCSTeCZTpqfRwq0aiIt6i+F2rhNADOoPVJqYkpQLeIoQkMuLGCHvgyUasLLR/KuOJ5q0p0i75nQzNSj1aQgygRkHQ+4o7Cp2aam6wuGmTeUnZp3LsCdp5z74YIjBnNorvWYXAp7zg6PHS76P20CtgXGsKjxmwZPVxQu+FQRGiPYFlOrqOBGtWezc1b7SDvoYIisfhrhgx5L+CFyXor67045fZ8pFV+eqiQTev7NEcz83qRvrdG3Ld0YeSomWeVPcImkeP8/j3CHydFdiPkBDq+fyNJT/fp4ulTM2xJn1LZljAhH9BCW/zJHCWipHMvmKRS7KsalQpfOhQCwIDAQABo4GYMIGVMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQBbDfKCKOmbgup0RzhIdSzX2LPvTAfBgNVHSMEGDAWgBSis1hXVyU3+XErrF32sfKhj8gyAzAgBgNVHREEGTAXghV3cm9uZy1ob3N0LmJhZHNzbC5jb20wDQYJKoZIhvcNAQELBQADggEBAKBdRFNXXMJy+sLkbN3Zi+m/nxgxQph5UXXu6JUZCox2DG6kNrnVbE7AHsyrFWFHM/aOhrpBCO4kf5EU+yXJXUDPsZc6oauLibDY2Pou0rIzRK9sP8QYLmmYubG+dJ7h2vym7L4Tdy/KwYPEBrmioTXZZwG6bs3W+ak2RMYePPbpvQtJEgI8xnNzwYW3es9N3+FkIUAA60wSthpss/VDGKDx/YlFmMPMWlpIo8MXxIQX5UxPCDuq1jTVT4eVTFCGqRRFLINKQY3mSy5ct6sYcXD180GlsvfRV4dgNf1nk6vlEEOaFMreK4i54yPBVpcc42dMfVDJR9/vufpS06coHac=", + "format": "base64" + } + ], + "server_name": "wrong.host.badssl.com", + "t0": 0.016835, + "t": 0.026801, + "tags": [], + "tls_version": "", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://wrong.host.badssl.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "wrong.host.badssl.com", + "status": false, + "failure": "ssl_invalid_hostname" + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "unknown_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "104.154.89.105" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 3 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:3}]", + "t": 0.011191 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 4, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506397, + "test_start_time": "2023-11-27 23:46:09", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json new file mode 100644 index 0000000000..a7d5447511 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json @@ -0,0 +1,160 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_hostname", + "TLSServerName": "wrong.host.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "ssl_invalid_hostname", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json new file mode 100644 index 0000000000..4e0f0e6e33 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json new file mode 100644 index 0000000000..bb94fc48ab --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json @@ -0,0 +1,458 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.org/", + "measurement_start_time": "2023-11-27 23:46:12", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.01089, + "t": 0.017079, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017097, + "t": 0.017097, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017184, + "t": 0.017194, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017196, + "t": 0.025099, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1740, + "operation": "read", + "proto": "tcp", + "t0": 0.025194, + "t": 0.025195, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026067, + "t": 0.026073, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026076, + "t": 0.026076, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026097, + "t": 0.026097, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.026145, + "t": 0.026171, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1715, + "operation": "read", + "proto": "tcp", + "t0": 0.026134, + "t": 0.032295, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032335, + "t": 0.032335, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032359, + "t": 0.032366, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4031, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032372, + "t": 0.032372, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000062, + "t": 0.000062, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.0001, + "t": 0.000124, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000124, + "t": 0.000127, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000129, + "t": 0.005646, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000132, + "t": 0.005895, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005947, + "t": 0.005947, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "4/qBAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000072, + "t": 0.005651, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "doyBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000106, + "t": 0.0059, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.org", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000071, + "t": 0.006156, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.org" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.org", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.org/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.026097, + "t": 0.032335, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.01089, + "t": 0.017079, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVALztqo2egdjf1I882sYmHb/6OdqRMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYxMloXDTIzMTEyODAwNDYxMlowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtMhzdXEtIJWrRo/53xjUl4vmD2TdKCn0FSx0DgXPbkUWPjhOtnR09KPhtOwB55kRPadtWtS6lpYVCm2oN8GHeqwNgsVyfgURAdeV/eBMHDhMEtTiNwBJtjuI1DlXtSiJw9NfUZCbHKusd4h9vP428OqW6AyBbQqfy3NgnflUsZXMWiXT1eDXvuHjWJ92NbxVFdmQIdWo3lW7dfejussh48BK2/l4+RLywM2u/XluMKQUHGabiZ7ePzfeMBaywTPPSXvTy+tsp0mHnGRPoAqZ4p9p8j7xTut2jKdh8GSKhCfdxaPnAFng3tthh6Bn6SMHEyQNjtv9xZtn7fJZ1L6I3wIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTzbik4L2OJ136cf3lBbi3/Mszb7DAfBgNVHSMEGDAWgBRZAwN00s2WShBuilg1zG72gnDRkjBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQC9aACH+axbqTMHbk5R4ydAFmv5YW+uWtoIlbrVj/i9Hjhl9JHB6dFBwBEGne9GnLcDmPFh8Rp03U796CGDS5lyC/nlmhaDkNT4dHudePWlo5V5pSeLm7xoIr6YO0dKazsAx+AjsW89JKWlUHY798J/8lJ6UFfHOxHgjToRRzP9zfFqNS3uRXfggP3OyjT7b63xE7x87L6Fjiyt8wKJhXenB0BKFwVKZlfUPCn5xImcABSwbh/7YF3RsgajosbUfPSSxEMdT7D0TFC9jaC8RG3/9W6b5Cs5sct3jGkvWOnyR0FflrhxoUXhCWaCQOTVRQTTrceSHFCWC1g1ieWSIc4r", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAP7PYWqhs5pfYlgbmIh6rYHOO6zaMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxMloXDTIzMTEyODIzNDYxMlowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDY3rZP8vEqjqpm43poPPe5KRBCr/lnloREeYjA7KHvt2WZGrxx3rpAy0qM9FSgCf8AeDMopR1KKTyMqOaQoBhbTmZyIV7g4oab4+hFv1Zida+JAPkJ0OpdfmCR6yPaOOq8sTDHo1aP8svxFw5xBDsbgt4fYjqT+WbEuZzvNi20H8zjlBIqIffsrZxYYojIKLvohGxIen/awbdqBniO9Riz5Rf7za70yO1UCuH9INwE8Y2fy3O22FgYghxf1uOC2xrQkznd3BaQ8tRERuDCmVALG/n2iNzCdcBlBvJh2VkEg2lkGUd6PO4EJCkmf34KWt4XgwV6V2pel28g9z82+fO1AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRZAwN00s2WShBuilg1zG72gnDRkjAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAv276dXbcaGbWFffTsikZJmFiX9AifYtY6Rv6W57sfIgKQVdhU0KZtcP9CiyZ8o20hM3MgUUVUec8Nu12rb4Wf1y4x6GLE7ce+TX+Rp7wVvLH7XeKw4fSMqxCCE77MSCqMR3NCP+x0BrcFDSkrw6P2chFtsRC5ggjg3GCziLw+9CLW6nidmDTUszTHJNkvpnZ9CXppBjxYnMbD3SPuOj1J3SHdKOrrheKSjEY20oa5ciY7EHawXk+1Y1ZXcgDINdX+7hs3dgaHfuSjYl0hVIbUzcmsC6YhvyT0dp+lbWpaPPYkVceh+0abvaUgDTshIa9aASu0am2ASOQ8tFMT/bchA==", + "format": "base64" + } + ], + "server_name": "www.example.org", + "t0": 0.017097, + "t": 0.026076, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.org/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": null, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.010835 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.026086 + } + ], + "control_failure": "unknown_failure: httpapi: all endpoints failed: [ connection_reset; connection_reset; connection_reset; connection_reset;]", + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.506487, + "test_start_time": "2023-11-27 23:46:12", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json new file mode 100644 index 0000000000..58868759ae --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json @@ -0,0 +1,165 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": "https://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json new file mode 100644 index 0000000000..f8de1396df --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json new file mode 100644 index 0000000000..9b4b9116c8 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json @@ -0,0 +1,508 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.org/", + "measurement_start_time": "2023-11-27 23:46:11", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011735, + "t": 0.017161, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.01718, + "t": 0.01718, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.017236, + "t": 0.017265, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011785, + "t": 0.017869, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017889, + "t": 0.017889, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017979, + "t": 0.017986, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1448, + "operation": "read", + "proto": "tcp", + "t0": 0.017213, + "t": 0.023615, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 223, + "operation": "read", + "proto": "tcp", + "t0": 0.023647, + "t": 0.023739, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.023751, + "t": 0.023751, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.023773, + "t": 0.023773, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017988, + "t": 0.025649, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025738, + "t": 0.025739, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 866, + "operation": "read", + "proto": "tcp", + "t0": 0.02574, + "t": 0.026138, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.027007, + "t": 0.027015, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.027018, + "t": 0.027018, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.027033, + "t": 0.02704, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2314, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.027047, + "t": 0.027047, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000071, + "t": 0.000071, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000105, + "t": 0.000129, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000134, + "t": 0.000139, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000134, + "t": 0.005981, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000144, + "t": 0.006692, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006716, + "t": 0.006716, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.org", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000085, + "t": 0.006464, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "K2WBAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000079, + "t": 0.005985, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "VzeBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000113, + "t": 0.006696, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.org" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.org", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.org/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.01718, + "t": 0.023751, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011735, + "t": 0.017161, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011785, + "t": 0.017869, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUYJBhavnG74qe0jHEBKQ4wmixsTswDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjExWhcNMjMxMTI4MDA0NjExWjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5rUphJtgLyOpVxrr9txke3+uKL6gjoW1BbnHTMSWAcPclIUzLeuxfEcYAFGJF+N6DsdQR2a/j9HoinC0zjPPHctIVYJfKqogLnmza0t5HnE0ViCYI9ZeflLZwlB6nccWbraGybzqIUrRMl/S1g322lZeczBj1rV2O4okLvKidv4K6xBGcN/sVAznlfLZNJCuKXe8OJK9UUDPp6dZh1RZMI17Ph3qD6Q++pS2cPHaEhF7zPaxVsJvbFb0xndesXfb2pUiBCqbpyTA0SAKSGJehC1ynmZAVWPK+PO5AqyPZWmIvK7k+4ePmXPzb+jid/C3AroITfoPLNWPND5FP0G3dAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLMxR9UZoNJMqppdxQYqHEy/p0WzMB8GA1UdIwQYMBaAFOprWheynJkjWZMcEN+NQAt6VvhXMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBABdgtLMtmPamKk337WpjAQGZhCc/4Bt4a8E2oAIa4ws4xzCiQ+8HNJiZqfxeC4gaiQR6nsw6yIfUY1Ko0MKVmhr4QmvhoZz7rJmk8OpiZpeQtS9AF8i8wL0IBAjvPpxBCDH4yLZ1G50E8QSii7vjgfX918+teSLRoNJgb9bME+yZToVMvSVmxm4eh/Lr3sw1I2Hj6dFQmjyaNGTDM4ln/Hd1S2uOVtZ8LsiLXrKRxOCxS7pjnmyE0B2hXcKpSN0xbWPKEbcOYlt1Rfg5t9ZoG5xy3I7j34fb648HMXA10wuBNohKIS47Y2rKyFZvLtD1MBnHYVwCyI4GR7OPymoHiCY=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUKg7LsNwGFm30xSgpOTl7xXeL9CcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjExWhcNMjMxMTI4MjM0NjExWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2qeI6fWloQMqO3AswvfDP/mD3klfDP88pjlp3+On0sA2p9rbnkly2jFBq4cKgWGuwxyn01lXIFclVKDy3nADcABXux5fQ48nFM+Rd2Bd92tdkB4ySGVh728MUe/8Kaeip3Ggt7Zdgs7omT3/iqQLIGWGDBuF8UXs2AEIE4d2nT0IH3zT08n1k26t1YCzdFGYElamTCjOsbSWDzzbOIIkBELIKzFZtLYG/MMBS38JMuNWp07spxSs3Ml2stpRl5Gf+fVGRTYa1uJIchvM46t75+JKdA3ScEwCakVOM+71GPI6A1JwwrMBJLxiwgLMyFNnltrsSgFkDdva+qwKBD8H0CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOprWheynJkjWZMcEN+NQAt6VvhXMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAAcizit6k22VHZCiDQRDMKLKpPbdnHr/3VOWRex3Wc5REdtikv8rlp+2GwlI4d6bschB5Za3/K0TrNN34++YcCLKlvpLThdFqF3OIWdhudwvGuzEv0u2AigzQLmu0wd8GGkYnryFwsvK4nxTmVmH+bVVPMI+/oUR+jrWijoBA9gtL4iTLdMI2Y/40h0uAQgOvk87ZRQWBgnu3EMKFwlMFlt0dJPQ/z9J9S+t9a2pSguf98m2T8VbRz+1cG3Q6SRDRccwHlamQNaJZLBA3wlGi71GhNLPcPGFOEfKPPzYFxnGUlM7j0lvyTkJ8APcMZSpi9zR3xNg5vxYhVFplU0TgS", + "format": "base64" + } + ], + "server_name": "www.example.org", + "t0": 0.017889, + "t": 0.027018, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "http://www.example.org/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": null, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011637 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.01717 + } + ], + "control_failure": "unknown_failure: httpapi: all endpoints failed: [ connection_reset; connection_reset; connection_reset; connection_reset;]", + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": null, + "accessible": null + }, + "test_name": "web_connectivity", + "test_runtime": 0.507045, + "test_start_time": "2023-11-27 23:46:11", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json new file mode 100644 index 0000000000..3b12ad8f05 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json @@ -0,0 +1,203 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json new file mode 100644 index 0000000000..61a5d50d2b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json @@ -0,0 +1,25 @@ +{ + "DNSExperimentFailure": "android_dns_cache_no_data", + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": { + "2": true + }, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json new file mode 100644 index 0000000000..b6e690517c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json @@ -0,0 +1,511 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:13", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011034, + "t": 0.016009, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016026, + "t": 0.016026, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016113, + "t": 0.016122, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016124, + "t": 0.023311, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.0234, + "t": 0.023401, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.023402, + "t": 0.023672, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.024539, + "t": 0.024545, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.024548, + "t": 0.024548, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.024567, + "t": 0.024567, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.024615, + "t": 0.024642, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.024607, + "t": 0.030387, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.030429, + "t": 0.030635, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.030649, + "t": 0.030649, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.030668, + "t": 0.030675, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4030, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.030682, + "t": 0.030682, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000055, + "t": 0.000055, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000091, + "t": 0.000097, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000122, + "t": 0.000124, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000101, + "t": 0.005203, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000129, + "t": 0.005785, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005826, + "t": 0.005826, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "getaddrinfo", + "failure": "android_dns_cache_no_data", + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000069, + "t": 0.005314, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "su2BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000064, + "t": 0.005207, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "x62BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000105, + "t": 0.005791, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.024567, + "t": 0.030649, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011034, + "t": 0.016009, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUIaxs+kB76uzmiN8/1IBZQK4e048wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjEzWhcNMjMxMTI4MDA0NjEzWjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDztmlP7Af+rbYCyeNpmB9jDzFUNvYAEHBX0BuUjjplrGUqZc27iFvGSKfx5nLkbMq+8NSxCMGxFw3Vh6lNhya42RjdA5bmCblkbo7R314EV3qLqO1ndtD7aHQKddqVb2rhqDtjV4eVN/XgRyTtezLm/0sAyf+o3loglTasQEs8irUr7fl4SwgUTJP/I32QrMCIkKZsCNQ4AJV+e5wVjv0eXCqfS6V8H0FDKECQ/12myaO889YgeYY+dtCQIexKD/85eQO9RXrlQojfSG8LlZh2U85Fo6dbN6k9FZ8o/cKNAJkmBuqr/03msXxlDTRIm62OXArrRC7SiB6qIDV1uDQjAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFKqJ2sE8/OyIhvEBaPcPHtZ6bAeaMB8GA1UdIwQYMBaAFARn6+4uc6xJAa6oYmOTz66PDqp5MEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAJwCFXuRVnXu+hwG1xu+XuEwsK0wkgRLUnw+5fYpmh+xvDpDIAjUQbSMJvoDR2lJGJNbL9I6JQ+x6/ChAXyCUGfpUfIvRasYvTXih/e8El/DDLvBsixJtqc0HQuzd2A3+IqupWWiY0VkspIw5mzP/MEGFoT+U7EWkpsmV5xhZs2qAbzqU/RQ81fYOS1Lu4vLu9IQqIn6LP+8EbwP8nzHvXwjXJYgE0mLCkz9nxDpjxaF5NpYy4iMTn5D6FjJqdhbeJ0r9xGsnPZ+w0CMeFXdinhPbBfYNQcm4d00DEneLuXPVmyX9FFT9RyrLd80GY010ctO8J917MkcCGGLtSudG1s=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAN1FrLbyaSnIJnTQ2+2R1z+ThJ3QMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxM1oXDTIzMTEyODIzNDYxM1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwpNaUkC3y/eqqEFE9MksES3JLk8sIgz/ofcq6PfeZhgggtcBO5tVAFxdJMrBqQ1az1Dyb9WtBRTqvibnsi3pm1uLFNTXU/obixScwqUVigMnL8bIgTFiwY2K84Kcd1CThhyBjurdoZP2ytYCEG9qBFY92zJANbicBCunNWOuf9xigBznvkxn0T85aSVQYefvsXLRcZlYk9vEb4eEZnCklJqlJud/xoXnDf+ybZ/RStUGz7cpAKu1sI7klOg4vpRQ7QWngC4Gk205Z4Q/S6Xf/ANPr3Mck4QC9QFAmqL6Cd18ZfejhciI4xpOhME8TK3A2iMmODYiFKKUZJh5iuBudAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQEZ+vuLnOsSQGuqGJjk8+ujw6qeTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAsHshspkgqTlJ3/JrLfJ+eS3CaVJOq5MWR7FHXJIOgxwzc6UyZgpMrwqpmZv6cV08BgfNg/SzSmtzEGmTIpP6VOGI29N05Dux+JRnZg/NgFrKyQbMz1GCcDDWK4yvORawxvhW1EFZyR2bca1WnYBEIuDoiLY9Z/VJqmhvtrAl4yZ+Vmq8TGBXS8wh+DcflMD4mbSVY+KhjLEmaxa/ZA7nX2qHUixMRFn9Zu2X0QADcdBcn0OPUKYzGMjDweNs+UHahSXKTz4EPcxD+U4IOWWkAOqqWIVRh1I4Xdyrj46NawruTHcvxsO45s8THalkM94Pk/W9l1LcvyeA31VengSDxA==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016026, + "t": 0.024548, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:2}]", + "t": 0.010978 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.024557 + } + ], + "control_failure": null, + "x_dns_flags": 2, + "dns_experiment_failure": "android_dns_cache_no_data", + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 33, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.50607, + "test_start_time": "2023-11-27 23:46:13", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json new file mode 100644 index 0000000000..a09d0a98f9 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json @@ -0,0 +1,170 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "android_dns_cache_no_data", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json new file mode 100644 index 0000000000..c34d67f6c6 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json @@ -0,0 +1,27 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": { + "2": true + }, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "4": true + }, + "HTTPFinalResponsesWithTLS": { + "4": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "3": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/measurement.json new file mode 100644 index 0000000000..ac322ca8e8 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/measurement.json @@ -0,0 +1,574 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:14", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011851, + "t": 0.017314, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017329, + "t": 0.017329, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017419, + "t": 0.017428, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017431, + "t": 0.024489, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024576, + "t": 0.024577, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.024578, + "t": 0.024854, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025721, + "t": 0.025728, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.02573, + "t": 0.02573, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.110595, + "t": 0.110595, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.331068, + "t": 0.331068, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.444178, + "t": 0.444178, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.525758, + "t": 0.525758, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.525844, + "t": 0.525884, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.525844, + "t": 0.531487, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.531533, + "t": 0.531849, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.531864, + "t": 0.531864, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.531884, + "t": 0.531892, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4030, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.531901, + "t": 0.531901, + "transaction_id": 4 + }, + { + "address": "10.10.34.35:443", + "failure": "generic_timeout_error", + "operation": "connect", + "proto": "tcp", + "t0": 0.011864, + "t": 1.011902, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000058, + "t": 0.000058, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000094, + "t": 0.000101, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000118, + "t": 0.000139, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000109, + "t": 0.005651, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000144, + "t": 0.006365, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006403, + "t": 0.006403, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "answer_type": "A", + "ipv4": "10.10.34.35", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000067, + "t": 0.005291, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "sR2BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000066, + "t": 0.005654, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "Er6BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000099, + "t": 0.006371, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.525758, + "t": 0.531864, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011851, + "t": 0.017314, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "10.10.34.35", + "port": 443, + "status": { + "failure": "generic_timeout_error", + "success": false + }, + "t0": 0.011864, + "t": 1.011902, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAIneTCBOFHnFajLuhl/rp6CFF/etMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYxNFoXDTIzMTEyODAwNDYxNFowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx5V9RlGRE4hfge6RlNc+8gM1IkLfN/9kyfqjHZNkBEckbzBpztHrfYUWsDS40dIurISwZZvYfmTE8mrpdqfZbkVCpKmilt0VRFl20q/FR/WjxAm8Fw39FsS1cH54V/Hwq+lF81cTv2VdmEywUzOYDPoJ6p1/Pv0k9ZKgDKAVXhB3QV+U0Vn66gV59NIfoCvIrHmFpzpdTr8CB99ykp9K0PIVulFO1f7+xh4A7vdrP4OrL8Tp+GNpMG6CKCTYGc8UT76+D90LOU4qK4/PAFc9WQhtQk1KDBtnseZoxLwgt4Sz77MQmmLyR81wqFPC8HbH24PijfEVaAZ/6FDolDKnYwIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSO7oDYno6q6al4t2fuz3VZztdcBjAfBgNVHSMEGDAWgBSV8ksCrYFny1Bc4F3TNDE4ErdYwTBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCL6g7XAOOegiLt1kXem2TihD90mzU+N3Pewzr2z1Y1hgvTm+zTgJbeKYr1COZ4m/kseEMUGe69FJ7/FrEx8iGmUPNJiPNC7Mrr/PWSIUFcPqHzWWu2U7v++WXBdVO4ZiQjvLTQDNGAMqbD5zAQes0jhxTbRB5SNmsC+v8+qL5ktd9tV9ToLU6YkFH7BHMIfgR3GBcdDj9s5r83dW+kLUaAiMRxmLGwRIlihRNqC+WlaGnrOr9KzPMtzIwwIVTaEx9NiJoBrpX6KNmgU9pYlXgwcVAfQI6NQcPKQJGG7/arOK2EedwU9OLTgGCOi4E+qeBVFi9aN6kCTUggfP2Wur04", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUU9683/DB7BdJFIQwJlDPtr0ARl0wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjE0WhcNMjMxMTI4MjM0NjE0WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMhseEr3j8V1eOiu2t6I8MvyKsGH4RNnWClyg8MY8u+3ochG23Hq6/j+ZpFyszhEvEuq5ociVnBbVREB6gVtbp6iY0BHSG0SA8tWK4MKunaEQD2TLCVLX7xw4hjyXk+k/z8i/8J0Aj+IhpEJx5s5f3GjETIF9k7PLvVsJ+vEkxCjEBMyqF1zyJtN/PytDwyDycvsigwwvUWKF3d17+7iC7Hn8Ap3IGbVjr453oHD8phLF6AVbOl1MpkdAVeLn2CtnwpEJJwKncj1pqStc136Ac9KCAGZQMoVlCc8xzhq9HLXYbROLuYIJHN6OoyTrRLBUSDeHnvedduXq+0x5Ju0FakCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJXySwKtgWfLUFzgXdM0MTgSt1jBMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCZLg5qBUm4vSdcetr/T4IzC27LARYH7UgoslWKex+VhTrQAPcaaggkLDGsCYGEsYFLx9ZRnlHyUVUjyp8EoP5V0HUW3pLhbV2lo7cZF0jEbTSW4txYHhaFA6l4gl8zTZvD1KN18U7QYDgfPuMXWVYbrx6XhkFD9CEgn+RTN88prYhxHYaGEOHSk+Gwo1qiFA530MozLWhP9oV6K/rIz6b7X1C3ZKuqFbM26ZQYBgp1RXVJwsvkQgKH60d5NAuCDFbkVgZRG2PQYjd8b7xdUl+ISKMQ7ubWTSzqMdTJ0wClu3MGqLsGzMSdWCftFMvcb35B8vnY54+oeXZZ6eKzU20W", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.017329, + "t": 0.02573, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "10.10.34.35:443", + "10.10.34.35:80", + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "10.10.34.35": { + "asn": 0, + "flags": 5 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:10.10.34.35 Flags:1} {Addr:93.184.216.34 Flags:2}]", + "t": 0.011796 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.525743 + } + ], + "control_failure": null, + "x_dns_flags": 1, + "dns_experiment_failure": null, + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 33, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 1.012218, + "test_start_time": "2023-11-27 23:46:14", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json new file mode 100644 index 0000000000..7aee6a93ce --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json @@ -0,0 +1,213 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "10.10.34.35", + "IPAddressASN": 0, + "IPAddressOrg": "", + "IPAddressBogon": true, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "10.10.34.35", + "IPAddressASN": 0, + "IPAddressOrg": "", + "IPAddressBogon": true, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "10.10.34.35:443", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json new file mode 100644 index 0000000000..23c80081ac --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json @@ -0,0 +1,25 @@ +{ + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": { + "2": true + }, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json new file mode 100644 index 0000000000..697e410f90 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json @@ -0,0 +1,501 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:15", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010912, + "t": 0.01687, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016892, + "t": 0.016892, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016986, + "t": 0.016996, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016998, + "t": 0.025481, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1738, + "operation": "read", + "proto": "tcp", + "t0": 0.025581, + "t": 0.025583, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026473, + "t": 0.02648, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026483, + "t": 0.026483, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.02651, + "t": 0.02651, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.026567, + "t": 0.026602, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.026565, + "t": 0.031842, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.031898, + "t": 0.032445, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032459, + "t": 0.032459, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032482, + "t": 0.032489, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4029, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032497, + "t": 0.032497, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000065, + "t": 0.000065, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000104, + "t": 0.000124, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000163, + "t": 0.000166, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000143, + "t": 0.005925, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000169, + "t": 0.00628, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006304, + "t": 0.006304, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "getaddrinfo", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000082, + "t": 0.005573, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "gG6BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000081, + "t": 0.005932, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "bdmBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000074, + "t": 0.006287, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.02651, + "t": 0.032459, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010912, + "t": 0.01687, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUWCGfWihnJ3b4Bo5t6HtF+dFPYu0wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjE1WhcNMjMxMTI4MDA0NjE1WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/yUFTycUtyr0UDBA+CCy/YJUscwKY6cEfqItaE0UbVq/cvRvp+/UwoyVAQImZF2rs3CbQVXyQfZZol56cP9bZp2chd2LpbKms7w3PNFqjePXHsoFpsPOGp11L76ZeIdn1ukmT8fl+3JdjJZdkSiUElVGZ+5lTyitddmJytezRMASeotZdsfACS8bdu/s2/DRRGY645kRnQZxMaSLzOIojqgSz0IzX5sX9KWcAqYC+YJ0y29aL+f3cH6u9FvjipUpuy5NHWxoG2U99T6t6HpyaO3A7cgaG5X/bJ+mNg3+XsllB5pWB/CGZviltTd1dfnqQyNGYpa4fCLtEfqclu2B/AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFEY381gglDW/zzr6h4FJ7FMWJ3MyMB8GA1UdIwQYMBaAFFxRDhg8+YmOoVNHtn0d+nGXuC1AMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBABnaCyO5vJ8fxSjPSdbdwrDTHyzz+io9JS11u30tJA2uqdDGFh+KD37NnL+nleaYkTcmTo4sv9GiO3xXEUK2SN9ET201H41/7W0vPGp9oKmkrknDa6IqNpp2PlAU5o+l5I9VDkoab5UmiR1Wo/6HWrqWqB3d5GK5Wu6F0YIE75JERiWBNWGKO2c0l731UFX7RDlXB9l/p2ywL0+iBycRSJhAL0aS5MmkHRu4SR1ASj1SwRRcgpzfUn1YLCG4k6ojyhv/FCfpAK5v5ha835StIjsKdK8/TA+tdRwGCbyKJGL1lthAkf3OaX0dVo/tMCgsLg49WLbfaQw49gonoKAtDcs=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUOjbFD0HHXmGCep7zdAbKekUso3EwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjE1WhcNMjMxMTI4MjM0NjE1WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJxjjugaWJ/P2wfcYdoovGyHFt8RJWXVxwOixeCxnke3/tKP0mEcgfhJn0H1189LRpCGNeNApqV+zed8YA5CFLkM/tGCPvUzPg/iBKiIZXHuF711Nz4WJNmW2uNo5vjIjTNREjIgnVOZ2gFrkCSMVlmqi9enuU80OfUUCdI6SNvN18Ry/9qys2O9jOciStDz8xhoLpkVvwWSnbaK/yudSDDNjL+0ROj3REab6ahzlOjyyIhlQHt4ue1rBtQLlfwehVYWY7kYvLFDMtknvvDx4AnF34vcV5dpQIRb9o+nDoBFnPgY1SE75Va4E4skgKyBrYywke/ZFPVc3V/JUBj0VWcCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFxRDhg8+YmOoVNHtn0d+nGXuC1AMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAnPD456QVYMXMffuKGznNsL+4YsviV+V2qIVXxTGb3XZLGmgo77UdGIMpd5U1ZDvZszXfOSIBG8GQe8nT9m94fwA228Z7boOwP49x6darETHO4YtryL7wmOFxbwTZVQglvQKmTo2BvA9LwCP+wGSPwsFHsSVs08Wm+luqI2llmVQhemHXVOqC4R9s4vxBwkxU7VXlcb1HDQP96CQacRQqqisQXOBjZkwxuMkl5F55sklbOGqi2wL1u27PRBYUudpSxTshM5ZAnIsCSdLU5a0NfPOmAPQJYDEUkgBuB7Z7vpt+1qRKdAtCSq/h6e6CVOSy7bJB3j6mRKgNRe1H4+0Pz", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016892, + "t": 0.026483, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:2}]", + "t": 0.010868 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.026499 + } + ], + "control_failure": null, + "x_dns_flags": 2, + "dns_experiment_failure": "dns_nxdomain_error", + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 33, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506637, + "test_start_time": "2023-11-27 23:46:15", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json new file mode 100644 index 0000000000..1ab0eae2b2 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json @@ -0,0 +1,170 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json new file mode 100644 index 0000000000..e53951b954 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json @@ -0,0 +1,23 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json new file mode 100644 index 0000000000..1541c18707 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json @@ -0,0 +1,684 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:17", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010961, + "t": 0.016545, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.01656, + "t": 0.01656, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016655, + "t": 0.016662, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016665, + "t": 0.040058, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 1739, + "operation": "read", + "proto": "tcp", + "t0": 0.040158, + "t": 0.040159, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.041031, + "t": 0.041038, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.041042, + "t": 0.041042, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.041066, + "t": 0.041066, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.041114, + "t": 0.041147, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.041108, + "t": 0.05085, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.050899, + "t": 0.0517, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.051713, + "t": 0.051713, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.051732, + "t": 0.051736, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 4030, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.051744, + "t": 0.051744, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.068128, + "t": 0.074154, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.074169, + "t": 0.074169, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.074256, + "t": 0.074263, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.074265, + "t": 0.081814, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1739, + "operation": "read", + "proto": "tcp", + "t0": 0.081897, + "t": 0.081898, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.082727, + "t": 0.082733, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.082736, + "t": 0.082736, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.092772, + "t": 0.092779, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.092786, + "t": 0.092786, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000081, + "t": 0.000081, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00014, + "t": 0.000161, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000165, + "t": 0.000184, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000165, + "t": 0.003586, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000188, + "t": 0.00381, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.003834, + "t": 0.003834, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "RqaBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003607, + "t": 0.006108, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "/A+BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003828, + "t": 0.006211, + "tags": [], + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "RqaBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000115, + "t": 0.003594, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "/A+BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000088, + "t": 0.003818, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000061, + "t": 0.004052, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.041066, + "t": 0.051713, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010961, + "t": 0.016545, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.068128, + "t": 0.074154, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUAZrkwgwdnoVlhS3MczkCF+VdBtgwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjE3WhcNMjMxMTI4MDA0NjE3WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDW0VUXGQZSL3m3s1LeiS+zEsv+GMkwiSRRb3RZd2d+KaWLkFqOgdWRmrFbLovo0Dm08sYYPfDs8emOGs7+I0fibh4PAhvWVwfQo94lSxB01JIjpZh5k55sQ6UBbbCLoC8IB9pADh9M7L4/XkOwqpybO2thPYLBjcia1GN5N35JWgso7hP4XKSsfwi/7nc8z5CFHP3uzPpEnA59t7HCaioOY+aIvd+ggO/jrVxQAyzfy3VYs5oeWVSKUMxSJOjEviqb+WIaI+5irK1z3tFZ+/5W183rPYJg1sqcBXy2NXCwvpWAAyJrHzfbCoRkPg9+Zm0wtNcphncsT0IE1A4l1m5NAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBhfH/82Sm3F+59XJvXsoF4PT235MB8GA1UdIwQYMBaAFFcCmQHacaofs03gaPL3/WZrzhsJMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAJe6zna49Hx8HZQAZoZQFSdtivEYv80erzbs8s+zoHGhfLTNK4actSaQax2gE1Bxe95TzhxC89dQLyNbvik64P+lULeKcsYy3xTdIfNeRsmCHVwo4vMJkEuBCdc1vYlx7SvZgXQnHLBKD0TMg2/9eFhq+FHCWrNCQXolCpXy4UzHn1i/9bJhyhQepdjv0D583j52U1CHpFg84MekNjTAoekV/uCb7zP30rNMb0mlLTZKRBCIsYTYx4KeLp8iyl/a+cdF5n3YEmrCYGOaalZvsC2S6MWWc+49JyqiSEzj85rDTJSZr1zPvi27kduu0/cmFWScSBwZznBTj0QVs2bxzdE=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAOCOSMvG7Ydi1C1OlL8Uro8lU9SNMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxN1oXDTIzMTEyODIzNDYxN1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2/ILzzbASqPp4cZK9A9Spklr4syeF0APsVuRQ112Uw7tNtR1nz5tw8hpp2Ahn8lX/E/cTqP9Z9WzeIX8jshGiT6P1gLC018yIyTJxenH1eUG3MrF6XUXAtAuEnBdCNKFis4v0uSn1M+WoKp9iUTaqW6g6kjDJBk67j9zBRZQ5R/ZxwujeI69QrfDk0vN/p9+4KjTUw+lp1D0ihBra/S2Q76mENoM2Gqp0ZijArahk2OTFZ615mUScvlD29KFwnQwNQBPbF3kXdVAyt/h7cY8FXSxmJvAU0hayIWiYI5lplBa31SSjeob9DuK9L/vml64qPicJmWiLNLpuu3ButtmhAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRXApkB2nGqH7NN4Gjy9/1ma84bCTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAM1jklwHNnFcL69qITPUl6lWLCuCoaeqjRtHVOdC+EQiYUnrfj483SqgzDW0hiq98Lwe4yFtbgOJN1fUvq68M5UIVAzcCvr4m9lqlDhLVgem5zZga1vjVIPpWM0SPNhyy5qSPkPzpaCWk9lpxLO9gZVr+sw+T85pWVIpKsiYikN/JbW3EDX3D/8XT+KFqEvuqMedbZ5zcONmU5ESg6qudgVWJY8Wjxky7/Zl5kwMvv4c0NZPqFggqyUUOIJlWIpIvOVmDXOHB0yUZPT4Lm2Fq/QSPJRR8QR/w6vy65f2GBXSwB+Ab0SJ6MOYGoKYdD8s0w7NiDGyqDl3f9DKWp8KJGw==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.01656, + "t": 0.041042, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUAZrkwgwdnoVlhS3MczkCF+VdBtgwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjE3WhcNMjMxMTI4MDA0NjE3WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDW0VUXGQZSL3m3s1LeiS+zEsv+GMkwiSRRb3RZd2d+KaWLkFqOgdWRmrFbLovo0Dm08sYYPfDs8emOGs7+I0fibh4PAhvWVwfQo94lSxB01JIjpZh5k55sQ6UBbbCLoC8IB9pADh9M7L4/XkOwqpybO2thPYLBjcia1GN5N35JWgso7hP4XKSsfwi/7nc8z5CFHP3uzPpEnA59t7HCaioOY+aIvd+ggO/jrVxQAyzfy3VYs5oeWVSKUMxSJOjEviqb+WIaI+5irK1z3tFZ+/5W183rPYJg1sqcBXy2NXCwvpWAAyJrHzfbCoRkPg9+Zm0wtNcphncsT0IE1A4l1m5NAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBhfH/82Sm3F+59XJvXsoF4PT235MB8GA1UdIwQYMBaAFFcCmQHacaofs03gaPL3/WZrzhsJMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAJe6zna49Hx8HZQAZoZQFSdtivEYv80erzbs8s+zoHGhfLTNK4actSaQax2gE1Bxe95TzhxC89dQLyNbvik64P+lULeKcsYy3xTdIfNeRsmCHVwo4vMJkEuBCdc1vYlx7SvZgXQnHLBKD0TMg2/9eFhq+FHCWrNCQXolCpXy4UzHn1i/9bJhyhQepdjv0D583j52U1CHpFg84MekNjTAoekV/uCb7zP30rNMb0mlLTZKRBCIsYTYx4KeLp8iyl/a+cdF5n3YEmrCYGOaalZvsC2S6MWWc+49JyqiSEzj85rDTJSZr1zPvi27kduu0/cmFWScSBwZznBTj0QVs2bxzdE=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAOCOSMvG7Ydi1C1OlL8Uro8lU9SNMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxN1oXDTIzMTEyODIzNDYxN1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2/ILzzbASqPp4cZK9A9Spklr4syeF0APsVuRQ112Uw7tNtR1nz5tw8hpp2Ahn8lX/E/cTqP9Z9WzeIX8jshGiT6P1gLC018yIyTJxenH1eUG3MrF6XUXAtAuEnBdCNKFis4v0uSn1M+WoKp9iUTaqW6g6kjDJBk67j9zBRZQ5R/ZxwujeI69QrfDk0vN/p9+4KjTUw+lp1D0ihBra/S2Q76mENoM2Gqp0ZijArahk2OTFZ615mUScvlD29KFwnQwNQBPbF3kXdVAyt/h7cY8FXSxmJvAU0hayIWiYI5lplBa31SSjeob9DuK9L/vml64qPicJmWiLNLpuu3ButtmhAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRXApkB2nGqH7NN4Gjy9/1ma84bCTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAM1jklwHNnFcL69qITPUl6lWLCuCoaeqjRtHVOdC+EQiYUnrfj483SqgzDW0hiq98Lwe4yFtbgOJN1fUvq68M5UIVAzcCvr4m9lqlDhLVgem5zZga1vjVIPpWM0SPNhyy5qSPkPzpaCWk9lpxLO9gZVr+sw+T85pWVIpKsiYikN/JbW3EDX3D/8XT+KFqEvuqMedbZ5zcONmU5ESg6qudgVWJY8Wjxky7/Zl5kwMvv4c0NZPqFggqyUUOIJlWIpIvOVmDXOHB0yUZPT4Lm2Fq/QSPJRR8QR/w6vy65f2GBXSwB+Ab0SJ6MOYGoKYdD8s0w7NiDGyqDl3f9DKWp8KJGw==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.074169, + "t": 0.082736, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.01092 + }, + { + "msg": "conn 130.192.182.17:443: granted permission: true", + "t": 0.041053 + }, + { + "msg": "conn 93.184.216.34:443: denied permission: timed out sending", + "t": 0.092752 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.504404, + "test_start_time": "2023-11-27 23:46:17", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json new file mode 100644 index 0000000000..c9a44365ab --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json @@ -0,0 +1,213 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json new file mode 100644 index 0000000000..618a14e76f --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json new file mode 100644 index 0000000000..c2f70ddbe3 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json @@ -0,0 +1,738 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:16", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011155, + "t": 0.016263, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.016279, + "t": 0.016279, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.016331, + "t": 0.016357, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.01118, + "t": 0.016363, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016377, + "t": 0.016377, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016464, + "t": 0.016471, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 1448, + "operation": "read", + "proto": "tcp", + "t0": 0.016309, + "t": 0.034838, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 203, + "operation": "read", + "proto": "tcp", + "t0": 0.034885, + "t": 0.035077, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.035091, + "t": 0.035091, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 1651, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.035115, + "t": 0.035115, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016474, + "t": 0.036766, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 1739, + "operation": "read", + "proto": "tcp", + "t0": 0.036863, + "t": 0.036865, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.037767, + "t": 0.037774, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.037777, + "t": 0.037777, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.0378, + "t": 0.037806, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.037812, + "t": 0.037812, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.06473, + "t": 0.069408, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.064722, + "t": 0.070115, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.070127, + "t": 0.070127, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.070228, + "t": 0.070233, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.070234, + "t": 0.078754, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1739, + "operation": "read", + "proto": "tcp", + "t0": 0.078837, + "t": 0.078838, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.079669, + "t": 0.079676, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.079678, + "t": 0.079678, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.079694, + "t": 0.079698, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.079705, + "t": 0.079705, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000071, + "t": 0.000071, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000158, + "t": 0.000178, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000167, + "t": 0.000181, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000183, + "t": 0.0034, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000186, + "t": 0.00363, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.003747, + "t": 0.003747, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "cbKBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003412, + "t": 0.006033, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "yIiBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003657, + "t": 0.006154, + "tags": [], + "transaction_id": 1 + } + ], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "cbKBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00008, + "t": 0.003404, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "yIiBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000101, + "t": 0.003638, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000065, + "t": 0.004008, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.182.17:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:16 GMT" + ] + ], + "headers": { + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 23:46:16 GMT" + } + }, + "t0": 0.016279, + "t": 0.035091, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011155, + "t": 0.016263, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.01118, + "t": 0.016363, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.06473, + "t": 0.069408, + "tags": [], + "transaction_id": 5 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.064722, + "t": 0.070115, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUezerqU/C0OF0A6DQ5wHNgB+O9fcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjE2WhcNMjMxMTI4MDA0NjE2WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+o9NruyU1wTqcIFlPvigTHrjfUdgL74N1HYqRqLBs7J26I3QVcafgE/iX/P2iPL8AalnSufomIwZVj76Pjk0OT3HbrEz3Oel6U6wzZWGYzaSOSTOXI25jmfbVCMnCiY8zGG801chfJODXMpRr66DjLSe4CqDLZBHFnmuFpr/4YG0YSqaKRPQwl+XBAAIs2niPJaszLPRJnJpxdeOWFmUQtpGFCRrV2bz063zZhIIRQt27UK1MyXsmCFGFaDqoAY2VV3IRHW9a/L1q9ei48fMfouM6iCzk6BPDBWTma8481IbWBl+mkSgScDzjGciD2gXzUqed/DWuQTB+7DGTj805AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFGRVqUteq+KgPAi/TFWX1Ohza4T5MB8GA1UdIwQYMBaAFEEDGkpP7uTqkEUvBKx5LC4D+12sMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBABaA+nb39mYEQEliioezXTzypId4Rm9Papn7auNjyUFSrC58xnPHM4NzMeArb/FnGSI46mcNSmsI+ZPGf3EgPgXUi9pI9ePelLCt2Lk6keYWPVZeYdqdL5voZ2hZlZrP7bLRkugAV2rdJ779+RbHr6xjWnYznnkCNOrQfAuz2y6VQmj45tcI+Pl4xOjZDHn2/lQXd25FJY8Q8dhh6T5VOZySDTryZgsS13fXnamDckyfZTmb6Ckc/EwARfGGlT0YKcyLLqbYZBeWDP+Yhrqnkqk5FoW99I/0XTbPCrKhYBNEbNaxrO+CgAMMr7fcRI+JSVoqg2+WrJVxPlC5PQZ05Ws=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVANXRlF7PK9LDdBIdYQF3NsGTPPWMMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxNloXDTIzMTEyODIzNDYxNlowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbQyjt/Hx5ELw1DVLH1NVzilB1S6MSevk/Eb3XsuCshMVYByk1L36WeLkpIuMT/S8Ip171tk2KiGIMn8WIaWgqtfRKHiyk6xsgGYpTB9UwtECsyOwqNMcmemsD2PBzOvNELLi2v0lCvMyGv9ywFcXl+fgMUji6/g582QCzC4Iy4BMjD2PSgCytAiuF4DMwvzcHb5HMTHPWHMh5mQWKFGNfI2tPKISrPVBx7E2VtmsyaDqx+ae6hsyBidGuhWCEMj+4wbOxW2pho/9X52pknezXFxlOpktoCpMnr23xfSM1xWUg3ziYG8Hxaceu6pTHtMJKhLSO82ZjIjCp0lBqGZn9AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBAxpKT+7k6pBFLwSseSwuA/tdrDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAdOhLCknUNE8xTU6AuYaSCbzyKn5Xbzftqdfw50pGCtcki11uJlcAhWwVOgGJxomXh4UHJV+XXlAG72udql7t7wsGI/JCbUnoMdOjRBDDz6oTUjB6JaPz3ZVUQw/D9gc8ycba+1Zz7ijNLpY0OrN83UuwrMacEGfX3Bx83IFgkB31q0/Ln0Mgtdum/fgbMLnG6P23JwrfqxzWG8BmTmpu6q7INN3na3GNIwcJLtszhqHnl5yuzCxJpzOU2nRTobfdcrV4Efpqj7G3TTAE5pkkx7lDi0868Dl5ufpLZL1XJxFObOc2sU2h4LffOxEMvRRRS3W3Zz4Ywpr9YWil1VR8lw==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016377, + "t": 0.037777, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUezerqU/C0OF0A6DQ5wHNgB+O9fcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjE2WhcNMjMxMTI4MDA0NjE2WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+o9NruyU1wTqcIFlPvigTHrjfUdgL74N1HYqRqLBs7J26I3QVcafgE/iX/P2iPL8AalnSufomIwZVj76Pjk0OT3HbrEz3Oel6U6wzZWGYzaSOSTOXI25jmfbVCMnCiY8zGG801chfJODXMpRr66DjLSe4CqDLZBHFnmuFpr/4YG0YSqaKRPQwl+XBAAIs2niPJaszLPRJnJpxdeOWFmUQtpGFCRrV2bz063zZhIIRQt27UK1MyXsmCFGFaDqoAY2VV3IRHW9a/L1q9ei48fMfouM6iCzk6BPDBWTma8481IbWBl+mkSgScDzjGciD2gXzUqed/DWuQTB+7DGTj805AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFGRVqUteq+KgPAi/TFWX1Ohza4T5MB8GA1UdIwQYMBaAFEEDGkpP7uTqkEUvBKx5LC4D+12sMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBABaA+nb39mYEQEliioezXTzypId4Rm9Papn7auNjyUFSrC58xnPHM4NzMeArb/FnGSI46mcNSmsI+ZPGf3EgPgXUi9pI9ePelLCt2Lk6keYWPVZeYdqdL5voZ2hZlZrP7bLRkugAV2rdJ779+RbHr6xjWnYznnkCNOrQfAuz2y6VQmj45tcI+Pl4xOjZDHn2/lQXd25FJY8Q8dhh6T5VOZySDTryZgsS13fXnamDckyfZTmb6Ckc/EwARfGGlT0YKcyLLqbYZBeWDP+Yhrqnkqk5FoW99I/0XTbPCrKhYBNEbNaxrO+CgAMMr7fcRI+JSVoqg2+WrJVxPlC5PQZ05Ws=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVANXRlF7PK9LDdBIdYQF3NsGTPPWMMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxNloXDTIzMTEyODIzNDYxNlowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbQyjt/Hx5ELw1DVLH1NVzilB1S6MSevk/Eb3XsuCshMVYByk1L36WeLkpIuMT/S8Ip171tk2KiGIMn8WIaWgqtfRKHiyk6xsgGYpTB9UwtECsyOwqNMcmemsD2PBzOvNELLi2v0lCvMyGv9ywFcXl+fgMUji6/g582QCzC4Iy4BMjD2PSgCytAiuF4DMwvzcHb5HMTHPWHMh5mQWKFGNfI2tPKISrPVBx7E2VtmsyaDqx+ae6hsyBidGuhWCEMj+4wbOxW2pho/9X52pknezXFxlOpktoCpMnr23xfSM1xWUg3ziYG8Hxaceu6pTHtMJKhLSO82ZjIjCp0lBqGZn9AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBAxpKT+7k6pBFLwSseSwuA/tdrDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAdOhLCknUNE8xTU6AuYaSCbzyKn5Xbzftqdfw50pGCtcki11uJlcAhWwVOgGJxomXh4UHJV+XXlAG72udql7t7wsGI/JCbUnoMdOjRBDDz6oTUjB6JaPz3ZVUQw/D9gc8ycba+1Zz7ijNLpY0OrN83UuwrMacEGfX3Bx83IFgkB31q0/Ln0Mgtdum/fgbMLnG6P23JwrfqxzWG8BmTmpu6q7INN3na3GNIwcJLtszhqHnl5yuzCxJpzOU2nRTobfdcrV4Efpqj7G3TTAE5pkkx7lDi0868Dl5ufpLZL1XJxFObOc2sU2h4LffOxEMvRRRS3W3Zz4Ywpr9YWil1VR8lw==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.070127, + "t": 0.079678, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "130.192.182.17:80": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.011113 + }, + { + "msg": "conn 130.192.182.17:80: granted permission: true", + "t": 0.01627 + }, + { + "msg": "conn 93.184.216.34:80: denied permission: timed out sending", + "t": 0.079428 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.504672, + "test_start_time": "2023-11-27 23:46:16", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json new file mode 100644 index 0000000000..091d862328 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json @@ -0,0 +1,298 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "5": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json new file mode 100644 index 0000000000..b8af90e860 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": { + "3": true + }, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/measurement.json new file mode 100644 index 0000000000..a7385f2169 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/measurement.json @@ -0,0 +1,519 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:18", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011575, + "t": 0.016788, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.016805, + "t": 0.016805, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.01685, + "t": 0.016882, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011582, + "t": 0.017266, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017279, + "t": 0.017279, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017375, + "t": 0.017382, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.016837, + "t": 0.019659, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.019674, + "t": 0.019674, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.019693, + "t": 0.019693, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017384, + "t": 0.024813, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024902, + "t": 0.024903, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.024904, + "t": 0.026005, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026918, + "t": 0.026924, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026927, + "t": 0.026927, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.026942, + "t": 0.026947, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.026954, + "t": 0.026954, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000062, + "t": 0.000062, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.0001, + "t": 0.000106, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000132, + "t": 0.00015, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000111, + "t": 0.005254, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000155, + "t": 0.005721, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005761, + "t": 0.005761, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "HpCBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000073, + "t": 0.005257, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "Te2BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00008, + "t": 0.005725, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000083, + "t": 0.006453, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": "connection_reset", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 0, + "headers_list": [], + "headers": {} + }, + "t0": 0.016805, + "t": 0.019674, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011575, + "t": 0.016788, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011582, + "t": 0.017266, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUPMlPBOw+znecCU6tkzRP1w6dqOswDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjE4WhcNMjMxMTI4MDA0NjE4WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdArrVIO//tbeSvU7HGzBiOWLIhNZT3U7c8rlnNVNHQS9L5hRLsoAkyAOdPHb0jnILX2RJXPzkqDGzxqBUK/jEW1Q3kwaM2U6xhR1QnM5mfikIO01C4THsp3CUwy0tAsRcZ4SW0nkfcrwOmkqqoVvD4btHMqe10g11BHsmJ2UmhghW2cgLDSl4DIhZM+25qNuZGIr/UnuSZjPRlryecsMQx9N/4o4w4LLiZBzth5Iz87w7Fo0GVzH7QmiR3t+rp9JqR7Gpb8lzhZFXn2HwJwjC3pC8mlggaoiEOsk4X5mk3wssPJgj6xYRys2Dry77gFuBme/0TuMDZJV2jftYQOS/AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFDAxYUZg2djupSYzr2TEg/w0GFUkMB8GA1UdIwQYMBaAFB7yHQrJ26f/qGjREYBTIzYZ+tBAMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAL7e4eqycsh/6Jzr0PpsAVi4SShdzP6w9a8jtDn+UmZvv1ex+dPGSJULpnOdtVyCQ9N7pEi9TJAW5D3w7okerTUknfra9TcYllGBlRzNQ+Z5mEgxQlkC0DKQWKMF0JJSYycbw9T6t7sFQOpU2ze2H9CXaEqcU7ejvXsdxjofcSKRnFwJM39ic3gdQCtTV7WBcAORAb1qT/92MxIWcycK8Mj5US4+pPYLTAI6qJQZZGXnsk/L/fvR3XfuaExbU3fKat2unvKXHjy3Sw3K03dSVOHG4rFGWDykZtzAvHbZDW8USV21wCQePprrKVlBVQ+NyjXECQ1px4499zDaMFHBxww=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAMllapkCb/R73Iygik4hb4vE/pzCMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxOFoXDTIzMTEyODIzNDYxOFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDlDllnonmo132fyx1c1SoToxEhTbRCxFcNPdVDiaP1LYS4W6/X/P2PXe9HmpZoBFNJCc6Gj4T8cDgLGK6RzwBsyh1z/8shH7PCapGMwiaOIibaQWaNRrcdqB1asGi95EKwBJsbIbE5ekSuqx6Gl898DL7Vfg4nMKfLZbcP3qMX3Rd+3wihrpPn45syk1IntnSRHgeYPsaY6XyCY5Yh3BSYP0tjkGBrFFwhsoLragRW/+F37Tu+7l0dMxKjg7A7hsvgf07pfTeilmpGUI3HAHkTEbio8IVR5fqnwY6+NzepUXIKSthFSemVn3cnrVg85JlbZQCNujxli2wL6PgtKy8pAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQe8h0Kydun/6ho0RGAUyM2GfrQQDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAbd5S0Lp6U6QoCrMW+vc9f1AFd3Qu4V3Q6yunBuELgzSuDTFQUHDxiPxzV3zzZABfYZUGo+V0deJCKH4NNL8SciZ0Qq1+rI/nvVCm+CpzDyGBZC4X1Lz6r/EgvcU6MC1NlxZA724aKk67ock8TubG/QaANMUT1Uln6dI2AeubMiqB+vbWSXpQAnwam64zmeXTrQ2CBBxtqqAhvT6gG8wWfrgjIXxztUlWg7genlEDZZPcapRbOz5VDDEhqnJVB4m6iEZoGutJlSHiEdOhjrzkT50A7C0oTGEULLkb0Qa7/7g5GTkd88IUiimyMJTYTinwUOSSlaw+CaYM91FSf1cxzw==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.017279, + "t": 0.026927, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.01152 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.016796 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506804, + "test_start_time": "2023-11-27 23:46:18", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json new file mode 100644 index 0000000000..5ea2ca91df --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json @@ -0,0 +1,208 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "connection_reset", + "HTTPResponseStatusCode": 0, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json new file mode 100644 index 0000000000..53d41f5790 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json @@ -0,0 +1,22 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 0.12263535551206783, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": { + "access": true, + "default": true, + "denied": true + }, + "HTTPDiffUncommonHeadersIntersection": {}, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json new file mode 100644 index 0000000000..e30cedd123 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json @@ -0,0 +1,520 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:19", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011513, + "t": 0.016623, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.016641, + "t": 0.016641, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.016683, + "t": 0.01671, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011525, + "t": 0.017577, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017592, + "t": 0.017592, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017679, + "t": 0.017687, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 207, + "operation": "read", + "proto": "tcp", + "t0": 0.016676, + "t": 0.020678, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.020701, + "t": 0.020703, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.020718, + "t": 0.020718, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 207, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.020736, + "t": 0.020736, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017689, + "t": 0.025133, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1740, + "operation": "read", + "proto": "tcp", + "t0": 0.025237, + "t": 0.025239, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026121, + "t": 0.026127, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.02613, + "t": 0.02613, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.026147, + "t": 0.026154, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2316, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.02616, + "t": 0.02616, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000074, + "t": 0.000074, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000101, + "t": 0.000106, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00013, + "t": 0.00015, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000111, + "t": 0.004972, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000158, + "t": 0.005442, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005477, + "t": 0.005477, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "O52BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000081, + "t": 0.004976, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "ZSuBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000099, + "t": 0.005447, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000063, + "t": 0.005681, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eAccess Denied\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eAccess Denied\u003c/h1\u003e\n\t\u003cp\u003eThis request cannot be served in your jurisdiction.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [], + "headers": {} + }, + "t0": 0.016641, + "t": 0.020718, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011513, + "t": 0.016623, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011525, + "t": 0.017577, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVANSeUJmp/QvkzXaQT6qMTpUjV/fbMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYxOVoXDTIzMTEyODAwNDYxOVowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvoFmCFeihv89H7WhikxSyrW2QK2UuPyJralNxgD4rVDEB9Er/SxEqmserXb+SFmYR8Gm98mFjE98W2vRy9Ss5fqqJ+tQf+eBTboskRoPqB3X3rjFpGK/9Gbe/aaSF+dL5HUHatncapUxr8KVWCyw6B6UWPs54RqvS7uol730hk/7f/30Khv2/0gmKEVMRNnuNaAuqaTGRququGu1ye6WC3sUgjdZKjqM922zu1O2zreKMIUL5kqXJTqslR9SotDfW1/H/As3w1DYiQ8y6JMp4ROurEKFHfhYBp0p7FNPDhnS0DxyPbTjeomOoM2grTPNfhWmy4RKH0St8aoh4h3/eQIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRnD4Q8/QsscF/6oqO7tpKa1Am32zAfBgNVHSMEGDAWgBRYWmEmWlQrlLi1ujZj59cQl1DDbTBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQA/ZJBrcuu6dcOE4WkzoZVP8ug+njElcsHoTdDY0pIoY5AKubK30g5fwNDnd6cKMs9nmRbgWiCkICL08ynfRg2xUcemPFGetDmqBBatMgkhUAGukpeOUIRdoAa/2sqPaTUghHink24rr6ZQJrpseTWpPkeL/ayvgj4fOBdh2RwuYmBeir3ALyxkLx91AlevqmoRWk8J/uaxTtwz5bSKNzw4UDanwtNkaeI2k1g1SWSrU5A2wvJVH86KINoZR0SbiYyZRGQuGk8/GFx5KPjABZfIuphyfXYbi0qWv04RvRCwj2ZpZnAMzt0iagxO8Qs1j+8hcLzIZTjxNhz87OGUIg4e", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAIpYw3AtKn0qZrG5T4sFILUe0E34MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYxOVoXDTIzMTEyODIzNDYxOVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEv1/smB/m5/ZGiTbpCX0eAG2pJYysUaV69undO/km6Ix2XMMHN4v3n1wLEsDRJUtfJ7HNH8Nqt8TnO68eBG/IymGOSfteZTXnx0z01HuHGLR/mC5K96whYZ4q+rASb64uwAacyLBnZHMCo8rdn/SLg/Wtl67L6fjIgU+WQ+BfAJYcz2x3d164KAcdsMJHLxYef3flX2baZ0E3DCGqaElF6PQwWUlstSPahhmKZMH6ocEieyUobevlNnNInsO2axf1D1fLXo5ZXizxKErwVI+Nt/ul+3qMPytTBvxYnvkIRnm0FIHNZEjcLBg+kZ8nvWUxM8RH7eMlLo9TFuG+KkKBAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRYWmEmWlQrlLi1ujZj59cQl1DDbTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAp0n3lQnjDf/qUEGlsIBeHcrdH/i0m3PlmVa1VBqy3HC9VcYi9ijXR8S3Ngo6pxum2lnC8KLetXHAbIx1Cyv4Q8Mi3+IMO4UFZL6VKuePXekETS2aAitQ6N1X9jkcNulDr4JyJ0zw6bhooS9Wg5saUeNi3gtoTD/dJVfQTqnAnTDEWjwdq86s8m+6JqUtXH2vCX+9q+/Cif4tyvRSvumQ+OAKEYKG246s6nq1KHKWsWYDeYKfGwj1r1WsS3l0zOagH0Zn6e8qiz4Vn0qdHpfV1VQD42cq9rv4MzLkJYva8yuQvd7IEa9VJuOSsHRNXV1UuFQsnUz9kMVBH2fR3kacFA==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.017592, + "t": 0.02613, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011465 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.016632 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 16, + "x_null_null_flags": 0, + "body_length_match": false, + "headers_match": false, + "status_code_match": true, + "title_match": false, + "blocking": "http-diff", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506045, + "test_start_time": "2023-11-27 23:46:19", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json new file mode 100644 index 0000000000..09a021cbab --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json @@ -0,0 +1,208 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..53d41f5790 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json @@ -0,0 +1,22 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 0.12263535551206783, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": { + "access": true, + "default": true, + "denied": true + }, + "HTTPDiffUncommonHeadersIntersection": {}, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..e192fbf1cc --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json @@ -0,0 +1,740 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:20", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010763, + "t": 0.015512, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.015529, + "t": 0.015529, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.015578, + "t": 0.015608, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010826, + "t": 0.01623, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016249, + "t": 0.016249, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016343, + "t": 0.01635, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 207, + "operation": "read", + "proto": "tcp", + "t0": 0.015569, + "t": 0.018746, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.018774, + "t": 0.018776, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.018781, + "t": 0.018781, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 207, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.018805, + "t": 0.018805, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016353, + "t": 0.036863, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.03696, + "t": 0.036961, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.036963, + "t": 0.036983, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.037859, + "t": 0.037867, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.03787, + "t": 0.03787, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.037887, + "t": 0.037893, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.037901, + "t": 0.037901, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.062879, + "t": 0.067589, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.067602, + "t": 0.067602, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.067681, + "t": 0.067689, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.062892, + "t": 0.068202, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.067691, + "t": 0.075134, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.075216, + "t": 0.075216, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.075218, + "t": 0.076218, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.077089, + "t": 0.077097, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.0771, + "t": 0.0771, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.077119, + "t": 0.077125, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.077131, + "t": 0.077131, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000059, + "t": 0.000059, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000094, + "t": 0.000099, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000127, + "t": 0.00013, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000104, + "t": 0.003508, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000134, + "t": 0.003851, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.003873, + "t": 0.003873, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "U0uBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003525, + "t": 0.005178, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "50SBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003865, + "t": 0.006505, + "tags": [], + "transaction_id": 1 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000081, + "t": 0.003737, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "U0uBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000068, + "t": 0.003516, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "50SBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000108, + "t": 0.003854, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.182.17:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eAccess Denied\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eAccess Denied\u003c/h1\u003e\n\t\u003cp\u003eThis request cannot be served in your jurisdiction.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [], + "headers": {} + }, + "t0": 0.015529, + "t": 0.018781, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010763, + "t": 0.015512, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010826, + "t": 0.01623, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.062879, + "t": 0.067589, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.062892, + "t": 0.068202, + "tags": [], + "transaction_id": 5 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUHIbDhJNuNkth7AF55C25heDCO9swDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjIwWhcNMjMxMTI4MDA0NjIwWjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC125ImyryKI0tAQR5OGQx5z39WbOD+LL+4UtOjTDUq4lyc76zvobMsmXrGyADgkxKBoJuOrVu3c2KISMdTN/NCtTBQZzGGUcuMoH4oBIhAX1NCEXnyBarmL6WyChMTXmMbBSdVz4EOPBhV40KjSJZmrhnpBK9epaaYS90QcDTxjd4+rlcjPwkPheDAfHFKlHpIiyhEFsS+f/vZxj0psltMHvKdokvZotDuLKVftBOuEx9xymUOIg9blfteqF+aLk+5M612IAc3R2SlYMbbiSW8K1nAUbZmGoRzOEzo4mebwxT92mwXFbEQfGWQQrZxKTZmYYR3J8vsj2HLIN8WTYJlAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFIUJFenF8RpNfdyC7eOIQO5yyLShMB8GA1UdIwQYMBaAFBRpxBW8Kk7Pl4b20clhGqXOJQ2tMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAG9XXbPX9cAzefNT9sTYAcFGGqlFcVc1Lw7uftceEDLpWh8tZl6iSqJmvIVythJxofwB4dBoqxT/1tvQ4lTeHIQY01RMZbDNZ4LTqvCBF2CNtqigc8uKVGceI9pugxZso7P0z4J8l4weQsE29/3q9bNHzpW8WUxqyO7BgQu+XelWjc5PfcL8t6k4gyiSITEp/yFj7L6CLRSh4Kye/SpVvuPlQygL/eGlmQLsDstQuUqokOtiWbN/6rY3r70tU2JKvQ+tFRgbw+BISry9BIKDGmHgydSWLPCLABBAHnFTg375amaqg4i4hRqDaVH+KPXta6kb7pM4lFeA4Nr8NqCb6t0=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAJ1LWH8Jw/c7BSsMkzvKkTnMxVBQMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYyMFoXDTIzMTEyODIzNDYyMFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo+THT6Gr3fFY3WrQgOFfYal+djDC10HBcMmmzm/6bgUUXXssCEcATnMpBlfNjvv8Gyiud+ycuaAz64WPdChJA65ab6WsMfk3bVoIHAe4ARXpaI1JFnoFHC9EfyK7ZBidxxb/aIkycQjuuq1cpPjJZBpooNWotJ5sYSM063X9gEprCCyXikfr0IePzDPsiL4JC2teKU/+ZAEsrW+s18EBL2WAR5ueG7C11wZxP87yvtpQPfO3nw5qfRDpynH8Kh0QqkBHQGM6+v14iYuKEovBkidBTIIp6+IaYvEDly5tQNB+lYirpTFtFyeaO+Lr+8wmA3ttwqf6YR8XismMsuo3bAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQUacQVvCpOz5eG9tHJYRqlziUNrTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAOFt/6xxkW9cOCwCgyUqz0z2w3xDT0tQQkPEmLUKlo+TTD9HqOMyPA+PQ+EmBj8Zkg8CctMLGghjMLBOPHm5uARlS7AZ2npUHM/0mTJLS4Q1rO9z9EVkOseSV3A4An0qYqW5gODUHOWsFgbp5vKNRJsTBjzk6gvsGVbExvixiM+1p68OmkiitRtd2bxnww3hIVgmfgnTsZSGuDdbv9izLRmiYuCC1Nn3aFAAFr/Xja8tzp7LoTKNMj3QFuq2HKEZ/ZB0NWkQ728ZAAkN09VXZ7aHGdQQQ6jEPHTeTJnufbYrFMSpnYScygOfQpFLyBaz0J4KzxYf7PpkNv3cl/wPe9A==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016249, + "t": 0.03787, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUHIbDhJNuNkth7AF55C25heDCO9swDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjIwWhcNMjMxMTI4MDA0NjIwWjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC125ImyryKI0tAQR5OGQx5z39WbOD+LL+4UtOjTDUq4lyc76zvobMsmXrGyADgkxKBoJuOrVu3c2KISMdTN/NCtTBQZzGGUcuMoH4oBIhAX1NCEXnyBarmL6WyChMTXmMbBSdVz4EOPBhV40KjSJZmrhnpBK9epaaYS90QcDTxjd4+rlcjPwkPheDAfHFKlHpIiyhEFsS+f/vZxj0psltMHvKdokvZotDuLKVftBOuEx9xymUOIg9blfteqF+aLk+5M612IAc3R2SlYMbbiSW8K1nAUbZmGoRzOEzo4mebwxT92mwXFbEQfGWQQrZxKTZmYYR3J8vsj2HLIN8WTYJlAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFIUJFenF8RpNfdyC7eOIQO5yyLShMB8GA1UdIwQYMBaAFBRpxBW8Kk7Pl4b20clhGqXOJQ2tMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAG9XXbPX9cAzefNT9sTYAcFGGqlFcVc1Lw7uftceEDLpWh8tZl6iSqJmvIVythJxofwB4dBoqxT/1tvQ4lTeHIQY01RMZbDNZ4LTqvCBF2CNtqigc8uKVGceI9pugxZso7P0z4J8l4weQsE29/3q9bNHzpW8WUxqyO7BgQu+XelWjc5PfcL8t6k4gyiSITEp/yFj7L6CLRSh4Kye/SpVvuPlQygL/eGlmQLsDstQuUqokOtiWbN/6rY3r70tU2JKvQ+tFRgbw+BISry9BIKDGmHgydSWLPCLABBAHnFTg375amaqg4i4hRqDaVH+KPXta6kb7pM4lFeA4Nr8NqCb6t0=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAJ1LWH8Jw/c7BSsMkzvKkTnMxVBQMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYyMFoXDTIzMTEyODIzNDYyMFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo+THT6Gr3fFY3WrQgOFfYal+djDC10HBcMmmzm/6bgUUXXssCEcATnMpBlfNjvv8Gyiud+ycuaAz64WPdChJA65ab6WsMfk3bVoIHAe4ARXpaI1JFnoFHC9EfyK7ZBidxxb/aIkycQjuuq1cpPjJZBpooNWotJ5sYSM063X9gEprCCyXikfr0IePzDPsiL4JC2teKU/+ZAEsrW+s18EBL2WAR5ueG7C11wZxP87yvtpQPfO3nw5qfRDpynH8Kh0QqkBHQGM6+v14iYuKEovBkidBTIIp6+IaYvEDly5tQNB+lYirpTFtFyeaO+Lr+8wmA3ttwqf6YR8XismMsuo3bAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQUacQVvCpOz5eG9tHJYRqlziUNrTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAOFt/6xxkW9cOCwCgyUqz0z2w3xDT0tQQkPEmLUKlo+TTD9HqOMyPA+PQ+EmBj8Zkg8CctMLGghjMLBOPHm5uARlS7AZ2npUHM/0mTJLS4Q1rO9z9EVkOseSV3A4An0qYqW5gODUHOWsFgbp5vKNRJsTBjzk6gvsGVbExvixiM+1p68OmkiitRtd2bxnww3hIVgmfgnTsZSGuDdbv9izLRmiYuCC1Nn3aFAAFr/Xja8tzp7LoTKNMj3QFuq2HKEZ/ZB0NWkQ728ZAAkN09VXZ7aHGdQQQ6jEPHTeTJnufbYrFMSpnYScygOfQpFLyBaz0J4KzxYf7PpkNv3cl/wPe9A==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.067602, + "t": 0.0771, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "130.192.182.17:80": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.01072 + }, + { + "msg": "conn 130.192.182.17:80: granted permission: true", + "t": 0.015519 + }, + { + "msg": "conn 93.184.216.34:80: denied permission: timed out sending", + "t": 0.078223 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 16, + "x_null_null_flags": 0, + "body_length_match": false, + "headers_match": false, + "status_code_match": true, + "title_match": false, + "blocking": "http-diff", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.504443, + "test_start_time": "2023-11-27 23:46:20", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..9d8ac40537 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json @@ -0,0 +1,294 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "5": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json new file mode 100644 index 0000000000..80a44a3dac --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json @@ -0,0 +1,19 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true, + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json new file mode 100644 index 0000000000..91e7b3a770 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json @@ -0,0 +1,664 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 23:46:21", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.016644, + "t": 0.021345, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.021371, + "t": 0.021371, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.021461, + "t": 0.021471, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.021473, + "t": 0.029127, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.02922, + "t": 0.029221, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 816, + "operation": "read", + "proto": "tcp", + "t0": 0.029222, + "t": 0.029482, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.030388, + "t": 0.030396, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.030399, + "t": 0.030399, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.030419, + "t": 0.030419, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.030468, + "t": 0.030499, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.030457, + "t": 0.036321, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.03637, + "t": 0.03637, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.036408, + "t": 0.036414, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2412, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.036422, + "t": 0.036422, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.047573, + "t": 0.050863, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.047565, + "t": 0.050964, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000061, + "t": 0.000061, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000095, + "t": 0.000101, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000096, + "t": 0.000103, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000106, + "t": 0.005151, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000108, + "t": 0.005363, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005476, + "t": 0.005476, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.036495, + "t": 0.036495, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.036534, + "t": 0.036565, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.036537, + "t": 0.036592, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.036603, + "t": 0.041717, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.036572, + "t": 0.042681, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.042702, + "t": 0.042702, + "transaction_id": 5 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "leaBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000076, + "t": 0.005155, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "p8iBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00007, + "t": 0.00537, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000075, + "t": 0.005486, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "+U+BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.036512, + "t": 0.041727, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "hwSBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.036508, + "t": 0.042686, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.036529, + "t": 0.043294, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:21 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:21 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.030419, + "t": 0.03637, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.016644, + "t": 0.021345, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.047573, + "t": 0.050863, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.047565, + "t": 0.050964, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUPqL22GLpto6DgiYQrzsjjiC1bcAwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjIxWhcNMjMxMTI4MDA0NjIxWjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCy4EUkWOfgQ/ag6zCoN+jercrw2sOTgC0UZ7RRxpxfg45mp8viZgAyYw26BrpTGg3/164VuEKQcv+0jZhpIyAL+ueoQSsQn6BcB1F/zc+9w5NNh+b08q4Q03l8tWD9mJporD59d1pHX2ojTOmMiYqfjSNtXQ0cN0oPpRLLeKPdJBxP7lgEAwgWAcv+O4uhyyDRZcTV8ggfRsaWku3DfgfBRqId4a5JXDPa/Mr30Ofp6+cgS+Ul4Va2qfSXAVn31VwuPxEOQvNTEynm2xVZ1ZfYBgOJFvmpHY93SvxnXvewHVaDaIf5A/GHmxfttzNvl9zI1ZcV93LCgtsMgpAZ62+vAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFHCtQVcXclhuse7SBOmruv50qOTTMB8GA1UdIwQYMBaAFDsYNPpkyWfsWwSauhYfqakwYw3AMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBOljoUFkkx69sO5ao3N56UHb+nszHcyl1XggS4YFiaxrVvqS2BWMgqBwJ/9HzbvijEAnoXC6bNWC6MXdtkY6hGTGZgSRRK+xgNv8ebflGlMmON26ayJFlfb81oSA7pT/rz5/TmAUeTD/K2sN7jYhgUFGHyJms4nAT6qevLNCK934pFW5kJc2zxvbKUbnUIufK1RLjnmcJJGGjDB7/afv5mjAxzr8yUcnh+5CFkAo/usgs2yX6A5Pxv8thardygFxyS3EDNFla5CysPVeIIqx1E+eEEAb8TGrzJk7dwaHPdaGaxLW5qgRcNjAonBCSwjpFtDYOvPIlDp86xfflHtrbc", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUaCz/H97N6mPXECos5JCmPopIDR4wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjIwWhcNMjMxMTI4MjM0NjIwWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPQB2DaT3i9m40ccj5wQZXw4WmvAGxEuG1WKcN0Q78iJMRIUyIwUDtrXGgjPrfvJvcRchYLx7ho/RxxCfa4CYX2Sp7yjJ6zxJWzSC5XLJRHQUWSjtdZwfOG3SBil7np06ZFSi9AN5aEEDnbMDGU/OUZVM8W34Sq95fIX3h4n2QNwRUQqOAmt3MnRWMSSJkOqvcCnkgmXGWUKNcR+Nr7elcv/gEdXy4Rp/k3qYOiS+UTFMLRNiIWlccHfLUOSitX8FZKHwQNuWLyHe7flPUvsZiOv8pa2yIjZVVxn760fcDsBefopcOFxSweCqiVtnWyiFzna9SsvyjlnaTN3HpcdwRcCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFDsYNPpkyWfsWwSauhYfqakwYw3AMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQBCgwdJQANLbZ8MtJGxaFjwBNJ8eREnv2vqdIfo63TKhTPlAszoxqybVcJAh0nW3H9+5VGSiRJ3DeuWDdwnAjl/BGHH+Y2x/uDNsSPtwPqxEcJ2t92Pphu8n9BDp8ImBNcx1yhiTcxHw6xUNKXFv7Z8VbWH6fgjyaz41kOo9D9U604+IGOr5M0gYxtsOAWaHDURl6LIIcf25uWIjl9ITt3uhvLrRs0uWUWrBTnw3uvwaxMNzOmeWIzN3SWh4wcqRNqce4+NqcOkdsRqDlfInZC93Ok9QM+rMGfgccad/0+a+jPx5oPhnznVJDWx//ZMC/9cUUCZtrtjqJTzm/gEWW8t", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.021371, + "t": 0.030399, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.016567 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.030409 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.047505 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.543746, + "test_start_time": "2023-11-27 23:46:21", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json new file mode 100644 index 0000000000..61c41470c8 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json @@ -0,0 +1,369 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json new file mode 100644 index 0000000000..b09118c64d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json new file mode 100644 index 0000000000..48528d6cc9 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json @@ -0,0 +1,633 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 23:46:21", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011457, + "t": 0.017159, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017179, + "t": 0.017179, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017271, + "t": 0.01728, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017282, + "t": 0.025415, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 1690, + "operation": "read", + "proto": "tcp", + "t0": 0.025504, + "t": 0.025505, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026394, + "t": 0.026401, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026404, + "t": 0.026404, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026422, + "t": 0.026422, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.026469, + "t": 0.026503, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.026459, + "t": 0.03274, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032767, + "t": 0.032767, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032791, + "t": 0.032796, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2415, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032802, + "t": 0.032802, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.044909, + "t": 0.047982, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000078, + "t": 0.000078, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000107, + "t": 0.000112, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.00012, + "t": 0.000124, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000137, + "t": 0.005494, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000151, + "t": 0.00585, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005875, + "t": 0.005875, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.032835, + "t": 0.032835, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032863, + "t": 0.032878, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032888, + "t": 0.032903, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.032908, + "t": 0.038854, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032882, + "t": 0.039211, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.039228, + "t": 0.039228, + "transaction_id": 5 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000068, + "t": 0.005032, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "r+iBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000085, + "t": 0.005501, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "me+BAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000102, + "t": 0.005854, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "IUWBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032862, + "t": 0.038859, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "Bd+BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032843, + "t": 0.039214, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032831, + "t": 0.039343, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:21 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:21 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.026422, + "t": 0.032767, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011457, + "t": 0.017159, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.044909, + "t": 0.047982, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbDCCAlSgAwIBAgIVAIYKfnIBA0pH8TC0wdD4vve2D2EAMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYyMVoXDTIzMTEyODAwNDYyMVowKTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEPMA0GA1UEAxMGYml0Lmx5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4cHMK8HAb+zia/5QZC5XTViXRQDr5vhwb63+2EJ/qX0CQ7dJxyZwrBGtkAmwY+tDShhMoi/yl02ZqqTOIYC4xBvH3zOHdQRVxVRXzTqgkrDILacomWZRcRx44hOrYUSf6EGO0+zQJHoaTQP/zd3xtCVC5m9oM49BxYkXIXnjt1Uwxy6kQYKi0yZ+6HTGx4+B3lW/OqTF60X7n4GUIVsoGI9Ybf1XKRaQgM6E4MG6G90n9EraidocH8umtXRhdDB7zxGjZhXW6dHFNTJ+1Onkg9S7HG2CpUTKZn8dwoHxveB98DYNuYeEWSbfGUcEfte+bRESQTJV+oJ4W1hgHUMIQwIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ0H+NB2QHQVxvIcnbmIDprI9I/1DAfBgNVHSMEGDAWgBTv8ose20rtD9WR6ezCJ8Cze6qhhzAcBgNVHREEFTATggZiaXQubHmCCWJpdGx5LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAndSTS1CdASLMrCp4eqtXsJAsUm9OtgLeUfeDnCy1Z9Lqma97VLQ2k3CiZfXwTXLSIVIiAmUl4wVnNG6Yplk1cn/F6slLOnc10lY9UmxjDxcouwwOFpGw+WqY1MvWi7onXHgARTVgUyB9Oj8PImxhaZxfg8f6RU+Vn9daHbLXDFLaP6I17fsX+sehy3+M511NjwjNDhWWsn7ZTVBD0b7VsZhRjJHWmZP0/F59/NooHceg21q5arHcSV+mkqMgRrLftAu85fFrLuSv7WzUhtV/kgQA2rapphoIZ92uQ5X6j83VX/8Fbq7OJJor2H1qIi4J/xjb+9YVTs66N3xsQcs7pw==", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVANHJCdqUmqruWwZcDUcMsb3NkfDFMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYyMVoXDTIzMTEyODIzNDYyMVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4j/K+/+0k+Xdq74ZUrnobygOfVhQf9j3CdOowzSWiozrVwTFwLrnHh1GolLHr/K0x8SDTbN9UxZyetITX4/ep0OCxXJWYYx5W4/WPaGM1L/VEPpOwjSpYjdFeCCe/BgS5IeKwQjUbOwhIVoaCegN3XZCqaWRxjXBA0G/rXLDnDZx3bo/oOrTZ63novdOgS+CZU3N7Q3g7XFY54yi53c42gklVrBee6F6LtwGh7xBFsfhsLxLRCxsxKbo1LDbC+EvbnqxhAp2LHpB7zDAFSqJTLwK6Qfccx7lhvCla1vt98UBe40QtHph661fVf9VNKIomkVwWvWF9TuC6Y5jaoI5TAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTv8ose20rtD9WR6ezCJ8Cze6qhhzAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAdGKUEsaP7cju4Eo7oqwel6AOle4Tn5ILx/dM2fcK49AvPbpmNgT+m3OnfulQV+T6tmNb7GfrdtbOMIQpnlaYvbE2VF43JsXOX6VDiP6kxQaiKrB8vGO7JqcApXcYMKMiCQAHOTc4h1jdGG9zWJABkxEmE7OMU//7iwG7BTr+wYxJrY/lKa1D7xajqo6m7md+csXTMRJzbL4WLILOcrNmcNdu6zVOPOfwxc7nBRYv8nUuUUPF2i0Z7jmfbLmFGEMfZz3sR8nRF6tI7Qbq/9/x9uaiWXYW6v4exrkVgQVTr3F40t6k3yuPhukeKLm1RivFRCQJpZHUDclgCZg9ht8WQQ==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.017179, + "t": 0.026404, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011413 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.026412 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.044878 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.539969, + "test_start_time": "2023-11-27 23:46:21", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json new file mode 100644 index 0000000000..f3a22876e9 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json @@ -0,0 +1,326 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json new file mode 100644 index 0000000000..18d9132e01 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": { + "6": true + }, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json new file mode 100644 index 0000000000..b228262a93 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json @@ -0,0 +1,824 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 23:46:23", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011314, + "t": 0.01665, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016664, + "t": 0.016664, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.016749, + "t": 0.016757, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016759, + "t": 0.023712, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.023803, + "t": 0.023804, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.023805, + "t": 0.024555, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025418, + "t": 0.025425, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025428, + "t": 0.025428, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025447, + "t": 0.025447, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.025495, + "t": 0.025525, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.025504, + "t": 0.031152, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.031196, + "t": 0.031196, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.031222, + "t": 0.031229, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.031236, + "t": 0.031236, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.043098, + "t": 0.048685, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.048698, + "t": 0.048698, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.048776, + "t": 0.048781, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.043103, + "t": 0.049183, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.0492, + "t": 0.0492, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 303, + "operation": "write", + "proto": "tcp", + "t0": 0.049237, + "t": 0.049272, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.049234, + "t": 0.052046, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.052063, + "t": 0.052063, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.052077, + "t": 0.052077, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.048783, + "t": 0.052166, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.05217, + "t": 0.05217, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.052196, + "t": 0.052196, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000056, + "t": 0.000056, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000092, + "t": 0.000097, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000153, + "t": 0.000178, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000104, + "t": 0.005113, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000183, + "t": 0.00547, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.0055, + "t": 0.0055, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.031348, + "t": 0.031348, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031375, + "t": 0.031391, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031408, + "t": 0.031425, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.031395, + "t": 0.037271, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.031429, + "t": 0.037752, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.037785, + "t": 0.037785, + "transaction_id": 5 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "QVOBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000066, + "t": 0.00512, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "RkqBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000107, + "t": 0.005474, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000066, + "t": 0.005831, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "Ks6BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.031355, + "t": 0.037274, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "Iy6BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.03137, + "t": 0.037758, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.031275, + "t": 0.037877, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": "connection_reset", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "https://bit.ly/32447" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "https://bit.ly/32447", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 0, + "headers_list": [], + "headers": {} + }, + "t0": 0.0492, + "t": 0.052063, + "tags": [], + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:23 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:23 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.025447, + "t": 0.031196, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011314, + "t": 0.01665, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.043098, + "t": 0.048685, + "tags": [], + "transaction_id": 7 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.043103, + "t": 0.049183, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbDCCAlSgAwIBAgIVALIOusKsYnaK0uqTkK3zIPrGyoM6MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYyM1oXDTIzMTEyODAwNDYyM1owKTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEPMA0GA1UEAxMGYml0Lmx5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1qHLaT6A8JkA4mqnFI0CHWcpELZqdi191Lmu2iwOL/V7r+wADEXSUvtNGCdv6V+2xBycA549OtDjFnIpxdPZ4ctkc2C8y0O35BBZBhm9DSyqFAULdLYWEKq2kAlJc59kBgXji0G7JfZBFSycsT35W5egpoqbS/AjnUpMKq/z7ics40sDWkpCB8n8zV67mBsSvxmto+9e78hwpt1Gh9H4XT+C7vOSfdkRFxPzdm57Th03rkxRJ3sHmlGc0gr7yu6S6Hy/9PlfqNEPchs9fxxjB/WqoP524pEvCy1wGkf1SjqC/kAHQsNhWYTnxt4H0bYQMfcmSPc1YKRH7RhkZdAe3QIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTGX5C9MPRuqzteG5biquQU94E2FTAfBgNVHSMEGDAWgBTiy8FRIk3P3WOQIsMgkdhYrYEWLjAcBgNVHREEFTATggZiaXQubHmCCWJpdGx5LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAErpNYOSzVpqmMKmiCIvhHxXVvaZsJOhYvtI7EZz8zVVqDsR99kjRCAA2/XMju36t5AYvV2FcUMvFGb6/2NzdWGGMSGc91z8JwGeYlTj6O8Vhoc1aqdJoz1frbhilDjjtSHSXvFVQ6VxLBTaPjg8lDWg+VDcOsd8XSmVLBXgedJahug0zWwWZG9fuvfOkK5Pv0du0+eoDUg5K07TsTaXxc/myyusaYkLHX42SjzoGvM437hMbUhTh8omqo7ds4P2YY1yTkA58WsERcDBeRFDPUBRhmk1mhfxXvox4SVjWQLDCIDZfF0aTP4cpRYjpTgDRJIwVSnN6EZKZmdnqy+sMJw==", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUEOdiVm5i+l/ufznnSbAkyKTADRswDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjIyWhcNMjMxMTI4MjM0NjIyWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ27VKiKeg6t7X7j9Ihqymn5vPxR9HS05HcptyPR3NSNoIFMz/4QjGjvScjZCcBuXjQWcOqIuI+o7c0Q2baSUDUNIPzjvm7coYuIV52EnvGr4V6vaIQro/VNHx9il9PA6u4QMrUhu7/Voc42oxUrXh7FrX6bvHROrKYmnJcFGr8dmPLprzAOQSqzjNT3JZnxNwpNuty7SoOuw/0asL09Pm38r2x8BI+OOdBmmRfVAf+28qSE8u7vBr3z+bG7hBzZBPLEmJJHE3XvMe3M92xJmQcbnnzQQlPXyMjlvBMkacNNtnmLanJ+bMKTk0ZS0ZJzm/Z+eiqUMKIc7RmKWlRH61ECAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOLLwVEiTc/dY5AiwyCR2FitgRYuMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCHXLKPFVt7im9DDiz7nRh2p6QTSOgpXoabaxGxr1drzDlqp198ifpFzXP8xJaSsuI20QXypbHVEtZ9mWF2MN72F1sTQhlbGKUfKvPCUBY18SDxeELEYiPXPp/VAUwUFqtgqdqH/DZxYFxi8IeQSUwTdS7a8bCYYXxJZum5Y1aFpJZ6uZGGM7/pqHLO1/X54glq/XupjNKHptiKR3+VkHHcA8makuRc87GIbPPQuJGuikh/oOjelK9t/XvWsHzsdJ7/BZrVcLJ0+KizTbFpCC9byKR/qweTtZ8gwE+GK4ztvocAmiiZOUpRISYLAvivxAWGhIQgMZk6R/9BADpJMc9K", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.016664, + "t": 0.025428, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.048698, + "t": 0.05217, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011257 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.025437 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.043062 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.049191 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.538285, + "test_start_time": "2023-11-27 23:46:23", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json new file mode 100644 index 0000000000..1013c4f99b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json @@ -0,0 +1,369 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "connection_reset", + "HTTPResponseStatusCode": 0, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json new file mode 100644 index 0000000000..b09118c64d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json new file mode 100644 index 0000000000..7d24645494 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json @@ -0,0 +1,700 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 23:46:24", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010768, + "t": 0.016084, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.0161, + "t": 0.0161, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.016189, + "t": 0.016199, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016201, + "t": 0.024479, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024571, + "t": 0.024572, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 818, + "operation": "read", + "proto": "tcp", + "t0": 0.024573, + "t": 0.024591, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025475, + "t": 0.025482, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025485, + "t": 0.025485, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025506, + "t": 0.025506, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.025554, + "t": 0.025585, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.025549, + "t": 0.031549, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.031581, + "t": 0.031581, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.03161, + "t": 0.031618, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2415, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.031627, + "t": 0.031627, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.043847, + "t": 0.050036, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.050049, + "t": 0.050049, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.050126, + "t": 0.050131, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.050133, + "t": 0.05328, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.053286, + "t": 0.053286, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.053309, + "t": 0.053309, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000084, + "t": 0.000084, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000116, + "t": 0.000136, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000147, + "t": 0.000152, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000141, + "t": 0.006224, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000157, + "t": 0.006464, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006494, + "t": 0.006494, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.03165, + "t": 0.03165, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031684, + "t": 0.031689, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031762, + "t": 0.031777, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.031694, + "t": 0.037904, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.031781, + "t": 0.038623, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.038646, + "t": 0.038646, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000076, + "t": 0.005761, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "xh+BAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00009, + "t": 0.006229, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "CpKBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000112, + "t": 0.006473, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.031657, + "t": 0.037079, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "3ueBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.031658, + "t": 0.037909, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "pJWBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.031738, + "t": 0.038627, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:24 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:24 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.025506, + "t": 0.031581, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010768, + "t": 0.016084, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.043847, + "t": 0.050036, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbDCCAlSgAwIBAgIVAN1nNk51OJRvctBTJUks3zMjtwoeMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYyNFoXDTIzMTEyODAwNDYyNFowKTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEPMA0GA1UEAxMGYml0Lmx5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4FlNXcTHcdiHGT/DBEKYG81sSJT2XBRWMYMGP1RXhGLfC6dluAqqFja04GffGuevgZ91avX7HP8sYChOKoLJXFo50/GCkAz/l7BLjF1kGJnMW1yOFkpWU6hQtX9G5cieutAsKqUNQiVD+zZStOIpNCuHG76PRIw1yOOGc0himvtuBXR3g9NIxDSPuyQBaY0i4eK1kV9JdREBNVsSrqsPV3a/I3lYZjFuWeDyynlPK2YyuWjotlGpd8YUaejz0GWnxZmvg7hIUrkuLzcyiG1dJZeOa8+GLAeStGrLxEgdpDSN3Os//JrBwM2X3iZdYpurkIbh7ZH3uPASNYbEcPzSawIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRGbq+RwiQIJaGMTWa7zdgWTJRS3DAfBgNVHSMEGDAWgBTW+VQ8BliK1J7D8RfDs87KNkeFJDAcBgNVHREEFTATggZiaXQubHmCCWJpdGx5LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAX0EpNLcHbOdhGg4jLvLenDtwZO0A1z+a5thSfpdtRlueogZ4w9ezU4k8/tKeUnTXmmKfMJUcN8h3XZUzuw/DXhsm883QxUEVEy1EBO53jR3CT+xLhqPNH5+2vs/GJ1JvWYaC9eq7z7EmqMgynhhlUueKi+H6g375JY8SxctV0ULt4n93vuCzv0wWuxVuk8jiuN0v6dihRBNtf1L04foXHhscpwQ0/VCXLft0vQvrWHMCw5jbQEoMU/obwG2NiDRtTB2ij8LzVdlzsQToCKSF8xAQkDIARQgYSrqm1MiERHn+Bfqqd85fdTLVjiem67jnpl3brRh6UT0C+81nP5M3RA==", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAMh73Ms1dMEBdexa61FSKnIbi3iaMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYyM1oXDTIzMTEyODIzNDYyM1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP4R5/FQF5phud256woNsXEG9zCNmOaHU+hFulPoUEUPPNidazX8yV3apDncTE29pi3qIDVIZCsDqmkuEKdidrgNW6mL6efxp41xpa1uz5rwh6XCm5A7QO+TwNAfuNhwYuYaEpxX/0AkKHCVjXX6AeYklzQdKzBpzuRER/JJHe5XVco0E2wcEW5SP+AVjML/gl3GdId6gaVrqR44l3jEBG0wVV/7OyGAmN1GIRWzhPLgwP6PMYk+WWWt8GI2ziW6I7E9YrcndkIvArXyk+Ql7Rs4f7qCOWQzhtIAE4HHoDMA2u11tkm+EvDtl5adkZfDw8KuQkn4OZm34HEopuYAG9AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTW+VQ8BliK1J7D8RfDs87KNkeFJDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAzt6ag0AB1NSfJXfZgrzIgYXEXCLpMsWpgb8K7hMFoQoe0YTmgvzzLuEH+nMuADDelq13lIgfNIWtGtbnosRuEFbzUViu7R/6dvBSnrTOaqsaNrQWLXzAI+XB1nVyM9t1Wp5nnqxQSLkMcVvhlJEADYMxv3bSUGt6Z9R2Kz0aY64Pb16mfKbTeixSgTN3lU8mxIZayeKoxeNe9SS7rf3/yb/RPme9Pnq2YmPKqGJ4IySlbkGtwkuusC6wj2o8DJSkcKrJSuDp5VrnQ2T9ejcJvlkFIDVabftDIGahjBp3O+p3lj5ZeK2PP6X1nHWnLTKs4/NMMIjp6ZPI8900Sj70ZQ==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.0161, + "t": 0.025485, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.050049, + "t": 0.053286, + "tags": [], + "tls_version": "", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.010713 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.025493 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.043812 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.539247, + "test_start_time": "2023-11-27 23:46:24", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json new file mode 100644 index 0000000000..c8f36a7a8a --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json @@ -0,0 +1,326 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json new file mode 100644 index 0000000000..18d9132e01 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": { + "6": true + }, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json new file mode 100644 index 0000000000..f49873bbf9 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json @@ -0,0 +1,824 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 23:46:26", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011104, + "t": 0.016802, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016817, + "t": 0.016817, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.016907, + "t": 0.016915, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016921, + "t": 0.024701, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024796, + "t": 0.024797, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.024798, + "t": 0.024814, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025671, + "t": 0.025677, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.02568, + "t": 0.02568, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025699, + "t": 0.025699, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.025752, + "t": 0.025776, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.025738, + "t": 0.031536, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.031571, + "t": 0.031571, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.031604, + "t": 0.031609, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.031616, + "t": 0.031616, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.042637, + "t": 0.047743, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.047757, + "t": 0.047757, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 303, + "operation": "write", + "proto": "tcp", + "t0": 0.047798, + "t": 0.047824, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.042627, + "t": 0.047874, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.047886, + "t": 0.047886, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.047967, + "t": 0.047975, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.047795, + "t": 0.051696, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.051728, + "t": 0.051728, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.051743, + "t": 0.051743, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.047976, + "t": 0.051815, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.051819, + "t": 0.051819, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.051837, + "t": 0.051837, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000061, + "t": 0.000061, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000094, + "t": 0.000098, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000126, + "t": 0.00013, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000103, + "t": 0.005027, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000134, + "t": 0.006095, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006122, + "t": 0.006122, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.031662, + "t": 0.031662, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031691, + "t": 0.031694, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031707, + "t": 0.031724, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.031698, + "t": 0.037295, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.03173, + "t": 0.038487, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.038516, + "t": 0.038516, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000119, + "t": 0.005856, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "KVCBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000069, + "t": 0.005039, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "3rWBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000107, + "t": 0.006099, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.031662, + "t": 0.038264, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "l3uBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.031669, + "t": 0.0373, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "gC2BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.031687, + "t": 0.038494, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": "eof_error", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "https://bit.ly/32447" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "https://bit.ly/32447", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 0, + "headers_list": [], + "headers": {} + }, + "t0": 0.047757, + "t": 0.051728, + "tags": [], + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:26 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:26 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.025699, + "t": 0.031571, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011104, + "t": 0.016802, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.042637, + "t": 0.047743, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.042627, + "t": 0.047874, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbDCCAlSgAwIBAgIVAITUrcDbElCUsKo6YXPhe2KMvla2MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYyNloXDTIzMTEyODAwNDYyNlowKTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEPMA0GA1UEAxMGYml0Lmx5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt2FQFS/S55hEgJGyNfcgWwBD3/ax+UZZZjPkYlaSn5ITllD/Q3hP4yqjATQu2BNCM5FQ5c7ujZk9kRxQzYWHWB4j/UnblRgqjwUngw06AzSR8a9E3mtGfC02DdjSQmsifMqH24qw+iBgCkcz7wKFi4twP+xxf/vY9OecH2L8qRs24iR11TKGhbtxYSild02l+hgdEx8T07fSgBHKOSOl/y+bOhz1urJ0ZMf4PJRIAzyJWAg6HU/U5QJdETTr1+cQsG3VJQlxjiONzP8H6Jf2U2O9wsAAPtVJ3oAaTngKDLr8uDgiYCy7u8OlZHD12gomzZqEqWYWwaaX0bKg+raMpwIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQjC+gZk/fO5ijBOIb4vlIARXu0AzAfBgNVHSMEGDAWgBRM7ASyIIUD2r7QpDlE/GcqW+1giTAcBgNVHREEFTATggZiaXQubHmCCWJpdGx5LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAHw3wLvfJBWQNXb7vV+kTznERg+JAHV7w0HfKVbrANnckMHgPvEnrG28iXoVPRQZNu3V0EYFSY5Aw6IuzOMENO/KRTm3QEW/TIiPEOShmwVAblymxW6iwAbdV/ADFPyBlkuPgvhE59xe14GEq0GRXaHs/+Ze2+9XS7sW3h/W+hP56doT9cbNyI5u2tQ0hqvWAiIbnwHeUodT3YNQmOIorJrQuggH5Tx0l79ClJ6lPzaVyv6mG6tKUBk68HEjKKcb4cv0DGTo7Lbr716N0BrtTIi9AJPsH+/4RGNjg49WaPC13w6UcwBWqs4gOoerSKzj6oQGs8IppXyHLY6HkXHipKw==", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUCZWPNTeEyyBOEvMOv894bdJRQzowDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjI1WhcNMjMxMTI4MjM0NjI1WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALul5yYgwXZAa5rZFooqoXi60s6KKl9Oipx1/Uuk2YdWsLEZxtEszn34K0AMDP6g6Sr0RIBHj0I6U/ZpFpffKc6VQEfP9j5mUiwzevJCrDn2eJKPYRJ2IUM02bXqObKTdw+gxNF5UjgPjHOcKpgltmkMevo1jZoWOzDzl3j9pzhbrRBaBGrVolnoT+3Lfs0ng/ZOZULPVNVLWRVnTaH2hIS1fCW1y4NUDi2bFyelytXDi94pjAukCV/clj+CZL1yO6qBS7kzbTeTRPLllRMz0Pi/zMK6tmvZdLa23Qw/60gv++RpX6r/22t1BykGbwKORbmx/TWIghnItD5O4gbdVKMCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEzsBLIghQPavtCkOUT8Zypb7WCJMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAPEiXV6L2QnGD6FMUJ5YzjQ3Yw1s3EV37fvRcSHszkK3oTrXnHzBYqb75yphxLkHhHe+q6a2IZBFCulc0L9gunJH6D08wKmZhd+dFak7x/Xoeh7e3F4nxmsJSM6r2JRH3Ew7ZSFZen6UQwRLc7dp0epr8TSMFCbmGDvOmc6svSyNOCGc1eA8sQ2KGxtsglnKUdHTv1rXb/QVEBMf6mYRPJS7HmwGHjPMFE+hodKm5A4y16kXgeEaLQLlPlVoSJgyy7guhpY0f8DN66/XSZu3YlAH85J+1SqLBK2M5DnVVpEzmq5RjIr+az3uESgMI3ciMYD99fHXs7bTOqeaEybVhM", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.016817, + "t": 0.02568, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "eof_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.047886, + "t": 0.051819, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011048 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.025689 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.042594 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.047749 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.539088, + "test_start_time": "2023-11-27 23:46:26", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json new file mode 100644 index 0000000000..062b69deca --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json @@ -0,0 +1,369 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "eof_error", + "HTTPResponseStatusCode": 0, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json new file mode 100644 index 0000000000..b09118c64d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json new file mode 100644 index 0000000000..56e57822b7 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json @@ -0,0 +1,700 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 23:46:27", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011168, + "t": 0.017238, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017257, + "t": 0.017257, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017349, + "t": 0.017359, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017362, + "t": 0.024541, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024646, + "t": 0.024647, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.024649, + "t": 0.024782, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025676, + "t": 0.025684, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025686, + "t": 0.025686, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025705, + "t": 0.025705, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.025756, + "t": 0.025786, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.025747, + "t": 0.031501, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.03153, + "t": 0.03153, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.031557, + "t": 0.031562, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2414, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.03157, + "t": 0.03157, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.042725, + "t": 0.048184, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.048195, + "t": 0.048195, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.04827, + "t": 0.048277, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.048279, + "t": 0.052019, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.052023, + "t": 0.052023, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.052043, + "t": 0.052043, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00006, + "t": 0.00006, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000095, + "t": 0.000117, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000119, + "t": 0.000122, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000122, + "t": 0.005217, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000126, + "t": 0.006552, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006578, + "t": 0.006578, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.031603, + "t": 0.031603, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031633, + "t": 0.031649, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.031651, + "t": 0.031654, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.031654, + "t": 0.037377, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.031674, + "t": 0.038098, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.038119, + "t": 0.038119, + "transaction_id": 5 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000068, + "t": 0.005943, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "epSBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000068, + "t": 0.005224, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "JveBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.0001, + "t": 0.006556, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.031598, + "t": 0.037746, + "tags": [], + "transaction_id": 4 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "lQuBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.03161, + "t": 0.037383, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "20iBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.031629, + "t": 0.038102, + "tags": [], + "transaction_id": 5 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:27 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:27 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.025705, + "t": 0.03153, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011168, + "t": 0.017238, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.042725, + "t": 0.048184, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUHF7r4X9UBCeYKFfA+VfFku+lwvkwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjI3WhcNMjMxMTI4MDA0NjI3WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXkRSeIQT730cgxz5RT+ZNorcGr/RPQTOTQa5OYGRX43ugVUWLKBYkW7DSNum/IftjND3AtZdvIOlJSWVG/R8TEHctN8EGQwKcGJZi8qBJXeBorn+3YmUxaAqUvSpRfq8y8eIu8wj6M6X3B4Lwods0/Vp1pNU98di1OOWQquJLnyot6yLRwldwxR+deOC663UEshNJooWMVTRywdFbumEfrThqUGPjP9VevWa5zal/osGPsY0tUbSLJPMVDtwYKlHOj1zqZcK3ItfFF4A0fYO5roIV+AfsK3OVHkvjRP1D1Xku5HXMjLSyGSenm0sOSgLdlbLCff/IktQcpj2k3imJAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFHalqcZUuG1VrSKBIDqHNI5A83ZfMB8GA1UdIwQYMBaAFJgk4KrnJilJhfvJHBEC2q+/xiPkMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCEojzgF/SiH31rC0scDeRPlXGKPOPtTODquuOk7uE2irnu0bmRmR76qWYBGBiTnN5iplRJ73nOXDATvZID+0sQSOe44fKHHP/fMI6xREseMfJb94LWtiKLnVhY3srf/A+8X2b35erRbX8su82oVOlcZTJxzvqkLHrc9isXgw4idHhwGwE4okM4fkMGcC8CgaxrVo/5gKffKdc/vFq3MmcVxI3+0uXyDUJ/msdNMms6jc5pSgYpxGgyTOEBfyrcGdjzlVOPf8y+ewmAtUyxSsbmT6RD2wd0R/pg9bbxv9jYLyHWaqLZTsWOZeYywck2SO7rEEGLso/GB8lPkBScUz+M", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAMEVxS0X4lWALbt32hxXaWWA2TaZMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDYyNloXDTIzMTEyODIzNDYyNlowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuMSkOXKbp+7t6WDUy6lOp5YNv/ELs8N0s4kVGKJfZLJkGE4+AJVycfMcr2KeWJZquLm+X8DkMljoHtv9lTX4dRNNPXMSauc0lMC+aWirfuTi5CoCEV/rAKlp0GsUOpXmDVKaF3tNInsuD02mCRnswMcSTq7nwDdXY5dwBvkjZQEmb7FX8F5Cnz1Bdw0uo//YDPg7Sz+VuXeAqDj0qglfOKS92eFzWPWHSSSZyIx8+SoGaO4iMXpbViPUH+63WXXPf0H4SUWsX8H2wOpqssZAQxOB9RMxWJIfe6eo6c6QW+npZLCA2aSxq8KdRfj06hR4TRPbJ0yz1MeBnU64WxMSXAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSYJOCq5yYpSYX7yRwRAtqvv8Yj5DAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEApy/WDB9Z0G91qg4g3Myk/QrCBagwFvOzQr8XJuKzDYBNvtVqjM2l5EaU7e2PXRgc2nDkFR1r+eTFB4Zy2o2HjpG28uts6HH6OQfBTs0R7Q3vuk27IlLuXqEEoumSNDmXRGjginu0K8/4VIrfPif5rDW49ThfgMdWYfktsWBIhsBwLrTUGOGT6XDfdTuBfywjzkIDQjoXm1QXHNUcqAvRp813qcAVtYNbvrUE8cFeqDD76zKQP947czQUOEJgvbi54tWDyhhjxCTVDRUf5Kte1MMab+g7saw+J6bBP95KP33LMOU5vSwaicrpFRnxJadb7M3qQlRX3nseowNpW7kGuA==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.017257, + "t": 0.025686, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "eof_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.048195, + "t": 0.052023, + "tags": [], + "tls_version": "", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011128 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.025696 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.042698 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.538665, + "test_start_time": "2023-11-27 23:46:27", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json new file mode 100644 index 0000000000..49c9fa9ebf --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json @@ -0,0 +1,326 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json new file mode 100644 index 0000000000..067dafae93 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json new file mode 100644 index 0000000000..bc0049c7b4 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json @@ -0,0 +1,647 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 23:46:25", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011819, + "t": 0.016917, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016931, + "t": 0.016931, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017022, + "t": 0.017031, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017033, + "t": 0.025059, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025152, + "t": 0.025153, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.025154, + "t": 0.025654, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026533, + "t": 0.02654, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026542, + "t": 0.026542, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026561, + "t": 0.026561, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.026607, + "t": 0.026636, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.026641, + "t": 0.032019, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032048, + "t": 0.032048, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032071, + "t": 0.032075, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2414, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032082, + "t": 0.032082, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000059, + "t": 0.000059, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000095, + "t": 0.000101, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000132, + "t": 0.000151, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000163, + "t": 0.005851, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000109, + "t": 0.006217, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.00624, + "t": 0.00624, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.032154, + "t": 0.032154, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032185, + "t": 0.032199, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032185, + "t": 0.0322, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032225, + "t": 0.035854, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032223, + "t": 0.036457, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.036468, + "t": 0.036468, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "o76BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.035861, + "t": 0.038254, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "2FCBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.036468, + "t": 0.038497, + "tags": [], + "transaction_id": 4 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000072, + "t": 0.005994, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "/+eBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000111, + "t": 0.005854, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "amqBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000069, + "t": 0.00622, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "getaddrinfo", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032164, + "t": 0.035619, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "o76BAwABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032162, + "t": 0.035857, + "tags": [], + "transaction_id": 4 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "2FCBAwABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032165, + "t": 0.036461, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:25 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:25 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.026561, + "t": 0.032048, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011819, + "t": 0.016917, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbDCCAlSgAwIBAgIVAKcti1+qb2tUqyEwItm8Kj67DZitMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYyNVoXDTIzMTEyODAwNDYyNVowKTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEPMA0GA1UEAxMGYml0Lmx5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA05gOtgmeT5wVQGxZfjfe3rjywngur89ZE4yXAn6g521v6o0XoEBBd9QW7ufJGJunbJxVf85Zoss4Jk60/77v5DpE4l34CKhDlr9mQkw3tDK6wbqOmciYlCDR2MspT9ooM3CGCWM8t2DZoB/d1p4S6IXNX7we/Gksz69L5X1M/zlXdyXRfFEyCIvKBLGlEGSy1+/IbdsjwTDFakahrr/kEmmAh2uxFXO67mjwt3VMqv9+L7CuhZ+vsMQEEWEu6B3vr3OZmTxYqXqCk7BAhBnKTGe5G6j9j3fhBJbzdHa7pqR6euwvQF9gqrtmSG49xGP4hwKkcNulW0LlF01xDFvbkwIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRE/3SqG9U0zKisbtEUfEBrZSMWwzAfBgNVHSMEGDAWgBSgb23oSMPaslZUZyiLLOE7uIMrRTAcBgNVHREEFTATggZiaXQubHmCCWJpdGx5LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAaSS9lZ/u6AMqbiG4xcEKBJw1gXCS8okMfpU8//Cvw9UvfqUQmVNZ9W0FKpXoyJ7RrsEmyueWUUxlpm/AdSfJZBCEzaDcNwXB6wcfO6LCRh0eo2C2Gba0Q2t7qq+0DtqyjQhpx/h15Y23cWuurtJ8q7pbZFvIPD0tVQ2lTe6cIDRMU1SC3flfwkIY0To8qKsfUh8Vw13abQQTh2y4TC7RVbVKXxzLnWi6HymaqLgigDL0ZR2amsYPOiwhXsDxwKAZF38QDQjbZfodLsyxC3nG1Wlju2ZQxq2OgZpkufztYZFwqgJuIgb3k1xv1h4e6GTc7+PkPKMICfJl0hVDIMLgbA==", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUOqz77y7qrkEqlVSWdVh8qQLCDzkwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjI0WhcNMjMxMTI4MjM0NjI0WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/jxJHK+cpWGGrb3sLsBvXz7d5m9VdpO5R0p470ntBLE0s57pUltozzgiBfqes/vZuWjhI17+Vd+NXV1DbM5pbE1n/vO464Fb/ndOcCvJJFVCO5pLc9RFygAJbq5ZciHSFFHw9I9sUAtYLM6a1b/O4dxUwEM1yZSNvNojilZR08p5lfbDwS9WdymVX596K+j1fwlUXvgFqE54T7304S+PMCUziWE6zlaQTEjrJkW1EtRNtRZhEF0Uj6cIlJnAw3PhSvd6dkzAyh/cDvvkNN1QUxQn350pNue0c65BpjcF3Uu+QEDPM3fhtR1yd1gbUobxiFHAN20cpsXElTT/qa5CkCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKBvbehIw9qyVlRnKIss4Tu4gytFMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAnX4lwUmeEhvwqI5YJku5sqQ5ni/UekVM3m0pGI+psP2dOUI6TjkQcbktNsOKWiqDWLL2kMGjIrroqUCCW3tA4NOlQ9POLRZ601C3UsbEEJfBxmTIHiV3OAaPBMnbqv0rsnRT52QPVoeKgESBncgwISmt79VKQybxdgc2JPeZEpTZoF21AyHMOBj0ISfjYq88GsSY893Lf6+yKLHSHY+7n1JYOu02mIkBTIok4HYQJOfZrexNyiMmCyGccM2OwPp3TvxhPjmFSYxuLlaG8gLRqW7rM25+f//Fc8JEbyqlOkJle+9mwmaekTIdoQDLMiVd+q8vnDk/LSn3Auvv9OUzA", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.016931, + "t": 0.026542, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011762 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.026552 + }, + { + "msg": "create with []", + "t": 0.04475 + } + ], + "control_failure": null, + "x_dns_flags": 2, + "dns_experiment_failure": null, + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 1, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.536906, + "test_start_time": "2023-11-27 23:46:25", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json new file mode 100644 index 0000000000..3b200cb5ea --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json @@ -0,0 +1,245 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json new file mode 100644 index 0000000000..18d9132e01 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": { + "6": true + }, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json new file mode 100644 index 0000000000..78946fb991 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json @@ -0,0 +1,824 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 23:46:28", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011467, + "t": 0.016922, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016936, + "t": 0.016936, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017024, + "t": 0.017033, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017036, + "t": 0.024952, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025041, + "t": 0.025042, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.025043, + "t": 0.025312, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026252, + "t": 0.026261, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026264, + "t": 0.026264, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026289, + "t": 0.026289, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.026349, + "t": 0.026375, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.026333, + "t": 0.032147, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032186, + "t": 0.032186, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032225, + "t": 0.03223, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032242, + "t": 0.032242, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.043733, + "t": 0.048838, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.048852, + "t": 0.048852, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.048927, + "t": 0.048935, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.043745, + "t": 0.049689, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.049704, + "t": 0.049704, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 303, + "operation": "write", + "proto": "tcp", + "t0": 0.049754, + "t": 0.049782, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "generic_timeout_error", + "operation": "read", + "proto": "tcp", + "t0": 0.048936, + "t": 10.048634, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 10.048663, + "t": 10.048663, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 10.048728, + "t": 10.048728, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.049739, + "t": 10.049509, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 10.049519, + "t": 10.049519, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 10.04954, + "t": 10.04954, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000061, + "t": 0.000061, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.0001, + "t": 0.000105, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000128, + "t": 0.000147, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000108, + "t": 0.005746, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.00015, + "t": 0.006106, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006143, + "t": 0.006143, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.032259, + "t": 0.032259, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032331, + "t": 0.032335, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032347, + "t": 0.032401, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032405, + "t": 0.037911, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.032339, + "t": 0.03899, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.039011, + "t": 0.039011, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "l8qBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000073, + "t": 0.00575, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "efOBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000109, + "t": 0.006112, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000068, + "t": 0.006227, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032321, + "t": 0.038751, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "tu2BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032273, + "t": 0.037914, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "RGmBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032308, + "t": 0.038993, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": "generic_timeout_error", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "https://bit.ly/32447" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "https://bit.ly/32447", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 0, + "headers_list": [], + "headers": {} + }, + "t0": 0.049704, + "t": 10.049519, + "tags": [], + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:28 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:28 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.026289, + "t": 0.032186, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011467, + "t": 0.016922, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.043733, + "t": 0.048838, + "tags": [], + "transaction_id": 7 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.043745, + "t": 0.049689, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbDCCAlSgAwIBAgIVAMXkCG908h9NGK8caaWTpyZdK3ssMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYyOFoXDTIzMTEyODAwNDYyOFowKTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEPMA0GA1UEAxMGYml0Lmx5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvR6BkCgv1xHTBb4EnZNDUDcKCs4DvWDYOSqJMDZz7CUNOUFrzJr2oY9PLmR1aZpnUcSumdzryiKMWTY9MhliilIyMyHhNop3/kIzjXBaSbDCrIa5yYNUVk/4K7RNG/5Btb/vU6w9/3/7JqYnKTVKmkUgvckoyqyiOcfdoOsS2zWjBpk+XqxVeX+MO0qgNV6MByHY9+CdSH7+6tsFBf9/4ort+WKAxYbOCR8vmzP4IXmMcBF29BVljhoVtHpZb9Wv+gtzE/AWX8ZtzkffgjFe5o+PQG8e8dXI7E3tlNJJpKcCcc893cGd6IJ/BFtxsWHT0QDWQxIVHzC2LmG3FzzrNwIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSvVo/THFpNJIdKD6OiZQbXqm3OezAfBgNVHSMEGDAWgBTxoXolm5n6H93vjVcFE+VWR1ixmzAcBgNVHREEFTATggZiaXQubHmCCWJpdGx5LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAtx2JLuICSH6oZu1omtmSu+Txnrx3cW2SWEJe/OeWRR+AeZLZVfpGTwY6P46zgX2dEBfZHAHfy8s2FJEKNPUrgfIo6IQlOgmW8+wjwchy39GkBYt7DY7pFpgv3D1/KnejUMfBIrmmRzMCkLleRMLaf/vhMHzSYPqtsx4170O5GW8nD6dEZ7x3J3aYDZTP+xFPulRTwW1oJeLY9c7na/IevHHTVLHQubTDAFt+YdlT14b7+2DyoDNvuSS25FNop5jAJTPzKrr5sL8Q1EZnJe78lNkcF1ttcsIUx81sZdnQmV8ugp7y7nvxI6P7BRoXQJidqF5mZKeNxUEOp8BnJNeAuw==", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUPzM8YWEr+R2K5730yJSNmQbkpj8wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjI3WhcNMjMxMTI4MjM0NjI3WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMYo5GtqlXRyDFNnR10Vs6hkfF1qejqgPTnMjGROuPh/Pw3cuOWFz70EZOOEDSgAb1KzaidqBdLFyoISEEgkibhqAkV2dmZyw+NyV9wWQ8sjFNrH8uhgibbQyNk0Rp5uaq9W82ilnhipTdKTz3D94U4byAxm/Qg7dy2lW/U02tnteavVA04f3V0GA/tvQrkl2FgkJ5BcG/FxAOPfVCF8TEAipCaKgL3FcYt1gI1H4KJeqAwpgG5Y9Fy+TjxE659vtpY3eXQiBTVQEgv6dBMmucTHL67MxUphfXjT47HyBJ2eixDSjyDmZ68JYPXQ3VoSD+NTJOIDBzA7nGmVvEbm+J8CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPGheiWbmfof3e+NVwUT5VZHWLGbMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQBJokSZKYhYg71+Y0EEbGl6qBkwoMjeDHn/ILcL64oRgGruMSacj8XVR4jMFM5qMO7tdig0+jmSCZUqBM5X4pU5uHhuLdXZZlzYv4vvLh08QwV3R6nQEV1YuNWBK/CVpFgv34eOpNVLO8+FZVJqQ61xynuxhn06Ig9ZlLHA30gLmvCM94UjSHbVELgsyWwTkr1O588E2d7j5zrhnVsruQJTPdZV4A0giUsGYpWVpR3H2au8gnsiXn6lIouTLP9cjv68MrgkN7uho25rJX38yshOq9e8ICalhMHKv1AnreoIBAFXcshcvLO4aRxjGIKBcFKq2Zo7HtRx4Ldi93hSuE1F", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.016936, + "t": 0.026264, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "generic_timeout_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.048852, + "t": 10.048663, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011414 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.026275 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.0437 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.049696 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 10.050149, + "test_start_time": "2023-11-27 23:46:28", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json new file mode 100644 index 0000000000..05cc3369ee --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json @@ -0,0 +1,369 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "generic_timeout_error", + "HTTPResponseStatusCode": 0, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json new file mode 100644 index 0000000000..829a0e97c7 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json new file mode 100644 index 0000000000..1346697cac --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json @@ -0,0 +1,927 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 23:46:38", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.03375, + "t": 0.039926, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.039941, + "t": 0.039941, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.040026, + "t": 0.040033, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.040035, + "t": 0.047715, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.047815, + "t": 0.047816, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 816, + "operation": "read", + "proto": "tcp", + "t0": 0.047817, + "t": 0.048072, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.048962, + "t": 0.04897, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.048973, + "t": 0.048973, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.048998, + "t": 0.048998, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.049048, + "t": 0.049073, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.049076, + "t": 0.054912, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.054947, + "t": 0.054947, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.054973, + "t": 0.054977, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.054984, + "t": 0.054984, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.066248, + "t": 0.072564, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.072578, + "t": 0.072578, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.072656, + "t": 0.072662, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.072664, + "t": 10.072409, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 10.072426, + "t": 10.072426, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 10.072472, + "t": 10.072472, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000121, + "t": 0.000121, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.006815, + "t": 0.012802, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.012815, + "t": 0.012815, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 279, + "operation": "write", + "proto": "tcp", + "t0": 0.012909, + "t": 0.012918, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.01292, + "t": 0.020598, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 1692, + "operation": "read", + "proto": "tcp", + "t0": 0.020696, + "t": 0.020698, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.021572, + "t": 0.02158, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.021582, + "t": 0.021582, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 384, + "operation": "write", + "proto": "tcp", + "t0": 0.021614, + "t": 0.021644, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 183, + "operation": "read", + "proto": "tcp", + "t0": 0.021612, + "t": 0.02731, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 384, + "operation": "write", + "proto": "tcp", + "t0": 0.027367, + "t": 0.027376, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 161, + "operation": "read", + "proto": "tcp", + "t0": 0.027349, + "t": 0.033552, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.033591, + "t": 0.033591, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.033596, + "t": 0.033631, + "transaction_id": 3 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "9.9.9.9", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.quad9.net", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000188, + "t": 0.006786, + "tags": [], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "9.9.9.9", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.006815, + "t": 0.012802, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "9.9.9.9:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbzCCAlegAwIBAgIVAKm2l9VS/ORZkGdEUtKS+trAlqEAMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDYzOFoXDTIzMTEyODAwNDYzOFowMDEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEWMBQGA1UEAxMNZG5zLnF1YWQ5Lm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOCTkHMAoyaspgtUf6MqVCYJelhBdbDkMIgJu6x0hT+BiZ0A8AgHJhU3jIEhSUAfL6U8s4lSiV3k+gSYJFZA8dnpz5hdkIEDB8sB9fKDuVC+IBkH3Ip3p2ikUJ4Tqar6Tju7MWehsylMgclDqWwU3Sw8W6FIQDpd0oP03BNAv2ZhtzpfPE36htms4jaka9PP2iEDEWuB7rjnlwcXUaD1bCenyuennH+hbccnXYjQVA3asZLo33RnDtWXByy1P5XAPDqx46S+b6o0bePFdeagRrRnTJHpDRIvuUvGcXxkU543jEeRm8GLZ4mN+/yQBK5J7BDFa1MOcEhbE43YbLdfX50CAwEAAaOBkDCBjTAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUAi3SOuEODzRbgamOEq2l4VTIDgEwHwYDVR0jBBgwFoAUSeEBadp4PDlWZtpmds1pm8nH3dcwGAYDVR0RBBEwD4INZG5zLnF1YWQ5Lm5ldDANBgkqhkiG9w0BAQsFAAOCAQEAeFWBj0ESEXWMvmfy1rZF3iPfT7TRs7CrTnaIQ4qAal0VQ9eGcbGbu9rHok6mLpakMkYYTsKUTpKWyAfxcOdXylOE+RQvcZCT5JcuUDGbVColjLC2Jg3L8/mahX4j8zazTZtJYB7dwqUoA8cQrWvoK9LbqhP6JFY/0MiEHmqlgHUcjeN1J1Wca9Ct3JtkN1uYF/ontRQu2qyUP3P7WThctgOd0AZCSMKSvNSHCvlJ3bIrFLZtwbAKCCf7z2NKkzBSAo/ixJ4arhwW0rNPmz3MJhg4TfbwrSKMIhV/gvy6xll9bSM+JvJRs+W1YEejcrSSE0o5+FfTMaMdw0XarkKvuw==", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUDety9nwRRRCPUvkMvCFmD0eiBZcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjM4WhcNMjMxMTI4MjM0NjM4WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKTWncRMC30CEccfLOg/q3Ko2QkHpHA2EbdWHtBWG0LRgJWrLMw136XuTlGXy1xLWqw3h8cAW8yFtQkYfcLFugirPp8pc+t0SNrt1zfitmA7JSEIjA+WOTF4FyItxvyLspKNijhWcwkh1RllSy0dCmKqOrHIKZoOfl9FV1UNbLKmUiFHXLTOuHwqedd09idxKPTn6Qbj9wVth441jeu9cRaRBFSK0iTpfEBujrkQUxQDbh7egKBWk4cI6+NSbaN+gKN0I7WHvCk6F0lmlYKASNkCWLkdvXYVS4BcOlVtYgYZ0Gb88T+WYItkzF8djehs6N99wOKPzKZz13hS85ieYI0CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEnhAWnaeDw5VmbaZnbNaZvJx93XMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAMOvm+M5MxLXcfEJZTIM3R5yq1yNvf8fQypU9JbJj2Z8UVgJpbKl9l5tGMQU5bNjYpmcMps+G5Qk7ovDPWHGcVvhtVHHaBnHTEoE2jdkmUDZ2MJNnUOIAv1wBq+E8/YiVzpwzzNsk9p54EqRJkAigFauJFUURqbSXUts8nw8S9rnl6Ih1VKTz+Yg6g52xWMdS7U0DCnr5mY1hZNm+6rcdui8JJITiRgZGx6v1s+3Cdfrd+3LmNr1g6Gclu0Ol8tbwz8MYv47JHbT7oPhRFaIp3LESP7Pj/c5cvv3vdDm6pCGvXbTaHW+L4hkVBlc8spZUw7fZpK5XZYDf7WjPHeJht", + "format": "base64" + } + ], + "server_name": "dns.quad9.net", + "t0": 0.012815, + "t": 0.021582, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000083, + "t": 0.000083, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000117, + "t": 0.000122, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000216, + "t": 0.00024, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.00017, + "t": 0.005728, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000246, + "t": 0.006659, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006689, + "t": 0.006689, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.055016, + "t": 0.055016, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.055048, + "t": 0.055052, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.055088, + "t": 0.055105, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.055057, + "t": 0.061029, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.055109, + "t": 0.061146, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.061169, + "t": 0.061169, + "transaction_id": 5 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000079, + "t": 0.005965, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "G9uBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000091, + "t": 0.005733, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "YXqBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000145, + "t": 0.006666, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "ZEGBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000139, + "t": 0.027353, + "tags": [], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "GESBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000128, + "t": 0.033575, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.055023, + "t": 0.060556, + "tags": [], + "transaction_id": 6 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "NLSBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.055025, + "t": 0.061032, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "/NuBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.055059, + "t": 0.061151, + "tags": [], + "transaction_id": 5 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 23:46:38 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 23:46:38 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.048998, + "t": 0.054947, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.03375, + "t": 0.039926, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.066248, + "t": 0.072564, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIULvB70gv1YAv8tMAedRUva1Mrq7IwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MjI0NjM4WhcNMjMxMTI4MDA0NjM4WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgk5BzAKMmrKYLVH+jKlQmCXpYQXWw5DCICbusdIU/gYmdAPAIByYVN4yBIUlAHy+lPLOJUold5PoEmCRWQPHZ6c+YXZCBAwfLAfXyg7lQviAZB9yKd6dopFCeE6mq+k47uzFnobMpTIHJQ6lsFN0sPFuhSEA6XdKD9NwTQL9mYbc6XzxN+obZrOI2pGvTz9ohAxFrge6455cHF1Gg9Wwnp8rnp5x/oW3HJ12I0FQN2rGS6N90Zw7VlwcstT+VwDw6seOkvm+qNG3jxXXmoEa0Z0yR6Q0SL7lLxnF8ZFOeN4xHkZvBi2eJjfv8kASuSewQxWtTDnBIWxON2Gy3X1+dAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAIt0jrhDg80W4GpjhKtpeFUyA4BMB8GA1UdIwQYMBaAFEnhAWnaeDw5VmbaZnbNaZvJx93XMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCjZErdidY/UoX5T6igcevVFbGwt00Tb+9NV2azvDazhm16fk8JjhrEeCjChv+X3+o6FQS1ci87AD4lKXGkM9mWfIqwzhvWMnni3kSeOdPu8NT+VB3nVpWIETiA7MOOF4flN/Izm1In+/UW48Z/mxBUHum1NfzpxLa4drdO4jBfXWHE0f5Syk+iMQAVYflV8Hv68mEpCRFGQEJJ/+pJPB0BD5PpLOs2zHvSbYV2K/WoplO703LdxnyHYY+96fG34+7vLeZeIGgLi5vP7fSGvbuxs59livHU7KI4UfFFpY2zgECTWM+IQccSRX4DdMV45Cak0N8+oRiamN2t4O1fr3Tr", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUDety9nwRRRCPUvkMvCFmD0eiBZcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjM4WhcNMjMxMTI4MjM0NjM4WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKTWncRMC30CEccfLOg/q3Ko2QkHpHA2EbdWHtBWG0LRgJWrLMw136XuTlGXy1xLWqw3h8cAW8yFtQkYfcLFugirPp8pc+t0SNrt1zfitmA7JSEIjA+WOTF4FyItxvyLspKNijhWcwkh1RllSy0dCmKqOrHIKZoOfl9FV1UNbLKmUiFHXLTOuHwqedd09idxKPTn6Qbj9wVth441jeu9cRaRBFSK0iTpfEBujrkQUxQDbh7egKBWk4cI6+NSbaN+gKN0I7WHvCk6F0lmlYKASNkCWLkdvXYVS4BcOlVtYgYZ0Gb88T+WYItkzF8djehs6N99wOKPzKZz13hS85ieYI0CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEnhAWnaeDw5VmbaZnbNaZvJx93XMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAMOvm+M5MxLXcfEJZTIM3R5yq1yNvf8fQypU9JbJj2Z8UVgJpbKl9l5tGMQU5bNjYpmcMps+G5Qk7ovDPWHGcVvhtVHHaBnHTEoE2jdkmUDZ2MJNnUOIAv1wBq+E8/YiVzpwzzNsk9p54EqRJkAigFauJFUURqbSXUts8nw8S9rnl6Ih1VKTz+Yg6g52xWMdS7U0DCnr5mY1hZNm+6rcdui8JJITiRgZGx6v1s+3Cdfrd+3LmNr1g6Gclu0Ol8tbwz8MYv47JHbT7oPhRFaIp3LESP7Pj/c5cvv3vdDm6pCGvXbTaHW+L4hkVBlc8spZUw7fZpK5XZYDf7WjPHeJht", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.039941, + "t": 0.048973, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "generic_timeout_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.072578, + "t": 10.072426, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:7}]", + "t": 0.033674 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.048984 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.06622 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 10.073048, + "test_start_time": "2023-11-27 23:46:38", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json new file mode 100644 index 0000000000..e7d44df0e5 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json @@ -0,0 +1,402 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "3": { + "DNSTransactionID": 3, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 6, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "4": { + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionID": 6, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json new file mode 100644 index 0000000000..9b9b50f27f --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json @@ -0,0 +1,21 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json new file mode 100644 index 0000000000..730c6d01de --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json @@ -0,0 +1,543 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:48", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011573, + "t": 0.016441, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.016458, + "t": 0.016458, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.016525, + "t": 0.016559, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.01161, + "t": 0.017276, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017292, + "t": 0.017292, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017396, + "t": 0.017407, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "read", + "proto": "tcp", + "t0": 0.016506, + "t": 0.0223, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.022342, + "t": 0.022342, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.02237, + "t": 0.02237, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.01741, + "t": 0.024704, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024798, + "t": 0.024799, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.0248, + "t": 0.024825, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.02573, + "t": 0.025738, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025741, + "t": 0.025741, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.025757, + "t": 0.025764, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.025771, + "t": 0.025771, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00006, + "t": 0.00006, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000098, + "t": 0.000104, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000159, + "t": 0.000183, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000188, + "t": 0.005611, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000157, + "t": 0.005984, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006008, + "t": 0.006008, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000086, + "t": 0.005868, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "PBKBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000133, + "t": 0.005618, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "xsSBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000069, + "t": 0.005989, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.016458, + "t": 0.022342, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011573, + "t": 0.016441, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.01161, + "t": 0.017276, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAPS48RU2Od/SrAvoNHgc/IUEE0HFMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDY0OFoXDTIzMTEyODAwNDY0OFowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtzEvKlz3J/HvWzqPKeNy5QNCtXr5slvNLwQWj2LBrwRlcq+8c4LcPdDdgDCU6nLhKsSOS2Mx7TzYZ7Q8e01dUi9Klvj4tfA66iU/jkYBN6IaNEqWwBe1wiVsLCphuUZ8BBKwDPEp34Ojh9uAXlPDqvIiTy2PEfumLkPJvLskB0ucAuzMdKHRK8jhDEVZLfKs+ETDMEFUF/zR3SgJB6frUYTVjEQoZ6gkYLmJSMFZ80kRmTDqSUlpbthHRGTyZVMYZdTW9acDkyaf0/vV0ND9kcWLxxZxkt38AZi219JjRzlhWL/q6uJJmc2/WeMQEzlTg6hgGPUiFLZbANB4TgUy3QIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRkk8mTEQOzc34jXrMnTlN3cuFZ5DAfBgNVHSMEGDAWgBSiWo/aFl0+kZOz+Sr5gp0G2mf7pzBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQAG6t007/LNCn/U7emt3ZDQvuEvbYmL1KqwFAh21PpmsFPCq47GZu+ogOBr7EcRjGpwTd15hJ2YgtE48e1HSdxG5xK6bF8bzRNSc61eL42O5wKmXy3QVnpfR5CyNl3wPed9h9JldkMdI0T8xmmz7jw+UHjxlgUKTrwf8PIR25T6QNyQw9IOLedmqTdbdWqxYgNo3fKCyZtis6rudH/bIwTuiGasIH3zPbdyxVawPAjpdHwA1wILl06O9aOOihALRgQA+l8K5GtbSZpjHHJzfAtLWPTpncI21Hd7HqCktZewlamaz3+Wsm1/7jXjHXt+NOR9tg3q4eW0DznTP6EUGDvP", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUWMAVPez0oVgKi0XBCoHqylKwCLUwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjQ4WhcNMjMxMTI4MjM0NjQ4WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM8EC+xw0xQLJi6jx8wVsLDf+vIRznhSbhGlH5nZCnE6d/OkyH4RqJjXRb+VbEzN3x7wFFWj6OcbrNXN9yNCXK908UDtFpqcp1Ify/DabhjgmBVwRRp+sddxWiIhgfHRbeWDb64xgArkwx1IF1wscpZ/GLWl/jF9k0OdPtfZGcK+xpBjHlRFDjySw+nSzJ2kRCHQbRNvRDUxsl3Sahc9SluU/mF2mxQtfYHmgsB08z70vLjezpwiEyKWXzvC3DDxnBgp518Oxd+/y/kVg0SEDx9utUR7sPimdiVQ30+Tbi2P5ixusx3WXYI4Ta2jrIKvbL2qac5iAvMEIJfolCH5VlcCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKJaj9oWXT6Rk7P5KvmCnQbaZ/unMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQBCgeUk8XG7nmUceeYSB1r42/XT2dXccMb9P5Oj4ToC+KtwiuoBtli/KhLIlxiOFkOdttG7Fght5v8gzzqX6goJnN/0jC7Lf38hJeX2n2H4kZjeFQ9DPn3kYPn5wAuYcpl6MGPuvbhdZJfcysU+m7PYCtxj0wuZzB72jkFYR02hExG/VTKJlyznQUvv76ZYCFLSfcOjT3Z0mXS/5nJExw/xkjdhXmPLoVOFfN8BTnv4QmHcUh+B9uoZOxEfdjt/B/wHMhw89UXDdDkVAjCMjRc0lFy0nslgQS21q2ue7qI29k+O5HIfO90xJpeW+JXAj8aYjpBx/X4JzoyLxjtIH3gJ", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.017292, + "t": 0.025741, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011526 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.016448 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.506516, + "test_start_time": "2023-11-27 23:46:48", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json new file mode 100644 index 0000000000..a794e33655 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json @@ -0,0 +1,213 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json new file mode 100644 index 0000000000..e53951b954 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json @@ -0,0 +1,23 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json new file mode 100644 index 0000000000..3b93f4ff33 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json @@ -0,0 +1,499 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:49", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011514, + "t": 0.016725, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016747, + "t": 0.016747, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016847, + "t": 0.016855, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016857, + "t": 0.024154, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1740, + "operation": "read", + "proto": "tcp", + "t0": 0.024254, + "t": 0.024255, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025143, + "t": 0.02515, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025153, + "t": 0.025153, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025173, + "t": 0.025173, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.025217, + "t": 0.025249, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1715, + "operation": "read", + "proto": "tcp", + "t0": 0.025252, + "t": 0.031843, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.031892, + "t": 0.031892, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.03191, + "t": 0.031917, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4031, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.031926, + "t": 0.031926, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00008, + "t": 0.00008, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000122, + "t": 0.000126, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000123, + "t": 0.000127, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.00013, + "t": 0.005546, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000145, + "t": 0.005678, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005717, + "t": 0.005717, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "iKqBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000087, + "t": 0.00555, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "WeWBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000104, + "t": 0.005683, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000064, + "t": 0.00639, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.025173, + "t": 0.031892, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011514, + "t": 0.016725, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAM988P3GGHs9g0FGsrTFNtc4J3k7MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDY0OVoXDTIzMTEyODAwNDY0OVowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4eHJmQcL9Z7NwX8/bw/X6aPTYCp3TT8ZnWq+fTXaORVh1ZEHOR0J9DrYP+nxPqcEwMyo8+3Hulp59sQb/i7b4ngu9Sff5kpsZn43v5p74VeNKHDQYsYFVbZSnJKb2REo1qpxeyE4L4eelVjC/YnbcYtAJTexCNM9RcU78PbmPpgPqlTRc2yU550VG2FT4n5odNj340bsCtTXw3qsh2JCuaB+p3SHhpS1jiX0M1AGDw7oQZEVPOObsdtLmdHbDaslNahjxdmC0vUx6lvT6+UmNTPdZJ1I0Ts4vBEg8+jdAz9Lo60lxa1NPC8Dlt3uUu3FIQTrRAdOSkMLz+vqaVTNdwIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQs8e6zxtHNRnKIjzIloP0uhysxzDAfBgNVHSMEGDAWgBSPXaZpxdVzTOPRts6GOFbPJNNv0jBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCG2XeXqhF3Ofzh8wACRYJPfeiH+jan9JNqtwYgdU4oe4/x68yHUIIbdYLLdi8IdzBHGLM/NHDOLGKyIfSAC6V4qevb1BNMC6cagUlI0xcL6od4CnpSNsBt6xSHqpCrqQ7sw/YGwwDOVy+MLuGbZPY/c2evZyCdVdfn143FksOSRcpLdarUuT6iT5hItbYn3cESJfYy9uADZpstdncbcQVD9Vm7NTXK4SL7sIORICd/F2+Xas962p1cGH2UdXs/jq6JsZ448uYqsUqQBRqr/dSp3RWpm+d4Sgo8pXHnx9xea8WUmZE+Y3BkmyvSlX5bIWzKyWXRp7zOVRyrObOt0LwI", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAIlCEsw9rjYY9ldpsOpNZFgyN62sMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjIzNDY0OVoXDTIzMTEyODIzNDY0OVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCgoIkKmizIr3s7c8ejRkr7KRvh3Ul4U7qrLTUvw0BEr1hyvdus73HRznNq7qnTrB3/nBfjLjeC+oPWjHOHhfPeRw7b0PWvWZPMyQk4Tf2DPwEHnUWxyWBATu/xVe2ZASAVm6lATJLDFhTyupeZlS1No+biU5BrgwOrDBAYmAVEB1OIYMjiGj2ueYyWhwIP1S2ALKENx2um+Ir4dsZgGnKq2Z7iN5SnCGB/4HQ2DrSTu00dNcm0Gf6loIFy8+5fvkNh8Qq4u0pwYdindYX35BgTrAqDDfPwotkZuFZ6GJ1yy5iLBhRyMarfvEm22YBpdOuYSRTEENFqyT/elnF5a7KDAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSPXaZpxdVzTOPRts6GOFbPJNNv0jAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAMfbWGlc094E3F4JBY0VL7KmSHDUDNNtm/5sdBXg5w0iiG5HB32RfWAwMKEBTdtyhTOatAUDnDkz2ES5P73SLEUY013zApl5QxNIIMlN8BQd/RM/3ZSY2h1i6ceFQPEd+lR+a9cUVCCLc417OHCrST6XwvR4bffrvUbbGFi8W2CzaU/rCCj2O8UOqtCcn4t8dOVH1konltP0uWdlMBbq6LXXPF6QffR8tDmEIKZeQN6bGOwfpD491ScD+MmsTiE7orbaex+UxAqH0iGwn3maIJs20DffMBlTDNd4eGHzgZWXl/cwn9hhrftgfYFJvdKu48tVgBYMy/u1YqzI6ghxwPg==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016747, + "t": 0.025153, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011459 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.025162 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.506882, + "test_start_time": "2023-11-27 23:46:49", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json new file mode 100644 index 0000000000..24c99449fd --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json @@ -0,0 +1,170 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json new file mode 100644 index 0000000000..c792580bd0 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": { + "3": true + }, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json new file mode 100644 index 0000000000..6c02e8ec2b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json @@ -0,0 +1,281 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:50", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": "generic_timeout_error", + "operation": "connect", + "proto": "tcp", + "t0": 0.01167, + "t": 1.011716, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000138, + "t": 0.000138, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00017, + "t": 0.000193, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000172, + "t": 0.000194, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000197, + "t": 0.005248, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.0002, + "t": 0.005711, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005758, + "t": 0.005758, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "w7WBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000147, + "t": 0.005252, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "DzqBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00015, + "t": 0.005715, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000073, + "t": 0.006075, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": "generic_timeout_error", + "success": false + }, + "t0": 0.01167, + "t": 1.011716, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011624 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 2, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "tcp_ip", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 1.012085, + "test_start_time": "2023-11-27 23:46:50", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json new file mode 100644 index 0000000000..0df38c7ddc --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json @@ -0,0 +1,165 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..b47650dfa1 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json @@ -0,0 +1,25 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": { + "83.224.65.41": true + }, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "5": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": { + "3": true + }, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..bd5ea8ae94 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json @@ -0,0 +1,636 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.org/", + "measurement_start_time": "2023-11-27 23:46:52", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "83.224.65.41:80", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.011844, + "t": 0.014909, + "transaction_id": 3 + }, + { + "address": "83.224.65.41:443", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.011853, + "t": 0.017653, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.053775, + "t": 0.058336, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.058352, + "t": 0.058352, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.058432, + "t": 0.058439, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.053768, + "t": 0.059053, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.05844, + "t": 0.066363, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1739, + "operation": "read", + "proto": "tcp", + "t0": 0.066459, + "t": 0.06646, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.067309, + "t": 0.067317, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.06732, + "t": 0.06732, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.067335, + "t": 0.067341, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.067346, + "t": 0.067346, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.559076, + "t": 0.559076, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.559148, + "t": 0.5592, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1448, + "operation": "read", + "proto": "tcp", + "t0": 0.559147, + "t": 0.564112, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 223, + "operation": "read", + "proto": "tcp", + "t0": 0.564154, + "t": 0.564234, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.564245, + "t": 0.564245, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.564274, + "t": 0.564274, + "transaction_id": 5 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000088, + "t": 0.000088, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000146, + "t": 0.00015, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000148, + "t": 0.000153, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000156, + "t": 0.003844, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000159, + "t": 0.004076, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.004097, + "t": 0.004097, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "TbWBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003864, + "t": 0.005641, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "ydyBAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.004086, + "t": 0.006118, + "tags": [], + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 30722, + "as_org_name": "Vodafone Italia S.p.A.", + "answer_type": "A", + "ipv4": "83.224.65.41", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.org", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000072, + "t": 0.003504, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 30722, + "as_org_name": "Vodafone Italia S.p.A.", + "answer_type": "A", + "ipv4": "83.224.65.41", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "TbWBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEU+BBKQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000122, + "t": 0.00385, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "ydyBAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000097, + "t": 0.004079, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.org" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.org", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.org/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.559076, + "t": 0.564245, + "tags": [], + "transaction_id": 5 + } + ], + "tcp_connect": [ + { + "ip": "83.224.65.41", + "port": 80, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.011844, + "t": 0.014909, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "83.224.65.41", + "port": 443, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.011853, + "t": 0.017653, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.053775, + "t": 0.058336, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.053768, + "t": 0.059053, + "tags": [], + "transaction_id": 5 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVALB0MFWeGuZJ6zFV+KRtTReVWbenMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzIyNDY1MloXDTIzMTEyODAwNDY1MlowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsQg0SkCtQ4KRCoY4mkOBH8biLeyudvdLR++hLGBcPwHkM9f52KkyDuCjR9Y/oaK94vTOi3sLeyXjTNi4xWrWbcQKSS4kql7i+xRNagOmyisHBhGr+sWdvFY/ltEKs0koOOp8azMeuusNWDpSFscQQvM5QwdlwjoSaN6H+d/OzGmJrCRQBQ4HHD9OgVxm+JLSHCyafVmoUHF4pPeVZVgudcilpdPrLk4x3wIZnARYW1Yta9qWaA8kh691UmQ87LVqeRyjXALkPw11V8c8boLwMw6bmfYINWNeju2mkH9IIFiJhIbN01h10VWCwgTQxlXo4Xh53IZIgKoAKyo/GIZKCQIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTr94qrQdiTXMrDHy3N39qZd7Af2zAfBgNVHSMEGDAWgBSiKNPqp7PKTrtOu4kOgi2szpESLTBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQALS6rcL2NgsnD+NTi8zXoKr/pkBSKoA2nZGmn2R/d8WmAnEtRwOmY1d8Wsy/ZtHX8/NGHouPY1ZOq6pZw1PUiKpQgI84ZFp4KmomfCqpL/RItN/W9ZnuOjZv9+DrzgGQOLSUZFosFq9SZQ0euVT7oCdSTy7R9nGEl4Lti9vgM3Ge7MrrA5lYVhJJniXvjMUgHGGODPmkzjA4+S2sxCFqacLRkQ0MLOB1Ww88WvAryOOKmGuCvMOTwxS/f/LDjZBs6V8Ov2eql6Ez53f29fOWAZX7Lp1YWn3gn8XAg9lrpYKBjZSt3YqcsQpAvDP1LFQmfYNBAhpVDr9p76HVpc6qhR", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIURirkTuO0Buf2UDiTEgfban7hl7MwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MjM0NjUxWhcNMjMxMTI4MjM0NjUxWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKzRJEYLWqjg3dgF7fy4pusBvamIG1PvleUQXethg95GPLQK/6aE9VClpZ2u4y8kcyGs0rvVlA+xZhE5BOIu6uKSTp0nDDSmqMokJGd78rcjN5Cn5hqqU0geax6yde6WCFOwqo8a4dpGUZiFKFS69EE2ffd25RYCsXxxJWCTVFMbz0kOJCFuldmX5wTY2KG8YgBbx0taoiusYiZckcRWTTJ66gZkg80Iwkm+OIEBKprNqF+Ay5L8hzBld/StrEuWsGyRErtNjwycFk9bDXjcH+Fpi0LWddFOtir3x/R/8JWtyrpNOG1LefqH8f7yCySVEuDBFN/xAOd9xHScRdt3F/sCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKIo0+qns8pOu067iQ6CLazOkRItMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAVYolG/gtzcQiAZtuRWMJikv1gMX4dHv1U03qsl9NtV/5RJoCCxVDv0PCrl9VAASQyWBNMIiyeRW9a2kYEomigh/MJxSU6GKOJsFSlpi6dNYGssWTva+1A+1+w4W2KFakPKlkIdeJLYGQzw5dTKb5wIu8jnUf8bCl+uXXChl/pg5Edl7J6iBymod4xiP+Iis3ixxpwdESS4Zvts7FWfavslOlXXEF1djH4eA/eMQWLbXJ5Rq0hFMgRp0QR2/LlrtWN5thDCPfAaOkQmnnRTMKTS9i67S+tq8Bb+uj5Lde/STWxVNP8F7i/37HMbCS6Hl/dsHJDD+ma+axH7cX0laZH", + "format": "base64" + } + ], + "server_name": "www.example.org", + "t0": 0.058352, + "t": 0.06732, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "http://www.example.org/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "83.224.65.41:443", + "83.224.65.41:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "83.224.65.41:443": { + "status": false, + "failure": "connection_refused_error" + }, + "83.224.65.41:80": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.org", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.org:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "83.224.65.41": { + "asn": 30722, + "flags": 1 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:83.224.65.41 Flags:3}]", + "t": 0.011796 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.559058 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 34, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "tcp_ip", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.564772, + "test_start_time": "2023-11-27 23:46:52", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..156923e8d8 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json @@ -0,0 +1,299 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressOrg": "Vodafone Italia S.p.A.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressOrg": "Vodafone Italia S.p.A.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressOrg": "Vodafone Italia S.p.A.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "83.224.65.41:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressOrg": "Vodafone Italia S.p.A.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "83.224.65.41:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "connection_refused_error", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "5": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json new file mode 100644 index 0000000000..9a34aa1ade --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": { + "3": true + }, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json new file mode 100644 index 0000000000..9a6d410901 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json @@ -0,0 +1,339 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:53", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011292, + "t": 0.016861, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016879, + "t": 0.016879, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016973, + "t": 0.01699, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.016996, + "t": 0.020685, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.020689, + "t": 0.020689, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.020709, + "t": 0.020709, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000161, + "t": 0.000161, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000205, + "t": 0.000214, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000195, + "t": 0.000215, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000218, + "t": 0.005552, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000219, + "t": 0.005682, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005702, + "t": 0.005702, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "yzmBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000182, + "t": 0.005558, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "tpaBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000169, + "t": 0.005685, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000059, + "t": 0.005797, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011292, + "t": 0.016861, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.016879, + "t": 0.020689, + "tags": [], + "tls_version": "", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011224 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 4, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506078, + "test_start_time": "2023-11-27 23:46:53", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json new file mode 100644 index 0000000000..be3a6d1428 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json @@ -0,0 +1,165 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..5da2a782e7 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json @@ -0,0 +1,21 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": { + "130.192.182.17": true + }, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": { + "3": true, + "4": true + }, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..874dbd3388 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json @@ -0,0 +1,469 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 23:46:54", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011172, + "t": 0.016399, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016414, + "t": 0.016414, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.01653, + "t": 0.016541, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.016545, + "t": 0.019869, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.019875, + "t": 0.019875, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.019893, + "t": 0.019893, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.064974, + "t": 0.070512, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.070525, + "t": 0.070525, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.070604, + "t": 0.070612, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.070613, + "t": 0.073625, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.073629, + "t": 0.073629, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.073647, + "t": 0.073647, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000067, + "t": 0.000067, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000102, + "t": 0.000144, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000174, + "t": 0.000195, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000212, + "t": 0.00308, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000163, + "t": 0.004502, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.00452, + "t": 0.00452, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "fBmBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003097, + "t": 0.005353, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "CxaBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.004517, + "t": 0.006059, + "tags": [], + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000123, + "t": 0.004032, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "fBmBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000123, + "t": 0.003085, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "CxaBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000076, + "t": 0.004505, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011172, + "t": 0.016399, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.064974, + "t": 0.070512, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.016414, + "t": 0.019875, + "tags": [], + "tls_version": "", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.070525, + "t": 0.073629, + "tags": [], + "tls_version": "", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.011127 + } + ], + "control_failure": null, + "x_dns_flags": 4, + "dns_experiment_failure": null, + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 5, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.504788, + "test_start_time": "2023-11-27 23:46:54", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..e609a0c1a1 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json @@ -0,0 +1,208 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "3": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json new file mode 100644 index 0000000000..fa27d26176 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json new file mode 100644 index 0000000000..9091b293dd --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json @@ -0,0 +1,216 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.xyz/", + "measurement_start_time": "2023-11-27 23:46:54", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000074, + "t": 0.000074, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000108, + "t": 0.000129, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00011, + "t": 0.000154, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000158, + "t": 0.005529, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000133, + "t": 0.005749, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005759, + "t": 0.005759, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.xyz", + "query_type": "A", + "raw_response": "fQ6BAwABAAAAAAAAA3d3dwdleGFtcGxlA3h5egAAAQAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000086, + "t": 0.005538, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.xyz", + "query_type": "AAAA", + "raw_response": "ri2BAwABAAAAAAAAA3d3dwdleGFtcGxlA3h5egAAHAAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000082, + "t": 0.005753, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "getaddrinfo", + "failure": "dns_nxdomain_error", + "hostname": "www.example.xyz", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000071, + "t": 0.005882, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [], + "x_control_request": { + "http_request": "http://www.example.xyz/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": null, + "x_quic_enabled": false + }, + "control": { + "tcp_connect": {}, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "dns_lookup_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": "dns_name_error", + "addrs": [] + } + }, + "x_conn_priority_log": [ + { + "msg": "create with []", + "t": 0.012004 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": "dns_nxdomain_error", + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 1, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506094, + "test_start_time": "2023-11-27 23:46:54", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json new file mode 100644 index 0000000000..b0535b8cef --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json @@ -0,0 +1,82 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionID": 1, + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "2": { + "DNSTransactionID": 2, + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "DNSLookupSuccesses": [], + "KnownTCPEndpoints": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/README.md b/internal/minipipeline/testdata/webconnectivity/manual/README.md new file mode 100644 index 0000000000..f7582182c1 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/README.md @@ -0,0 +1 @@ +Manually curated test cases. diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json new file mode 100644 index 0000000000..2ed4cdc668 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json @@ -0,0 +1 @@ +{"DNSExperimentFailure":null,"DNSTransactionsWithBogons":{},"DNSTransactionsWithUnexpectedFailures":{},"DNSPossiblyInvalidAddrs":{},"HTTPDiffBodyProportionFactor":null,"HTTPDiffStatusCodeMatch":null,"HTTPDiffTitleDifferentLongWords":null,"HTTPDiffUncommonHeadersIntersection":null,"HTTPFinalResponses":{},"HTTPFinalResponsesWithTLS":{},"TCPTransactionsWithUnexpectedTCPConnectFailures":{},"TCPTransactionsWithUnexpectedTLSHandshakeFailures":{},"TCPTransactionsWithUnexpectedHTTPFailures":{},"TCPTransactionsWithUnexplainedUnexpectedFailures":{}} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/measurement.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/measurement.json new file mode 100644 index 0000000000..4dbbb699f3 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/measurement.json @@ -0,0 +1 @@ +{"annotations":{"architecture":"arm64","engine_name":"ooniprobe-engine","engine_version":"3.20.0-alpha","go_version":"go1.20.11","platform":"macos","vcs_modified":"false","vcs_revision":"c7c310ab9058723845c882310a19462905fe3ca2","vcs_time":"2023-11-27T18:21:20Z","vcs_tool":"git"},"data_format_version":"0.2.0","extensions":{"dnst":0,"httpt":0,"netevents":0,"tcpconnect":0,"tlshandshake":0,"tunnel":0},"input":"http://dns.google","measurement_start_time":"2023-11-27 18:22:25","probe_asn":"AS30722","probe_cc":"IT","probe_ip":"127.0.0.1","probe_network_name":"Vodafone Italia S.p.A.","report_id":"20231127T182225Z_webconnectivity_IT_30722_n1_wo0Z94jk69oSuhhG","resolver_asn":"AS30722","resolver_ip":"91.80.36.88","resolver_network_name":"Vodafone Italia S.p.A.","software_name":"miniooni","software_version":"3.20.0-alpha","test_helpers":{"backend":{"address":"https://1.th.ooni.org","type":"https"}},"test_keys":{"agent":"redirect","client_resolver":"","retries":null,"socksproxy":null,"network_events":[{"address":"8.8.8.8:443","failure":null,"operation":"connect","proto":"tcp","t0":0.087896,"t":0.105233,"transaction_id":10},{"failure":null,"operation":"tls_handshake_start","t0":0.105289,"t":0.105289,"transaction_id":10},{"address":"8.8.8.8:443","failure":null,"num_bytes":276,"operation":"write","proto":"tcp","t0":0.105559,"t":0.105608,"transaction_id":10},{"address":"[2001:4860:4860::8888]:443","failure":null,"operation":"connect","proto":"tcp","t0":0.088189,"t":0.106029,"transaction_id":8},{"failure":null,"operation":"tls_handshake_start","t0":0.106057,"t":0.106057,"transaction_id":8},{"address":"[2001:4860:4860::8888]:443","failure":null,"num_bytes":276,"operation":"write","proto":"tcp","t0":0.106277,"t":0.106334,"transaction_id":8},{"address":"8.8.4.4:443","failure":null,"operation":"connect","proto":"tcp","t0":0.088057,"t":0.109725,"transaction_id":11},{"failure":null,"operation":"tls_handshake_start","t0":0.109747,"t":0.109747,"transaction_id":11},{"address":"[2001:4860:4860::8844]:443","failure":null,"operation":"connect","proto":"tcp","t0":0.088072,"t":0.109749,"transaction_id":9},{"failure":null,"operation":"tls_handshake_start","t0":0.109777,"t":0.109777,"transaction_id":9},{"address":"8.8.4.4:443","failure":null,"num_bytes":276,"operation":"write","proto":"tcp","t0":0.109976,"t":0.11,"transaction_id":11},{"address":"[2001:4860:4860::8844]:443","failure":null,"num_bytes":276,"operation":"write","proto":"tcp","t0":0.109989,"t":0.11002,"transaction_id":9},{"address":"8.8.8.8:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.105614,"t":0.139189,"transaction_id":10},{"address":"8.8.8.8:443","failure":null,"num_bytes":824,"operation":"read","proto":"tcp","t0":0.139476,"t":0.139481,"transaction_id":10},{"address":"8.8.8.8:443","failure":null,"num_bytes":3032,"operation":"read","proto":"tcp","t0":0.139483,"t":0.140268,"transaction_id":10},{"address":"8.8.8.8:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.14619,"t":0.146232,"transaction_id":10},{"failure":null,"operation":"tls_handshake_done","t0":0.146246,"t":0.146246,"transaction_id":10},{"address":"8.8.4.4:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.110004,"t":0.146302,"transaction_id":11},{"address":"[2001:4860:4860::8844]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.110024,"t":0.146305,"transaction_id":9},{"address":"[2001:4860:4860::8888]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.106339,"t":0.146329,"transaction_id":8},{"address":"8.8.8.8:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.146307,"t":0.14633,"transaction_id":10},{"address":"8.8.8.8:443","failure":null,"num_bytes":4432,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.146378,"t":0.146378,"transaction_id":10},{"address":"8.8.4.4:443","failure":null,"num_bytes":3855,"operation":"read","proto":"tcp","t0":0.146517,"t":0.146562,"transaction_id":11},{"address":"[2001:4860:4860::8844]:443","failure":null,"num_bytes":3857,"operation":"read","proto":"tcp","t0":0.146734,"t":0.146769,"transaction_id":9},{"address":"[2001:4860:4860::8888]:443","failure":null,"num_bytes":3855,"operation":"read","proto":"tcp","t0":0.146748,"t":0.146802,"transaction_id":8},{"address":"8.8.4.4:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.151808,"t":0.151845,"transaction_id":11},{"failure":null,"operation":"tls_handshake_done","t0":0.151857,"t":0.151857,"transaction_id":11},{"address":"8.8.4.4:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.151894,"t":0.151915,"transaction_id":11},{"address":"8.8.4.4:443","failure":null,"num_bytes":4431,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.151944,"t":0.151944,"transaction_id":11},{"address":"[2001:4860:4860::8844]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.152025,"t":0.152049,"transaction_id":9},{"failure":null,"operation":"tls_handshake_done","t0":0.152058,"t":0.152058,"transaction_id":9},{"address":"[2001:4860:4860::8888]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.152032,"t":0.152064,"transaction_id":8},{"failure":null,"operation":"tls_handshake_done","t0":0.152073,"t":0.152073,"transaction_id":8},{"address":"[2001:4860:4860::8844]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.152083,"t":0.152102,"transaction_id":9},{"address":"[2001:4860:4860::8844]:443","failure":null,"num_bytes":4433,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.152133,"t":0.152133,"transaction_id":9},{"address":"[2001:4860:4860::8888]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.152117,"t":0.15214,"transaction_id":8},{"address":"[2001:4860:4860::8888]:443","failure":null,"num_bytes":4431,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.15218,"t":0.15218,"transaction_id":8},{"address":"8.8.8.8:80","failure":"timed_out","operation":"connect","proto":"tcp","t0":0.087663,"t":7.902458,"transaction_id":6},{"address":"8.8.4.4:80","failure":"generic_timeout_error","operation":"connect","proto":"tcp","t0":0.08836,"t":10.088749,"transaction_id":7},{"address":"[2001:4860:4860::8888]:80","failure":"generic_timeout_error","operation":"connect","proto":"tcp","t0":0.087914,"t":10.08875,"transaction_id":4},{"address":"[2001:4860:4860::8844]:80","failure":"generic_timeout_error","operation":"connect","proto":"tcp","t0":0.087908,"t":10.088755,"transaction_id":5}],"x_dns_whoami":{"system_v4":[{"address":"91.80.36.88"}],"udp_v4":{"8.8.4.4:53":[{"address":"91.80.36.88"}]}},"x_doh":{"network_events":[{"failure":null,"operation":"resolve_start","t0":0.001035,"t":0.001035,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"operation":"connect","proto":"tcp","t0":0.002969,"t":0.021268,"transaction_id":3},{"failure":null,"operation":"tls_handshake_start","t0":0.021328,"t":0.021328,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":276,"operation":"write","proto":"tcp","t0":0.02167,"t":0.021722,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.021732,"t":0.054995,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":3856,"operation":"read","proto":"tcp","t0":0.055233,"t":0.055261,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.061553,"t":0.061597,"transaction_id":3},{"failure":null,"operation":"tls_handshake_done","t0":0.061614,"t":0.061614,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":86,"operation":"write","proto":"tcp","t0":0.061652,"t":0.061675,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":161,"operation":"write","proto":"tcp","t0":0.061726,"t":0.061742,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":159,"operation":"write","proto":"tcp","t0":0.061748,"t":0.061763,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":38,"operation":"write","proto":"tcp","t0":0.061775,"t":0.061798,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":159,"operation":"write","proto":"tcp","t0":0.061804,"t":0.061819,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":93,"operation":"read","proto":"tcp","t0":0.06172,"t":0.07812,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":31,"operation":"write","proto":"tcp","t0":0.078155,"t":0.078191,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":282,"operation":"read","proto":"tcp","t0":0.078206,"t":0.085723,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":1160,"operation":"read","proto":"tcp","t0":0.085819,"t":0.086869,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":39,"operation":"write","proto":"tcp","t0":0.086908,"t":0.086936,"transaction_id":3},{"failure":null,"operation":"resolve_done","t0":0.087086,"t":0.087086,"transaction_id":3},{"address":"8.8.8.8:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.087117,"t":0.087152,"transaction_id":3},{"address":"8.8.8.8:443","failure":"connection_already_closed","operation":"read","proto":"tcp","t0":0.086967,"t":0.087211,"transaction_id":3}],"queries":[{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8888","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8844","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.8.8","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.4.4","ttl":null},{"answer_type":"CNAME","hostname":"dns.google.","ttl":null}],"engine":"getaddrinfo","failure":null,"hostname":"dns.google","query_type":"ANY","resolver_hostname":null,"resolver_port":null,"resolver_address":"","t0":0.001185,"t":0.002576,"tags":[],"transaction_id":3}],"requests":[],"tcp_connect":[{"ip":"8.8.8.8","port":443,"status":{"failure":null,"success":true},"t0":0.002969,"t":0.021268,"tags":[],"transaction_id":3}],"tls_handshakes":[{"network":"tcp","address":"8.8.8.8:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"dns.google","t0":0.021328,"t":0.061614,"tags":[],"tls_version":"TLSv1.3","transaction_id":3}]},"x_do53":{"network_events":[{"failure":null,"operation":"resolve_start","t0":0.000635,"t":0.000635,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":28,"operation":"write","proto":"udp","t0":0.000801,"t":0.00085,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":28,"operation":"write","proto":"udp","t0":0.0011,"t":0.001121,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":84,"operation":"read","proto":"udp","t0":0.001045,"t":0.004645,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":60,"operation":"read","proto":"udp","t0":0.001172,"t":0.00787,"transaction_id":1},{"failure":null,"operation":"resolve_done","t0":0.007933,"t":0.007933,"transaction_id":1}],"queries":[]},"x_dns_duplicate_responses":[],"queries":[{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8888","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8844","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.8.8","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.4.4","ttl":null},{"answer_type":"CNAME","hostname":"dns.google.","ttl":null}],"engine":"getaddrinfo","failure":null,"hostname":"dns.google","query_type":"ANY","resolver_hostname":null,"resolver_port":null,"resolver_address":"","t0":0.000811,"t":0.002575,"tags":[],"transaction_id":2},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8844","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8888","ttl":null}],"engine":"udp","failure":null,"hostname":"dns.google","query_type":"AAAA","raw_response":"2c+BgAABAAIAAAAAA2RucwZnb29nbGUAABwAAcAMABwAAQAAA3IAECABSGBIYAAAAAAAAAAAiETADAAcAAEAAANyABAgAUhgSGAAAAAAAAAAAIiI","resolver_hostname":null,"resolver_port":null,"resolver_address":"8.8.4.4:53","t0":0.000667,"t":0.004672,"tags":[],"transaction_id":1},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.4.4","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.8.8","ttl":null}],"engine":"udp","failure":null,"hostname":"dns.google","query_type":"A","raw_response":"CQyBgAABAAIAAAAAA2RucwZnb29nbGUAAAEAAcAMAAEAAQAAAngABAgIBATADAABAAEAAAJ4AAQICAgI","resolver_hostname":null,"resolver_port":null,"resolver_address":"8.8.4.4:53","t0":0.000969,"t":0.00788,"tags":[],"transaction_id":1},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.8.8","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"8.8.4.4","ttl":null}],"engine":"doh","failure":null,"hostname":"dns.google","query_type":"A","raw_response":"x/WBoAABAAMAAAABA2RucwZnb29nbGUAAAEAAcAMAAEAAQAAAgsABAgICAjADAABAAEAAAILAAQICAQEwAwALgABAAACCwCeAAEIAgAAA4RlgEV9ZWNEfb72A2RucwZnb29nbGUAw6uRKaj18pcrKsiznX1Kvl5eaVYe/fHK9LDjrKWalRefLOck05CvdNVzPcBlWGkY8Ic3zfj7fIP3l0wyye1tV+KUqasT+cEWqJHUIMRIjNtAW7Nqe+BFkZXh3IGnQ/B8vwGnbi8Fj0Z+Ijh1cxWyShRlSf1SocM1H2s6XPg/a3QAACkCAAAAgAAA4wAMAN8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","resolver_hostname":null,"resolver_port":null,"resolver_address":"https://dns.google/dns-query","t0":0.001238,"t":0.087015,"tags":[],"transaction_id":3},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8888","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2001:4860:4860::8844","ttl":null}],"engine":"doh","failure":null,"hostname":"dns.google","query_type":"AAAA","raw_response":"BCmBoAABAAMAAAABA2RucwZnb29nbGUAABwAAcAMABwAAQAAASIAECABSGBIYAAAAAAAAAAAiIjADAAcAAEAAAEiABAgAUhgSGAAAAAAAAAAAIhEwAwALgABAAABIgCeABwIAgAAA4RlgEV9ZWNEfb72A2RucwZnb29nbGUAO94I0l6pfPe+aRj4D5+4/ywr3GKwgmYC48BTdgfT5jkozNcP+Ps5/woDVCA0qzgoTWxxmrzZaZQP33Q+YgkxEbuMB8Ko7Ro7UjeMuFo6EF3py1juZYrQZZx7Q2BKUFL4p1Ms1fRp7uFVICn759s1c/biMIxZgsfq6V437/npPB4AACkCAAAAgAAAywAMAMcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","resolver_hostname":null,"resolver_port":null,"resolver_address":"https://dns.google/dns-query","t0":0.001054,"t":0.086971,"tags":[],"transaction_id":3}],"requests":[],"tcp_connect":[{"ip":"8.8.8.8","port":443,"status":{"failure":null,"success":true},"t0":0.087896,"t":0.105233,"tags":[],"transaction_id":10},{"ip":"2001:4860:4860::8888","port":443,"status":{"failure":null,"success":true},"t0":0.088189,"t":0.106029,"tags":[],"transaction_id":8},{"ip":"8.8.4.4","port":443,"status":{"failure":null,"success":true},"t0":0.088057,"t":0.109725,"tags":[],"transaction_id":11},{"ip":"2001:4860:4860::8844","port":443,"status":{"failure":null,"success":true},"t0":0.088072,"t":0.109749,"tags":[],"transaction_id":9},{"ip":"8.8.8.8","port":80,"status":{"failure":"timed_out","success":false},"t0":0.087663,"t":7.902458,"tags":[],"transaction_id":6},{"ip":"8.8.4.4","port":80,"status":{"failure":"generic_timeout_error","success":false},"t0":0.08836,"t":10.088749,"tags":[],"transaction_id":7},{"ip":"2001:4860:4860::8888","port":80,"status":{"failure":"generic_timeout_error","success":false},"t0":0.087914,"t":10.08875,"tags":[],"transaction_id":4},{"ip":"2001:4860:4860::8844","port":80,"status":{"failure":"generic_timeout_error","success":false},"t0":0.087908,"t":10.088755,"tags":[],"transaction_id":5}],"tls_handshakes":[{"network":"tcp","address":"8.8.8.8:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"dns.google","t0":0.105289,"t":0.146246,"tags":[],"tls_version":"TLSv1.3","transaction_id":10},{"network":"tcp","address":"8.8.4.4:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"dns.google","t0":0.109747,"t":0.151857,"tags":[],"tls_version":"TLSv1.3","transaction_id":11},{"network":"tcp","address":"[2001:4860:4860::8844]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"dns.google","t0":0.109777,"t":0.152058,"tags":[],"tls_version":"TLSv1.3","transaction_id":9},{"network":"tcp","address":"[2001:4860:4860::8888]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"dns.google","t0":0.106057,"t":0.152073,"tags":[],"tls_version":"TLSv1.3","transaction_id":8}],"x_control_request":{"http_request":"http://dns.google","http_request_headers":{"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.9"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"]},"tcp_connect":["[2001:4860:4860::8888]:443","[2001:4860:4860::8888]:80","[2001:4860:4860::8844]:443","[2001:4860:4860::8844]:80","8.8.8.8:443","8.8.8.8:80","8.8.4.4:443","8.8.4.4:80"],"x_quic_enabled":false},"control":{"tcp_connect":{"8.8.4.4:443":{"status":true,"failure":null},"8.8.4.4:80":{"status":false,"failure":"generic_timeout_error"},"8.8.8.8:443":{"status":true,"failure":null},"8.8.8.8:80":{"status":false,"failure":"generic_timeout_error"},"[2001:4860:4860::8844]:443":{"status":true,"failure":null},"[2001:4860:4860::8844]:80":{"status":false,"failure":"generic_timeout_error"},"[2001:4860:4860::8888]:443":{"status":true,"failure":null},"[2001:4860:4860::8888]:80":{"status":false,"failure":"generic_timeout_error"}},"tls_handshake":{"8.8.4.4:443":{"server_name":"dns.google","status":true,"failure":null},"8.8.8.8:443":{"server_name":"dns.google","status":true,"failure":null},"[2001:4860:4860::8844]:443":{"server_name":"dns.google","status":true,"failure":null},"[2001:4860:4860::8888]:443":{"server_name":"dns.google","status":true,"failure":null}},"quic_handshake":{},"http_request":{"body_length":-1,"discovered_h3_endpoint":"","failure":"generic_timeout_error","title":"","headers":{},"status_code":-1},"http3_request":null,"dns":{"failure":null,"addrs":["8.8.8.8","8.8.4.4","2001:4860:4860::8888","2001:4860:4860::8844"]},"ip_info":{"2001:4860:4860::8844":{"asn":15169,"flags":11},"2001:4860:4860::8888":{"asn":15169,"flags":11},"8.8.4.4":{"asn":15169,"flags":11},"8.8.8.8":{"asn":15169,"flags":11}}},"x_conn_priority_log":[{"msg":"create with [{Addr:2001:4860:4860::8888 Flags:7} {Addr:2001:4860:4860::8844 Flags:7} {Addr:8.8.8.8 Flags:7} {Addr:8.8.4.4 Flags:7}]","t":0.087367}],"control_failure":null,"x_dns_flags":0,"dns_experiment_failure":null,"dns_consistency":"consistent","http_experiment_failure":null,"x_blocking_flags":0,"x_null_null_flags":0,"body_length_match":null,"headers_match":null,"status_code_match":null,"title_match":null,"blocking":null,"accessible":null},"test_name":"web_connectivity","test_runtime":15.540393541,"test_start_time":"2023-11-27 18:22:10","test_version":"0.5.26"} diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json new file mode 100644 index 0000000000..0f31c5659c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json @@ -0,0 +1,767 @@ +{ + "DNSLookupFailures": {}, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "10": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 10, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "8.8.8.8:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "11": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 11, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "8.8.4.4:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "[2001:4860:4860::8888]:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "generic_timeout_error", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "[2001:4860:4860::8844]:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "generic_timeout_error", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "6": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "8.8.8.8:80", + "TCPConnectFailure": "timed_out", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "generic_timeout_error", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "7": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "8.8.4.4:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "generic_timeout_error", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "8": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2001:4860:4860::8888]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "9": { + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 9, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2001:4860:4860::8844]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json new file mode 100644 index 0000000000..2ca336e217 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json @@ -0,0 +1,27 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 0.6166324592304209, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "accept-ch": true, + "alt-svc": true, + "cross-origin-opener-policy": true, + "origin-trial": true, + "permissions-policy": true, + "report-to": true + }, + "HTTPFinalResponses": { + "8": true + }, + "HTTPFinalResponsesWithTLS": { + "8": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/measurement.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/measurement.json new file mode 100644 index 0000000000..01cb48e88a --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/measurement.json @@ -0,0 +1,4975 @@ +{ + "annotations": { + "architecture": "arm64", + "engine_name": "ooniprobe-engine", + "engine_version": "3.20.0-alpha", + "go_version": "go1.20.11", + "platform": "macos", + "vcs_modified": "false", + "vcs_revision": "c7c310ab9058723845c882310a19462905fe3ca2", + "vcs_time": "2023-11-27T18:21:20Z", + "vcs_tool": "git" + }, + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.youtube.com/", + "measurement_start_time": "2023-11-27 20:22:49", + "probe_asn": "AS30722", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Vodafone Italia S.p.A.", + "report_id": "20231127T202249Z_webconnectivity_IT_30722_n1_YYGaq60RCbmRp4oW", + "resolver_asn": "AS13335", + "resolver_ip": "162.158.196.124", + "resolver_network_name": "Cloudflare Inc", + "software_name": "miniooni", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://2.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "[2a00:1450:4002:410::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 0.538446, + "t": 0.538927, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 0.538836, + "t": 0.53896, + "transaction_id": 17 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 0.538631, + "t": 0.539225, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 0.539246, + "t": 0.539534, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:411::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 0.53942, + "t": 0.539572, + "transaction_id": 12 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 0.53967, + "t": 0.539771, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 0.539637, + "t": 0.539912, + "transaction_id": 16 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.538251, + "t": 0.573331, + "transaction_id": 4 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.538102, + "t": 0.573367, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.573384, + "t": 0.573384, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.573393, + "t": 0.573393, + "transaction_id": 8 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.538485, + "t": 0.573454, + "transaction_id": 9 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.573476, + "t": 0.573476, + "transaction_id": 9 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.573591, + "t": 0.573624, + "transaction_id": 4 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.57359, + "t": 0.573636, + "transaction_id": 8 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.573656, + "t": 0.57368, + "transaction_id": 9 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.539868, + "t": 0.582629, + "transaction_id": 13 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.582721, + "t": 0.582721, + "transaction_id": 13 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.539604, + "t": 0.582725, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.538705, + "t": 0.582752, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.582752, + "t": 0.582752, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.582776, + "t": 0.582776, + "transaction_id": 6 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.53896, + "t": 0.582803, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.582827, + "t": 0.582827, + "transaction_id": 14 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.582937, + "t": 0.582969, + "transaction_id": 13 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.582961, + "t": 0.582984, + "transaction_id": 6 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.582929, + "t": 0.582998, + "transaction_id": 5 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.582995, + "t": 0.583022, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.57364, + "t": 0.624687, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2200, + "operation": "read", + "proto": "tcp", + "t0": 0.625156, + "t": 0.625164, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2776, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.625214, + "t": 0.625214, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2776, + "operation": "read", + "proto": "tcp", + "t0": 0.625168, + "t": 0.627108, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1218, + "operation": "read", + "proto": "tcp", + "t0": 0.627115, + "t": 0.631141, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.639026, + "t": 0.6391, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.63912, + "t": 0.63912, + "transaction_id": 8 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.583001, + "t": 0.639169, + "transaction_id": 5 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.582993, + "t": 0.639175, + "transaction_id": 13 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.639186, + "t": 0.639186, + "transaction_id": 8 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.573682, + "t": 0.639208, + "transaction_id": 9 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.573628, + "t": 0.639229, + "transaction_id": 4 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.639294, + "t": 0.639322, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 199, + "operation": "write", + "proto": "tcp", + "t0": 0.639398, + "t": 0.639422, + "transaction_id": 8 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.639411, + "t": 0.639468, + "transaction_id": 4 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 812, + "operation": "read", + "proto": "tcp", + "t0": 0.639493, + "t": 0.6395, + "transaction_id": 5 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 0.639459, + "t": 0.639515, + "transaction_id": 13 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.639503, + "t": 0.639532, + "transaction_id": 9 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 4164, + "operation": "read", + "proto": "tcp", + "t0": 0.639504, + "t": 0.641421, + "transaction_id": 5 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 1217, + "operation": "read", + "proto": "tcp", + "t0": 0.64148, + "t": 0.643986, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.582991, + "t": 0.643996, + "transaction_id": 6 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 3588, + "operation": "read", + "proto": "tcp", + "t0": 0.644243, + "t": 0.644268, + "transaction_id": 6 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 2607, + "operation": "read", + "proto": "tcp", + "t0": 0.644272, + "t": 0.64465, + "transaction_id": 6 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.646002, + "t": 0.646031, + "transaction_id": 13 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.645991, + "t": 0.646043, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.646048, + "t": 0.646048, + "transaction_id": 13 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.646056, + "t": 0.646056, + "transaction_id": 4 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.646551, + "t": 0.646578, + "transaction_id": 9 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.646587, + "t": 0.646587, + "transaction_id": 9 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.583024, + "t": 0.646986, + "transaction_id": 14 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 3588, + "operation": "read", + "proto": "tcp", + "t0": 0.647171, + "t": 0.64721, + "transaction_id": 14 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.649301, + "t": 0.649327, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.649341, + "t": 0.649341, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.64986, + "t": 0.64991, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.649919, + "t": 0.649919, + "transaction_id": 6 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 2606, + "operation": "read", + "proto": "tcp", + "t0": 0.647213, + "t": 0.650411, + "transaction_id": 14 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.655276, + "t": 0.655298, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.655307, + "t": 0.655307, + "transaction_id": 14 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.656857, + "t": 0.65687, + "transaction_id": 4 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.65685, + "t": 0.656886, + "transaction_id": 13 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.656887, + "t": 0.656905, + "transaction_id": 9 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.656923, + "t": 0.656923, + "transaction_id": 4 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.656925, + "t": 0.656925, + "transaction_id": 13 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.656933, + "t": 0.656933, + "transaction_id": 9 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.659477, + "t": 0.659503, + "transaction_id": 5 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.659536, + "t": 0.659536, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.66004, + "t": 0.660061, + "transaction_id": 6 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.660093, + "t": 0.660093, + "transaction_id": 6 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.666029, + "t": 0.666053, + "transaction_id": 14 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.666079, + "t": 0.666079, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.66968, + "t": 0.66968, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 93, + "operation": "read", + "proto": "tcp", + "t0": 0.639483, + "t": 0.673254, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.673271, + "t": 0.673302, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6863, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.695719, + "t": 0.695719, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6863, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.721833, + "t": 0.721833, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1696, + "operation": "read", + "proto": "tcp", + "t0": 0.67331, + "t": 0.734423, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 5552, + "operation": "read", + "proto": "tcp", + "t0": 0.734658, + "t": 0.736101, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4138, + "operation": "read", + "proto": "tcp", + "t0": 0.736138, + "t": 0.74443, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.7445, + "t": 0.744531, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2776, + "operation": "read", + "proto": "tcp", + "t0": 0.744487, + "t": 0.775004, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 8192, + "operation": "read", + "proto": "tcp", + "t0": 0.775057, + "t": 0.776589, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 136, + "operation": "read", + "proto": "tcp", + "t0": 0.776617, + "t": 0.776707, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6940, + "operation": "read", + "proto": "tcp", + "t0": 0.776729, + "t": 0.782565, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.782644, + "t": 0.782688, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.78271, + "t": 0.782742, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 8192, + "operation": "read", + "proto": "tcp", + "t0": 0.782623, + "t": 0.787594, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1524, + "operation": "read", + "proto": "tcp", + "t0": 0.787628, + "t": 0.787651, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 8192, + "operation": "read", + "proto": "tcp", + "t0": 0.787664, + "t": 0.789723, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4300, + "operation": "read", + "proto": "tcp", + "t0": 0.789794, + "t": 0.789826, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.789839, + "t": 0.789878, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.789901, + "t": 0.789934, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1388, + "operation": "read", + "proto": "tcp", + "t0": 0.789843, + "t": 0.790162, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1276, + "operation": "read", + "proto": "tcp", + "t0": 0.790176, + "t": 0.791509, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 112, + "operation": "read", + "proto": "tcp", + "t0": 0.791522, + "t": 0.791527, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2776, + "operation": "read", + "proto": "tcp", + "t0": 0.79153, + "t": 0.807399, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2776, + "operation": "read", + "proto": "tcp", + "t0": 0.807414, + "t": 0.816258, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1276, + "operation": "read", + "proto": "tcp", + "t0": 0.816274, + "t": 0.819327, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2888, + "operation": "read", + "proto": "tcp", + "t0": 0.819339, + "t": 0.819369, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.819414, + "t": 0.819453, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.819474, + "t": 0.819503, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4052, + "operation": "read", + "proto": "tcp", + "t0": 0.819402, + "t": 0.822092, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 112, + "operation": "read", + "proto": "tcp", + "t0": 0.822126, + "t": 0.82216, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2776, + "operation": "read", + "proto": "tcp", + "t0": 0.822172, + "t": 0.822654, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4164, + "operation": "read", + "proto": "tcp", + "t0": 0.822668, + "t": 0.824621, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 7629, + "operation": "read", + "proto": "tcp", + "t0": 0.824639, + "t": 0.829686, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 699, + "operation": "read", + "proto": "tcp", + "t0": 0.82971, + "t": 0.829727, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.829757, + "t": 0.829788, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.829805, + "t": 0.829833, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4164, + "operation": "read", + "proto": "tcp", + "t0": 0.829747, + "t": 0.831087, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2077, + "operation": "read", + "proto": "tcp", + "t0": 0.831121, + "t": 0.841145, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 699, + "operation": "read", + "proto": "tcp", + "t0": 0.841171, + "t": 0.841201, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6241, + "operation": "read", + "proto": "tcp", + "t0": 0.841211, + "t": 0.842809, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6940, + "operation": "read", + "proto": "tcp", + "t0": 0.842836, + "t": 0.842843, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6928, + "operation": "read", + "proto": "tcp", + "t0": 0.842883, + "t": 0.84289, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4875, + "operation": "read", + "proto": "tcp", + "t0": 0.842911, + "t": 0.842948, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.842937, + "t": 0.842988, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.843011, + "t": 0.843039, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.843137, + "t": 0.843172, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.843182, + "t": 0.84321, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2065, + "operation": "read", + "proto": "tcp", + "t0": 0.842976, + "t": 0.852817, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3487, + "operation": "read", + "proto": "tcp", + "t0": 0.852865, + "t": 0.8529, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4065, + "operation": "read", + "proto": "tcp", + "t0": 0.852914, + "t": 0.855348, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4263, + "operation": "read", + "proto": "tcp", + "t0": 0.855367, + "t": 0.855399, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2677, + "operation": "read", + "proto": "tcp", + "t0": 0.855416, + "t": 0.858668, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4263, + "operation": "read", + "proto": "tcp", + "t0": 0.858756, + "t": 0.858793, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.85881, + "t": 0.858854, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.85888, + "t": 0.858912, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 237553, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.89999, + "t": 0.89999, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 298625, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.925294, + "t": 0.925294, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 379830, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.1914150000000001, + "t": 1.1914150000000001, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 379830, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.584679, + "t": 1.584679, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 379830, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.709921, + "t": 1.709921, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 1.745276, + "t": 1.745276, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 559075, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.746103, + "t": 1.746103, + "transaction_id": 8 + }, + { + "address": "[2a00:1450:4009:816::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 1.759574, + "t": 1.760286, + "transaction_id": 34 + }, + { + "address": "[2a00:1450:4009:80b::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 1.760202, + "t": 1.760635, + "transaction_id": 24 + }, + { + "address": "[2a00:1450:4009:826::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 1.7606389999999998, + "t": 1.760756, + "transaction_id": 33 + }, + { + "address": "[2a00:1450:4009:827::200e]:443", + "failure": "host_unreachable", + "operation": "connect", + "proto": "tcp", + "t0": 1.761287, + "t": 1.7614, + "transaction_id": 18 + }, + { + "address": "172.217.169.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.7597589999999999, + "t": 1.818504, + "transaction_id": 31 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.818623, + "t": 1.818623, + "transaction_id": 31 + }, + { + "address": "172.217.169.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.819015, + "t": 1.8191030000000001, + "transaction_id": 31 + }, + { + "address": "172.217.169.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.7596319999999999, + "t": 1.819921, + "transaction_id": 19 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.819956, + "t": 1.819956, + "transaction_id": 19 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.76044, + "t": 1.8199589999999999, + "transaction_id": 29 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.819994, + "t": 1.819994, + "transaction_id": 29 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.759591, + "t": 1.820001, + "transaction_id": 26 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.820044, + "t": 1.820044, + "transaction_id": 26 + }, + { + "address": "216.58.201.110:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.760664, + "t": 1.820226, + "transaction_id": 30 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.820265, + "t": 1.820265, + "transaction_id": 30 + }, + { + "address": "172.217.169.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.820254, + "t": 1.8203070000000001, + "transaction_id": 19 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.8203, + "t": 1.820346, + "transaction_id": 29 + }, + { + "address": "142.250.187.206:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.760689, + "t": 1.820357, + "transaction_id": 21 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.82038, + "t": 1.82038, + "transaction_id": 21 + }, + { + "address": "142.250.180.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.760469, + "t": 1.820399, + "transaction_id": 20 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.820384, + "t": 1.820422, + "transaction_id": 26 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.8204259999999999, + "t": 1.8204259999999999, + "transaction_id": 20 + }, + { + "address": "142.250.178.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.760106, + "t": 1.820472, + "transaction_id": 27 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.820495, + "t": 1.820495, + "transaction_id": 27 + }, + { + "address": "216.58.201.110:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.820567, + "t": 1.820608, + "transaction_id": 30 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.760151, + "t": 1.820662, + "transaction_id": 23 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.820687, + "t": 1.820687, + "transaction_id": 23 + }, + { + "address": "142.250.187.206:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.820686, + "t": 1.8207309999999999, + "transaction_id": 21 + }, + { + "address": "142.250.180.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.8207659999999999, + "t": 1.820803, + "transaction_id": 20 + }, + { + "address": "142.250.178.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.820833, + "t": 1.82087, + "transaction_id": 27 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.8209689999999998, + "t": 1.821011, + "transaction_id": 23 + }, + { + "address": "216.58.212.206:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.76041, + "t": 1.82171, + "transaction_id": 32 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.821733, + "t": 1.821733, + "transaction_id": 32 + }, + { + "address": "142.250.187.238:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.7607650000000001, + "t": 1.821741, + "transaction_id": 22 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.82177, + "t": 1.82177, + "transaction_id": 22 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.761088, + "t": 1.821783, + "transaction_id": 25 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.821834, + "t": 1.821834, + "transaction_id": 25 + }, + { + "address": "142.250.200.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.761231, + "t": 1.821853, + "transaction_id": 28 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.8218779999999999, + "t": 1.8218779999999999, + "transaction_id": 28 + }, + { + "address": "216.58.212.206:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.822046, + "t": 1.822089, + "transaction_id": 32 + }, + { + "address": "142.250.187.238:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.8220589999999999, + "t": 1.822089, + "transaction_id": 22 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.8221699999999998, + "t": 1.8222040000000002, + "transaction_id": 25 + }, + { + "address": "142.250.200.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.822192, + "t": 1.82223, + "transaction_id": 28 + }, + { + "address": "172.217.169.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.819137, + "t": 1.88662, + "transaction_id": 31 + }, + { + "address": "172.217.169.14:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 1.887172, + "t": 1.887219, + "transaction_id": 31 + }, + { + "address": "172.217.169.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.894687, + "t": 1.8948, + "transaction_id": 31 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.894828, + "t": 1.894828, + "transaction_id": 31 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.820352, + "t": 1.895221, + "transaction_id": 29 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "num_bytes": 812, + "operation": "read", + "proto": "tcp", + "t0": 1.89548, + "t": 1.895489, + "transaction_id": 29 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.821016, + "t": 1.897936, + "transaction_id": 23 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "num_bytes": 5382, + "operation": "read", + "proto": "tcp", + "t0": 1.895491, + "t": 1.897971, + "transaction_id": 29 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "num_bytes": 4976, + "operation": "read", + "proto": "tcp", + "t0": 1.898145, + "t": 1.898164, + "transaction_id": 23 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.822209, + "t": 1.898345, + "transaction_id": 25 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "num_bytes": 1218, + "operation": "read", + "proto": "tcp", + "t0": 1.898166, + "t": 1.898368, + "transaction_id": 23 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "num_bytes": 2200, + "operation": "read", + "proto": "tcp", + "t0": 1.8985539999999999, + "t": 1.898559, + "transaction_id": 25 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "num_bytes": 3995, + "operation": "read", + "proto": "tcp", + "t0": 1.898561, + "t": 1.901837, + "transaction_id": 25 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.9040249999999999, + "t": 1.904058, + "transaction_id": 29 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.904072, + "t": 1.904072, + "transaction_id": 29 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.82043, + "t": 1.904101, + "transaction_id": 26 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "num_bytes": 2200, + "operation": "read", + "proto": "tcp", + "t0": 1.904284, + "t": 1.904291, + "transaction_id": 26 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.9042919999999999, + "t": 1.904326, + "transaction_id": 23 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.904335, + "t": 1.904335, + "transaction_id": 23 + }, + { + "address": "172.217.169.14:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.9050449999999999, + "t": 1.9050660000000001, + "transaction_id": 31 + }, + { + "address": "172.217.169.14:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.905116, + "t": 1.905116, + "transaction_id": 31 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.9072, + "t": 1.907231, + "transaction_id": 25 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.907241, + "t": 1.907241, + "transaction_id": 25 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "num_bytes": 3994, + "operation": "read", + "proto": "tcp", + "t0": 1.9042919999999999, + "t": 1.9098380000000001, + "transaction_id": 26 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.915101, + "t": 1.9151259999999999, + "transaction_id": 26 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.915135, + "t": 1.915135, + "transaction_id": 26 + }, + { + "address": "216.58.212.206:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.822093, + "t": 1.9151820000000002, + "transaction_id": 32 + }, + { + "address": "142.250.200.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.822234, + "t": 1.91519, + "transaction_id": 28 + }, + { + "address": "172.217.169.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.820312, + "t": 1.9152040000000001, + "transaction_id": 19 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.915206, + "t": 1.915226, + "transaction_id": 23 + }, + { + "address": "142.250.180.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.8208069999999998, + "t": 1.915227, + "transaction_id": 20 + }, + { + "address": "142.250.187.206:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.8207360000000001, + "t": 1.915241, + "transaction_id": 21 + }, + { + "address": "172.217.16.238:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.9152529999999999, + "t": 1.9152529999999999, + "transaction_id": 23 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.9152749999999998, + "t": 1.9152879999999999, + "transaction_id": 29 + }, + { + "address": "142.250.179.238:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.9153090000000002, + "t": 1.9153090000000002, + "transaction_id": 29 + }, + { + "address": "142.250.178.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.8208739999999999, + "t": 1.915322, + "transaction_id": 27 + }, + { + "address": "216.58.212.206:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.915336, + "t": 1.915356, + "transaction_id": 32 + }, + { + "address": "142.250.200.46:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.915351, + "t": 1.915381, + "transaction_id": 28 + }, + { + "address": "172.217.169.46:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 1.9153820000000001, + "t": 1.915406, + "transaction_id": 19 + }, + { + "address": "216.58.201.110:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.820614, + "t": 1.915447, + "transaction_id": 30 + }, + { + "address": "142.250.187.206:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 1.915457, + "t": 1.9154879999999999, + "transaction_id": 21 + }, + { + "address": "142.250.180.14:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 1.9154529999999999, + "t": 1.9154879999999999, + "transaction_id": 20 + }, + { + "address": "142.250.178.14:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 1.915519, + "t": 1.9155410000000002, + "transaction_id": 27 + }, + { + "address": "216.58.201.110:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.9156149999999998, + "t": 1.915638, + "transaction_id": 30 + }, + { + "address": "142.250.187.238:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.822093, + "t": 1.91567, + "transaction_id": 22 + }, + { + "address": "142.250.187.238:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.915851, + "t": 1.915878, + "transaction_id": 22 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.9189500000000002, + "t": 1.918979, + "transaction_id": 25 + }, + { + "address": "142.250.200.14:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.9190800000000001, + "t": 1.9190800000000001, + "transaction_id": 25 + }, + { + "address": "172.217.169.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.920534, + "t": 1.9205649999999999, + "transaction_id": 19 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.920573, + "t": 1.920573, + "transaction_id": 19 + }, + { + "address": "142.250.180.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.9214820000000001, + "t": 1.9215149999999999, + "transaction_id": 20 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.921529, + "t": 1.921529, + "transaction_id": 20 + }, + { + "address": "142.250.187.206:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.921509, + "t": 1.921535, + "transaction_id": 21 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.921543, + "t": 1.921543, + "transaction_id": 21 + }, + { + "address": "216.58.212.206:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.922263, + "t": 1.922281, + "transaction_id": 32 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.92229, + "t": 1.92229, + "transaction_id": 32 + }, + { + "address": "142.250.200.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.9222860000000002, + "t": 1.922314, + "transaction_id": 28 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.922323, + "t": 1.922323, + "transaction_id": 28 + }, + { + "address": "142.250.178.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.9228990000000001, + "t": 1.922927, + "transaction_id": 27 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.9229340000000001, + "t": 1.9229340000000001, + "transaction_id": 27 + }, + { + "address": "216.58.201.110:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.923517, + "t": 1.923538, + "transaction_id": 30 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.9235449999999998, + "t": 1.9235449999999998, + "transaction_id": 30 + }, + { + "address": "142.250.187.238:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.923674, + "t": 1.923697, + "transaction_id": 22 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.9237039999999999, + "t": 1.9237039999999999, + "transaction_id": 22 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.9253580000000001, + "t": 1.925376, + "transaction_id": 26 + }, + { + "address": "216.58.204.78:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.925415, + "t": 1.925415, + "transaction_id": 26 + }, + { + "address": "172.217.169.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.931265, + "t": 1.931285, + "transaction_id": 19 + }, + { + "address": "172.217.169.46:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.931321, + "t": 1.931321, + "transaction_id": 19 + }, + { + "address": "142.250.187.206:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.931635, + "t": 1.931654, + "transaction_id": 21 + }, + { + "address": "142.250.187.206:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.931678, + "t": 1.931678, + "transaction_id": 21 + }, + { + "address": "142.250.180.14:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.9316680000000002, + "t": 1.9316849999999999, + "transaction_id": 20 + }, + { + "address": "142.250.180.14:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.931708, + "t": 1.931708, + "transaction_id": 20 + }, + { + "address": "142.250.200.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.9324050000000002, + "t": 1.9324210000000002, + "transaction_id": 28 + }, + { + "address": "142.250.200.46:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.93245, + "t": 1.93245, + "transaction_id": 28 + }, + { + "address": "216.58.212.206:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.932434, + "t": 1.932454, + "transaction_id": 32 + }, + { + "address": "216.58.212.206:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.932474, + "t": 1.932474, + "transaction_id": 32 + }, + { + "address": "142.250.178.14:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.9330370000000001, + "t": 1.9330509999999999, + "transaction_id": 27 + }, + { + "address": "142.250.178.14:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.93308, + "t": 1.93308, + "transaction_id": 27 + }, + { + "address": "216.58.201.110:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.933671, + "t": 1.933689, + "transaction_id": 30 + }, + { + "address": "216.58.201.110:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.9337119999999999, + "t": 1.9337119999999999, + "transaction_id": 30 + }, + { + "address": "142.250.187.238:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.933735, + "t": 1.933748, + "transaction_id": 22 + }, + { + "address": "142.250.187.238:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.933767, + "t": 1.933767, + "transaction_id": 22 + } + ], + "x_dns_whoami": { + "system_v4": [ + { + "address": "162.158.196.124" + } + ], + "udp_v4": { + "8.8.4.4:53": [ + { + "address": "172.253.12.133" + } + ] + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000679, + "t": 0.000679, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.105046, + "t": 0.153843, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.153876, + "t": 0.153876, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 279, + "operation": "write", + "proto": "tcp", + "t0": 0.154047, + "t": 0.154108, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.154119, + "t": 0.212589, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 2926, + "operation": "read", + "proto": "tcp", + "t0": 0.213107, + "t": 0.213122, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 80, + "operation": "write", + "proto": "tcp", + "t0": 0.217051, + "t": 0.217089, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.217113, + "t": 0.217113, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.217237, + "t": 0.217267, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 164, + "operation": "write", + "proto": "tcp", + "t0": 0.217397, + "t": 0.21742, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.217436, + "t": 0.217457, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 38, + "operation": "write", + "proto": "tcp", + "t0": 0.217474, + "t": 0.217496, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.217501, + "t": 0.217525, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 542, + "operation": "read", + "proto": "tcp", + "t0": 0.217342, + "t": 0.260613, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 52, + "operation": "read", + "proto": "tcp", + "t0": 0.260664, + "t": 0.262044, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.262092, + "t": 0.262138, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 318, + "operation": "read", + "proto": "tcp", + "t0": 0.262148, + "t": 0.266138, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 250, + "operation": "read", + "proto": "tcp", + "t0": 0.266286, + "t": 0.27049, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.27074, + "t": 0.27074, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.27078, + "t": 0.270823, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.270553, + "t": 0.270906, + "transaction_id": 3 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "9.9.9.9", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "149.112.112.112", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "AAAA", + "ipv6": "2620:fe::fe", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "AAAA", + "ipv6": "2620:fe::9", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "dns.quad9.net.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.quad9.net", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001069, + "t": 0.1026, + "tags": [], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "9.9.9.9", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.105046, + "t": 0.153843, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "9.9.9.9:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIGyDCCBk6gAwIBAgIQDQsh8YVJ+5rl2I/Z0i4MlzAKBggqhkjOPQQDAzBWMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMTAwLgYDVQQDEydEaWdpQ2VydCBUTFMgSHlicmlkIEVDQyBTSEEzODQgMjAyMCBDQTEwHhcNMjMwNzMxMDAwMDAwWhcNMjQwODA2MjM1OTU5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTERMA8GA1UEBxMIQmVya2VsZXkxDjAMBgNVBAoTBVF1YWQ5MRQwEgYDVQQDDAsqLnF1YWQ5Lm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2L1x0DhQ0YJbM0HCmhJ9SsASVIiqDx6gK52FEsCGqsclbs+j2moJ9JCVWOrP65cxdcAvt4zCSRlG9DI4kOHWajggT3MIIE8zAfBgNVHSMEGDAWgBQKvAgpF4ylOW16Ds4zxy6z7fvDejAdBgNVHQ4EFgQUf6kSpdfGi0gCxz0qRW5AHkBg9JcwggGNBgNVHREEggGEMIIBgIILKi5xdWFkOS5uZXSCCXF1YWQ5Lm5ldIcECQkJCYcECQkJCocECQkJC4cECQkJDIcECQkJDYcECQkJDocECQkJD4cElXBwCYcElXBwCocElXBwC4cElXBwDIcElXBwDYcElXBwDocElXBwD4cElXBwcIcQJiAA/gAAAAAAAAAAAAAACYcQJiAA/gAAAAAAAAAAAAAAEIcQJiAA/gAAAAAAAAAAAAAAEYcQJiAA/gAAAAAAAAAAAAAAEocQJiAA/gAAAAAAAAAAAAAAE4cQJiAA/gAAAAAAAAAAAAAAFIcQJiAA/gAAAAAAAAAAAAAAFYcQJiAA/gAAAAAAAAAAAAAA/ocQJiAA/gAAAAAAAAAAAP4ACYcQJiAA/gAAAAAAAAAAAP4AEIcQJiAA/gAAAAAAAAAAAP4AEYcQJiAA/gAAAAAAAAAAAP4AEocQJiAA/gAAAAAAAAAAAP4AE4cQJiAA/gAAAAAAAAAAAP4AFIcQJiAA/gAAAAAAAAAAAP4AFTAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMIGbBgNVHR8EgZMwgZAwRqBEoEKGQGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwRqBEoEKGQGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMIGFBggrBgEFBQcBAQR5MHcwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBPBggrBgEFBQcwAoZDaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VExTSHlicmlkRUNDU0hBMzg0MjAyMENBMS0xLmNydDAJBgNVHRMEAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYmtrLxjAAAEAwBHMEUCIQCAWtmgTRnZsqjxZ7jdiDq0EEfxBB4kMj7oaZPv+URihQIgUJxBXliHw3ic/24+0NilFj/WfEcV1kNRARUhXS6xn08AdwBIsONr2qZHNA/lagL6nTDrHFIBy1bdLIHZu7+rOdiEcwAAAYmtrLxLAAAEAwBIMEYCIQClQbGksPNEGkRsO930WOdpYDBhFWVD44nw9ks9uyawJAIhAPypE9SPFDDkOgrOw+K++guz486lzdjaAfVzdyO6sw80AHUA2ra/az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sAAAGJray8FwAABAMARjBEAiBMmvofeflmsV3JoyFVid5GiJaPHkH9fDWkS93eP9fgEQIgfkTwCbSFNKnF47riYP4MJow7haBO+pFwRW5WAEC1AQQwCgYIKoZIzj0EAwMDaAAwZQIwOOsRrmNqg61CQTVH/6I6W1ZKb+5efJZpgZLVhCirpay7lyiuNyC1QkF6jfTAh+nGAjEAoRSNqC4pY/1GUJ3ygEjSOkUKlFnpXSxYIxJz9yJ43z05faF/uL+mrpAV9GXi2cpt", + "format": "base64" + }, + { + "data": "MIIEFzCCAv+gAwIBAgIQB/LzXIeod6967+lHmTUlvTANBgkqhkiG9w0BAQwFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaMFYxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMDAuBgNVBAMTJ0RpZ2lDZXJ0IFRMUyBIeWJyaWQgRUNDIFNIQTM4NCAyMDIwIENBMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMEbxppbmNmkKaDp1AS12+umsmxVwP/tmMZJLwYnUcu/cMEFesOxnYeJuq20ExfJqLSDyLiQ0cx0NTY8g3KwtdD3ImnI8YDEe0CPz2iHJlw5ifFNkU3aiYvkA8ND5b8vc6OCAYIwggF+MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAq8CCkXjKU5bXoOzjPHLrPt+8N6MB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwCATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG9w0BAQwFAAOCAQEAR1mBf9QbH7Bx9phdGLqYR5iwfnYr6v8ai6wms0KNMeZK6BnQ79oU59cUkqGS8qcuLa/7Hfb7U7CKP/zYFgrpsC62pQsYkDUmotr2qLcy/JUjS8ZFucTP5Hzu5sn4kL1y45nDHQsFfGqXbbKrAjbYwrwsAZI/BKOLdRHHuSm8EdCGupK8JvllyDfNJvaGEwwEqonleLHBTnm8dqMLUeTF0J5q/hosVq4GNiejcxwIfZMy0MJEGdqN9A57HSgDKwmKdsp33Id6rHtSJlWncg+d0ohP/rEhxRqhqjn1VtvChMQ1H3Dau0bwhr9kAMQ+959GG50jBbl9s08PqUU643QwmA==", + "format": "base64" + } + ], + "server_name": "dns.quad9.net", + "t0": 0.153876, + "t": 0.217113, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00022, + "t": 0.00022, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000489, + "t": 0.00055, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000491, + "t": 0.000552, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 179, + "operation": "read", + "proto": "udp", + "t0": 0.000611, + "t": 0.037762, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 179, + "operation": "read", + "proto": "udp", + "t0": 0.000924, + "t": 0.037762, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.038374, + "t": 0.038374, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:403::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:410::200e", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "AAAA", + "raw_response": "gKCBgAABAAUAAAAAA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAAEwAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAACcAECoAFFBAAgQWAAAAAAAAIA7ALQAcAAEAAAAnABAqABRQQAIEAgAAAAAAACAOwC0AHAABAAAAJwAQKgAUUEACBAMAAAAAAAAgDsAtABwAAQAAACcAECoAFFBAAgQQAAAAAAAAIA4=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000244, + "t": 0.037849, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "A", + "raw_response": "0NiBgAABAAgAAAAAA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAAA8QAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAAPEABNg60S7ALQABAAEAAADxAATYOsyOwC0AAQABAAAA8QAE2DrNLsAtAAEAAQAAAPEABI76tI7ALQABAAEAAADxAASO+rSuwC0AAQABAAAA8QAEjvvRDsAtAAEAAQAAAPEABI770S4=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000349, + "t": 0.037857, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:414::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:411::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000235, + "t": 0.10251, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "A", + "raw_response": "6PqBgAABAAcAAAABA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAAA1wAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAAFsABNg6zI7ALQABAAEAAABbAASO+rSuwC0AAQABAAAAWwAEjvvRLsAtAAEAAQAAAFsABI770Q7ALQABAAEAAABbAASO+rSOwC0AAQABAAAAWwAE2DrNLgAAKQIAAACAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000955, + "t": 0.266405, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:410::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:809::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:403::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:411::200e", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "AAAA", + "raw_response": "uZ2BgAABAAUAAAABA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAA1wAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAAQQAECoAFFBAAgQQAAAAAAAAIA7ALQAcAAEAAAEEABAqABRQQAIICQAAAAAAACAOwC0AHAABAAABBAAQKgAUUEACBAMAAAAAAAAgDsAtABwAAQAAAQQAECoAFFBAAgQRAAAAAAAAIA4AACkCAAAAgAAAAA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.0007, + "t": 0.270632, + "tags": [], + "transaction_id": 3 + } + ], + "requests": [ + { + "network": "tcp", + "address": "142.251.209.14:443", + "alpn": "h2", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.youtube.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.youtube.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.youtube.com/" + }, + "response": { + "body": "\u003c!DOCTYPE html\u003e\u003chtml style=\"font-size: 10px;font-family: Roboto, Arial, sans-serif;\" lang=\"en\" darker-dark-theme darker-dark-theme-deprecate system-icons typography typography-spacing\u003e\u003chead\u003e\u003cscript data-id=\"_gd\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003ewindow.WIZ_global_data = {\"MuJWjd\":true,\"nQyAE\":{},\"oxN3nb\":{\"1\":false}};\u003c/script\u003e\u003cmeta http-equiv=\"origin-trial\" content=\"ApvK67ociHgr2egd6c2ZjrfPuRs8BHcvSggogIOPQNH7GJ3cVlyJ1NOq/COCdj0+zxskqHt9HgLLETc8qqD+vwsAAABteyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJQcml2YWN5U2FuZGJveEFkc0FQSXMiLCJleHBpcnkiOjE2OTUxNjc5OTksImlzU3ViZG9tYWluIjp0cnVlfQ==\"/\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003evar ytcfg={d:function(){return window.yt\u0026\u0026yt.config_||ytcfg.data_||(ytcfg.data_={})},get:function(k,o){return k in ytcfg.d()?ytcfg.d()[k]:o},set:function(){var a=arguments;if(a.length\u003e1)ytcfg.d()[a[0]]=a[1];else{var k;for(k in a[0])ytcfg.d()[k]=a[0][k]}}};\nwindow.ytcfg.set('EMERGENCY_BASE_URL', '\\/error_204?t\\x3djserror\\x26level\\x3dERROR\\x26client.name\\x3d1\\x26client.version\\x3d2.20231121.08.00');\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e(function(){window.yterr=window.yterr||true;window.unhandledErrorMessages={};window.unhandledErrorCount=0;\nwindow.onerror=function(msg,url,line,columnNumber,error){var err;if(error)err=error;else{err=new Error;err.stack=\"\";err.message=msg;err.fileName=url;err.lineNumber=line;if(!isNaN(columnNumber))err[\"columnNumber\"]=columnNumber}var message=String(err.message);if(!err.message||message in window.unhandledErrorMessages||window.unhandledErrorCount\u003e=5)return;window.unhandledErrorCount+=1;window.unhandledErrorMessages[message]=true;var img=new Image;window.emergencyTimeoutImg=img;img.onload=img.onerror=function(){delete window.emergencyTimeoutImg};\nvar combinedLineAndColumn=err.lineNumber;if(!isNaN(err[\"columnNumber\"]))combinedLineAndColumn=combinedLineAndColumn+(\":\"+err[\"columnNumber\"]);var stack=err.stack||\"\";var values={\"msg\":message,\"type\":err.name,\"client.params\":\"unhandled window error\",\"file\":err.fileName,\"line\":combinedLineAndColumn,\"stack\":stack.substr(0,500)};var thirdPartyScript=!err.fileName||err.fileName===\"\u003canonymous\u003e\"||stack.indexOf(\"extension://\")\u003e=0;var replaced=stack.replace(/https:\\/\\/www.youtube.com\\//g,\"\");if(replaced.match(/https?:\\/\\/[^/]+\\//))thirdPartyScript=\ntrue;else if(stack.indexOf(\"trapProp\")\u003e=0\u0026\u0026stack.indexOf(\"trapChain\")\u003e=0)thirdPartyScript=true;else if(message.indexOf(\"redefine non-configurable\")\u003e=0)thirdPartyScript=true;var baseUrl=window[\"ytcfg\"].get(\"EMERGENCY_BASE_URL\",\"https://www.youtube.com/error_204?t=jserror\u0026level=ERROR\");var unsupported=message.indexOf(\"window.customElements is undefined\")\u003e=0;if(thirdPartyScript||unsupported)baseUrl=baseUrl.replace(\"level=ERROR\",\"level=WARNING\");var parts=[baseUrl];var key;for(key in values){var value=\nvalues[key];if(value)parts.push(key+\"=\"+encodeURIComponent(value))}img.src=parts.join(\"\u0026\")};\n(function(){function _getExtendedNativePrototype(tag){var p=this._nativePrototypes[tag];if(!p){p=Object.create(this.getNativePrototype(tag));var p$=Object.getOwnPropertyNames(window[\"Polymer\"].Base);var i=0;var n=void 0;for(;i\u003cp$.length\u0026\u0026(n=p$[i]);i++)if(!window[\"Polymer\"].BaseDescriptors[n])try{p[n]=window[\"Polymer\"].Base[n]}catch(e){throw new Error(\"Error while copying property: \"+n+\". Tag is \"+tag);}try{Object.defineProperties(p,window[\"Polymer\"].BaseDescriptors)}catch(e){throw new Error(\"Polymer define property failed for \"+\nObject.keys(p));}this._nativePrototypes[tag]=p}return p}function handlePolymerError(msg){window.onerror(msg,window.location.href,0,0,new Error(Array.prototype.join.call(arguments,\",\")))}var origPolymer=window[\"Polymer\"];var newPolymer=function(config){if(!origPolymer._ytIntercepted\u0026\u0026window[\"Polymer\"].Base){origPolymer._ytIntercepted=true;window[\"Polymer\"].Base._getExtendedNativePrototype=_getExtendedNativePrototype;window[\"Polymer\"].Base._error=handlePolymerError;window[\"Polymer\"].Base._warn=handlePolymerError}return origPolymer.apply(this,\narguments)};var origDescriptor=Object.getOwnPropertyDescriptor(window,\"Polymer\");Object.defineProperty(window,\"Polymer\",{set:function(p){if(origDescriptor\u0026\u0026origDescriptor.set\u0026\u0026origDescriptor.get){origDescriptor.set(p);origPolymer=origDescriptor.get()}else origPolymer=p;if(typeof origPolymer===\"function\")Object.defineProperty(window,\"Polymer\",{value:origPolymer,configurable:true,enumerable:true,writable:true})},get:function(){return typeof origPolymer===\"function\"?newPolymer:origPolymer},configurable:true,\nenumerable:true})})();}).call(this);\n\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003ewindow.Polymer=window.Polymer||{};window.Polymer.legacyOptimizations=true;window.Polymer.setPassiveTouchGestures=true;window.ShadyDOM={force:true,preferPerformance:true,noPatch:true};\nwindow.polymerSkipLoadingFontRoboto = true;window.ShadyCSS = {disableRuntime: true};\u003c/script\u003e\u003clink rel=\"shortcut icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon.ico\" type=\"image/x-icon\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_32x32.png\" sizes=\"32x32\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_48x48.png\" sizes=\"48x48\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_96x96.png\" sizes=\"96x96\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_144x144.png\" sizes=\"144x144\"\u003e\u003ctitle\u003eYouTube\u003c/title\u003e\u003clink rel=\"canonical\" href=\"https://www.youtube.com/\"\u003e\u003clink rel=\"alternate\" media=\"handheld\" href=\"https://m.youtube.com/\"\u003e\u003clink rel=\"alternate\" media=\"only screen and (max-width: 640px)\" href=\"https://m.youtube.com/\"\u003e\u003cmeta property=\"og:image\" content=\"https://www.youtube.com/img/desktop/yt_1200.png\"\u003e\u003cmeta property=\"fb:app_id\" content=\"87741124305\"\u003e\u003clink rel=\"alternate\" href=\"android-app://com.google.android.youtube/http/www.youtube.com/\"\u003e\u003clink rel=\"alternate\" href=\"ios-app://544007664/vnd.youtube/www.youtube.com/\"\u003e\u003cmeta name=\"description\" content=\"Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.\"\u003e\u003cmeta name=\"keywords\" content=\"video, sharing, camera phone, video phone, free, upload\"\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif ('undefined' == typeof Symbol || 'undefined' == typeof Symbol.iterator) {delete Array.prototype.entries;}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003evar ytcsi={gt:function(n){n=(n||\"\")+\"data_\";return ytcsi[n]||(ytcsi[n]={tick:{},info:{},gel:{preLoggedGelInfos:[]}})},now:window.performance\u0026\u0026window.performance.timing\u0026\u0026window.performance.now\u0026\u0026window.performance.timing.navigationStart?function(){return window.performance.timing.navigationStart+window.performance.now()}:function(){return(new Date).getTime()},tick:function(l,t,n){var ticks=ytcsi.gt(n).tick;var v=t||ytcsi.now();if(ticks[l]){ticks[\"_\"+l]=ticks[\"_\"+l]||[ticks[l]];ticks[\"_\"+l].push(v)}ticks[l]=\nv},info:function(k,v,n){ytcsi.gt(n).info[k]=v},infoGel:function(p,n){ytcsi.gt(n).gel.preLoggedGelInfos.push(p)},setStart:function(t,n){ytcsi.tick(\"_start\",t,n)}};\n(function(w,d){function isGecko(){if(!w.navigator)return false;try{if(w.navigator.userAgentData\u0026\u0026w.navigator.userAgentData.brands\u0026\u0026w.navigator.userAgentData.brands.length){var brands=w.navigator.userAgentData.brands;var i=0;for(;i\u003cbrands.length;i++)if(brands[i]\u0026\u0026brands[i].brand===\"Firefox\")return true;return false}}catch(e){setTimeout(function(){throw e;})}if(!w.navigator.userAgent)return false;var ua=w.navigator.userAgent;return ua.indexOf(\"Gecko\")\u003e0\u0026\u0026ua.toLowerCase().indexOf(\"webkit\")\u003c0\u0026\u0026ua.indexOf(\"Edge\")\u003c\n0\u0026\u0026ua.indexOf(\"Trident\")\u003c0\u0026\u0026ua.indexOf(\"MSIE\")\u003c0}ytcsi.setStart(w.performance?w.performance.timing.responseStart:null);var isPrerender=(d.visibilityState||d.webkitVisibilityState)==\"prerender\";var vName=!d.visibilityState\u0026\u0026d.webkitVisibilityState?\"webkitvisibilitychange\":\"visibilitychange\";if(isPrerender){var startTick=function(){ytcsi.setStart();d.removeEventListener(vName,startTick)};d.addEventListener(vName,startTick,false)}if(d.addEventListener)d.addEventListener(vName,function(){ytcsi.tick(\"vc\")},\nfalse);if(isGecko()){var isHidden=(d.visibilityState||d.webkitVisibilityState)==\"hidden\";if(isHidden)ytcsi.tick(\"vc\")}var slt=function(el,t){setTimeout(function(){var n=ytcsi.now();el.loadTime=n;if(el.slt)el.slt()},t)};w.__ytRIL=function(el){if(!el.getAttribute(\"data-thumb\"))if(w.requestAnimationFrame)w.requestAnimationFrame(function(){slt(el,0)});else slt(el,16)}})(window,document);\n\u003c/script\u003e\u003clink rel=\"preload\" href=\"https://i.ytimg.com/generate_204\" as=\"fetch\"\u003e\u003clink as=\"script\" rel=\"preload\" href=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/desktop_polymer.vflset/desktop_polymer.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/custom-elements-es5-adapter.vflset/custom-elements-es5-adapter.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/webcomponents-sd.vflset/webcomponents-sd.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/intersection-observer.min.vflset/intersection-observer.min.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('lpcs', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e(function() {window.ytplayer={};\nytcfg.set({\"CLIENT_CANARY_STATE\":\"none\",\"DEVICE\":\"cbr\\u003dChrome\\u0026cbrver\\u003d116.0.0.0\\u0026ceng\\u003dWebKit\\u0026cengver\\u003d537.36\\u0026cos\\u003dWindows\\u0026cosver\\u003d10.0\\u0026cplatform\\u003dDESKTOP\",\"DISABLE_YT_IMG_DELAY_LOADING\":false,\"ELEMENT_POOL_DEFAULT_CAP\":75,\"EVENT_ID\":\"l_pkZdOvOOaTi9oPlLuA8Ao\",\"EXPERIMENT_FLAGS\":{\"H5_enable_full_pacf_logging\":true,\"H5_use_async_logging\":true,\"ab_det_apb_b\":true,\"ab_det_fet_wr\":true,\"ab_det_fet_wr_en\":true,\"ab_det_gen_re\":true,\"action_companion_center_align_description\":true,\"allow_skip_networkless\":true,\"att_web_record_metrics\":true,\"autoescape_tempdata_url\":true,\"browse_next_continuations_migration_playlist\":true,\"c3_watch_page_component\":true,\"cache_utc_offset_minutes_in_pref_cookie\":true,\"cancel_pending_navs\":true,\"check_user_lact_at_prompt_shown_time_on_web\":true,\"clear_user_partitioned_ls\":true,\"client_respect_autoplay_switch_button_renderer\":true,\"cold_missing_history\":true,\"compress_gel\":true,\"csi_on_gel\":true,\"decorate_autoplay_renderer\":true,\"defer_menus\":true,\"defer_overlays\":true,\"defer_rendering_outside_visible_area\":true,\"deprecate_csi_has_info\":true,\"deprecate_pair_servlet_enabled\":true,\"desktop_add_to_playlist_renderer_dialog_popup\":true,\"desktop_animate_miniplayer\":true,\"desktop_client_release\":true,\"desktop_delay_player_resizing\":true,\"desktop_enable_dmpanel_click_drag_scroll\":true,\"desktop_enable_dmpanel_scroll\":true,\"desktop_enable_dmpanel_wheel_scroll\":true,\"desktop_image_cta_no_background\":true,\"desktop_keyboard_capture_keydown_killswitch\":true,\"desktop_log_img_click_location\":true,\"desktop_mix_use_sampled_color_for_bottom_bar\":true,\"desktop_mix_use_sampled_color_for_bottom_bar_search\":true,\"desktop_mix_use_sampled_color_for_bottom_bar_watch_next\":true,\"desktop_notification_high_priority_ignore_push\":true,\"desktop_notification_set_title_bar\":true,\"desktop_search_no_spacing_pos_zero\":true,\"desktop_search_prominent_thumbs\":true,\"desktop_sparkles_light_cta_button\":true,\"desktop_swipeable_guide\":true,\"desktop_themeable_vulcan\":true,\"desktop_use_new_history_manager\":true,\"disable_banner_collapsing_when_hidden\":true,\"disable_child_node_auto_formatted_strings\":true,\"disable_dependency_injection\":true,\"disable_features_for_supex\":true,\"disable_legacy_desktop_remote_queue\":true,\"disable_pacf_logging_for_memory_limited_tv\":true,\"disable_simple_mixed_direction_formatted_strings\":true,\"disable_super_chat_buy_button\":true,\"disable_thumbnail_preloading\":true,\"embeds_web_nwl_disable_nocookie\":true,\"enable_ab_report_on_errorscreen\":true,\"enable_ab_rp_int\":true,\"enable_ads_web_ep_buenos_aires_and_padding_fix\":true,\"enable_ata_dialog_all_web\":true,\"enable_browser_cookie_status_monitoring\":true,\"enable_buenos_aires_page_header_mini_app_dest\":true,\"enable_button_behavior_reuse\":true,\"enable_call_to_action_clarification_renderer_bottom_section_conditions\":true,\"enable_channel_page_modern_profile_section\":true,\"enable_cinematic_blur_desktop_loading\":true,\"enable_client_sli_logging\":true,\"enable_client_streamz_web\":true,\"enable_container_wiz_migration_refactor\":true,\"enable_desktop_amsterdam_info_panels\":true,\"enable_dismiss_loading_manually\":true,\"enable_dma_web_toast\":true,\"enable_docked_chat_messages\":true,\"enable_dsa_compliant_banner_image_ad_renderer\":true,\"enable_dsa_one_click_ata_translators_infeed_elements\":true,\"enable_exit_confirmation_dialog\":true,\"enable_exit_confirmation_dialog_web\":true,\"enable_filling_splash_screen_view_model\":true,\"enable_first_frame_ready_csi_logging\":true,\"enable_first_user_action_csi_logging\":true,\"enable_flow_logging_p4e\":true,\"enable_free_preview_timer\":true,\"enable_game_info_dialog\":true,\"enable_gel_log_commands\":true,\"enable_get_account_switcher_endpoint_on_webfe\":true,\"enable_google_payment_billing_command_client_support\":true,\"enable_handle_search_on_channel_switcher\":true,\"enable_handles_account_menu_switcher\":true,\"enable_handles_in_mention_suggest_posts\":true,\"enable_high_frequency_cookie_rotation\":true,\"enable_hlp_client_icon_pick\":true,\"enable_horizontal_list_renderer_scroll_based_on_items_visibility\":true,\"enable_image_poll_post_creation\":true,\"enable_inline_shorts_on_wn\":true,\"enable_interstitial_entity_check\":true,\"enable_lcr_emoji_fountain\":true,\"enable_loggingcontext_trackingparams\":true,\"enable_masthead_quartile_ping_fix\":true,\"enable_memberships_and_purchases\":true,\"enable_mentions_in_reposts\":true,\"enable_microformat_data\":true,\"enable_mini_app_microformats\":true,\"enable_mixed_direction_formatted_strings\":true,\"enable_multi_image_post_creation\":true,\"enable_names_handles_account_switcher\":true,\"enable_new_channel_creation_for_id4all\":true,\"enable_offer_suppression\":true,\"enable_on_yt_command_executor_command_to_navigate\":true,\"enable_pacf_slot_asde_infeed_h5\":true,\"enable_pacf_slot_asde_player_byte_h5\":true,\"enable_pacf_slot_asde_player_byte_h5_TV\":true,\"enable_pacf_through_ybfe_tv\":true,\"enable_pacf_through_ybfe_tv_for_page_top_formats\":true,\"enable_pacf_through_ysfe_tv\":true,\"enable_pass_sdc_get_accounts_list\":true,\"enable_persistent_page_type_listener\":true,\"enable_pl_r_c\":true,\"enable_pl_r_c_s\":true,\"enable_pl_r_si_fa\":true,\"enable_play_state_logging\":true,\"enable_playables_shelf_dismissal\":true,\"enable_playables_url_resolution\":true,\"enable_player_param_truncation_before_navigation_on_web\":true,\"enable_player_param_truncation_before_navigation_on_web_on_search\":true,\"enable_poll_choice_border_on_web\":true,\"enable_polymer_resin\":true,\"enable_polymer_resin_migration\":true,\"enable_populate_att_psd_in_abe_feedback\":true,\"enable_populate_psd_in_abe_feedback\":true,\"enable_post_cct_links\":true,\"enable_post_scheduling\":true,\"enable_ppp_url_param_search\":true,\"enable_premium_voluntary_pause\":true,\"enable_programmed_playlist_color_sample\":true,\"enable_programmed_playlist_redesign\":true,\"enable_purchase_activity_in_paid_memberships\":true,\"enable_quiz_creation\":true,\"enable_reel_watch_sequence\":true,\"enable_resume_on_exit_confirmation_dismissed\":true,\"enable_scrolling_fix\":true,\"enable_sdf_midroll_postroll_player_bytes_video_h5\":true,\"enable_sdf_preroll_player_bytes_video_h5\":true,\"enable_sdf_preroll_player_bytes_video_tv\":true,\"enable_section_list_scroll_to_item_section_web\":true,\"enable_seedless_shorts_url\":true,\"enable_server_stitched_dai\":true,\"enable_service_ajax_csn\":true,\"enable_servlet_errors_streamz\":true,\"enable_servlet_streamz\":true,\"enable_sfv_audio_pivot_url\":true,\"enable_sfv_effect_pivot_microformat\":true,\"enable_sfv_effect_pivot_url\":true,\"enable_shorts_singleton_channel_web\":true,\"enable_shorts_tab_page\":true,\"enable_showing_genre_data\":true,\"enable_signals\":true,\"enable_skip_ad_guidance_prompt\":true,\"enable_skippable_ads_for_unplugged_ad_pod\":true,\"enable_smearing_expansion_dai\":true,\"enable_sparkles_web_clickable_description\":true,\"enable_splash_screen_loading_messages\":true,\"enable_squiffle_gif_handles_landing_page\":true,\"enable_streamline_repost_flow\":true,\"enable_structured_description_shorts_web_mweb\":true,\"enable_tectonic_ad_ux_for_halftime\":true,\"enable_third_party_info\":true,\"enable_time_out_messages\":true,\"enable_topsoil_wta_for_halftime_live_infra\":true,\"enable_true_inline_for_desktop_home_feed_vac\":true,\"enable_unavailable_videos_watch_page\":true,\"enable_unified_cancellation_for_premium\":true,\"enable_watch_next_pause_autoplay_lact\":true,\"enable_web_gpay_command_spinner\":true,\"enable_web_ketchup_hero_animation\":true,\"enable_web_poster_hover_animation\":true,\"enable_web_shorts_audio_pivot\":true,\"enable_web_tiered_gel\":true,\"enable_window_constrained_buy_flow_dialog\":true,\"enable_wiz_next_lp2_msof\":true,\"enable_yoodle\":true,\"enable_ypc_spinners\":true,\"enable_yt_ata_iframe_authuser\":true,\"enable_ytc_refunds_submit_form_signal_action\":true,\"enable_ytc_self_serve_refunds\":true,\"endpoint_handler_logging_cleanup_killswitch\":true,\"err_on_pl_r_c\":true,\"export_networkless_options\":true,\"external_fullscreen\":true,\"external_fullscreen_with_edu\":true,\"fetch_bid_for_dclk_status\":true,\"fill_single_video_with_notify_to_lasr\":true,\"gcf_config_store_enabled\":true,\"gcf_music_innertube\":true,\"gda_enable_playlist_download\":true,\"global_spacebar_pause\":true,\"gpa_sparkles_ten_percent_layer\":true,\"h5_companion_enable_adcpn_macro_substitution_for_click_pings\":true,\"h5_enable_generic_error_logging_event\":true,\"h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\":true,\"h5_reset_cache_and_filter_before_update_masthead\":true,\"handles_in_mention_suggest_posts\":true,\"hide_endpoint_overflow_on_ytd_display_ad_renderer\":true,\"html5_enable_ads_client_monitoring_log_tv\":true,\"html5_enable_single_video_vod_ivar_on_pacf\":true,\"html5_log_trigger_events_with_debug_data\":true,\"html5_recognize_predict_start_cue_point\":true,\"html5_server_stitched_dai_group\":true,\"il_use_view_model_logging_context\":true,\"imp_cache_player_requests\":true,\"include_autoplay_count_in_playlists\":true,\"is_browser_support_for_webcam_streaming\":true,\"is_part_of_any_user_engagement_experiment\":true,\"json_condensed_response\":true,\"kev_adb_pg\":true,\"kevlar_app_shortcuts\":true,\"kevlar_appbehavior_attach_startup_tasks\":true,\"kevlar_appshell_service_worker\":true,\"kevlar_autofocus_menu_on_keyboard_nav\":true,\"kevlar_autonav_popup_filtering\":true,\"kevlar_av_eliminate_polling\":true,\"kevlar_cache_cold_load_response\":true,\"kevlar_cache_on_ttl_player\":true,\"kevlar_cache_on_ttl_search\":true,\"kevlar_calculate_grid_collapsible\":true,\"kevlar_cancel_scheduled_comment_jobs_on_navigate\":true,\"kevlar_channel_creation_form_resolver\":true,\"kevlar_channel_trailer_multi_attach\":true,\"kevlar_chapters_list_view_seek_by_chapter\":true,\"kevlar_clear_duplicate_pref_cookie\":true,\"kevlar_clear_non_displayable_url_params\":true,\"kevlar_client_side_screens\":true,\"kevlar_command_handler\":true,\"kevlar_command_handler_clicks\":true,\"kevlar_command_handler_formatted_string\":true,\"kevlar_command_url\":true,\"kevlar_continue_playback_without_player_response\":true,\"kevlar_decorate_endpoint_with_onesie_config\":true,\"kevlar_delay_watch_initial_data\":true,\"kevlar_disable_background_prefetch\":true,\"kevlar_disable_pending_command\":true,\"kevlar_dps_driven_smart_downloads_refresh\":true,\"kevlar_dragdrop_fast_scroll\":true,\"kevlar_dropdown_fix\":true,\"kevlar_droppable_prefetchable_requests\":true,\"kevlar_early_popup_close\":true,\"kevlar_enable_download_upsell_type_a\":true,\"kevlar_enable_editable_playlists\":true,\"kevlar_enable_em_offlineable_discovery\":true,\"kevlar_enable_reorderable_playlists\":true,\"kevlar_enable_shorts_prefetch_in_sequence\":true,\"kevlar_enable_shorts_response_chunking\":true,\"kevlar_enable_up_arrow\":true,\"kevlar_exit_fullscreen_leaving_watch\":true,\"kevlar_fill_offline_availability_type_for_gda\":true,\"kevlar_fix_playlist_continuation\":true,\"kevlar_flexible_menu\":true,\"kevlar_fluid_touch_scroll\":true,\"kevlar_frontend_queue_recover\":true,\"kevlar_gel_error_routing\":true,\"kevlar_guide_refresh\":true,\"kevlar_help_use_locale\":true,\"kevlar_hide_playlist_playback_status\":true,\"kevlar_hide_pp_url_param\":true,\"kevlar_hide_time_continue_url_param\":true,\"kevlar_home_skeleton\":true,\"kevlar_js_fixes\":true,\"kevlar_keyboard_button_focus\":true,\"kevlar_larger_three_dot_tap\":true,\"kevlar_lazy_list_resume_for_autofill\":true,\"kevlar_local_innertube_response\":true,\"kevlar_macro_markers_keyboard_shortcut\":true,\"kevlar_masthead_store\":true,\"kevlar_mealbar_above_player\":true,\"kevlar_miniplayer\":true,\"kevlar_miniplayer_expand_top\":true,\"kevlar_miniplayer_play_pause_on_scrim\":true,\"kevlar_miniplayer_queue_user_activation\":true,\"kevlar_mix_handle_first_endpoint_different\":true,\"kevlar_modern_sd\":true,\"kevlar_next_cold_on_auth_change_detected\":true,\"kevlar_nitrate_driven_tooltips\":true,\"kevlar_no_autoscroll_on_playlist_hover\":true,\"kevlar_op_infra\":true,\"kevlar_op_warm_pages\":true,\"kevlar_pandown_polyfill\":true,\"kevlar_passive_event_listeners\":true,\"kevlar_playback_associated_queue\":true,\"kevlar_player_cached_load_config\":true,\"kevlar_player_check_ad_state_on_stop\":true,\"kevlar_player_load_player_no_op\":true,\"kevlar_player_new_bootstrap_adoption\":true,\"kevlar_player_playlist_use_local_index\":true,\"kevlar_player_watch_endpoint_navigation\":true,\"kevlar_playlist_drag_handles\":true,\"kevlar_playlist_use_x_close_button\":true,\"kevlar_prefetch\":true,\"kevlar_prevent_polymer_dynamic_font_load\":true,\"kevlar_queue_use_update_api\":true,\"kevlar_refresh_gesture\":true,\"kevlar_rendererstamper_event_listener\":true,\"kevlar_replace_short_to_short_history_state\":true,\"kevlar_request_sequencing\":true,\"kevlar_resolve_command_for_confirm_dialog\":true,\"kevlar_response_command_processor_page\":true,\"kevlar_scroll_chips_on_touch\":true,\"kevlar_scrollbar_rework\":true,\"kevlar_service_command_check\":true,\"kevlar_set_internal_player_size\":true,\"kevlar_shell_for_downloads_page\":true,\"kevlar_shorts_seedless_retry_initial_load\":true,\"kevlar_should_maintain_stable_list\":true,\"kevlar_show_em_dl_btn\":true,\"kevlar_show_em_dl_menu_item\":true,\"kevlar_show_em_dl_settings_tab\":true,\"kevlar_show_playlist_dl_btn\":true,\"kevlar_startup_lifecycle\":true,\"kevlar_structured_description_content_inline\":true,\"kevlar_system_icons\":true,\"kevlar_tabs_gesture\":true,\"kevlar_text_inline_expander_formatted_snippet\":true,\"kevlar_three_dot_ink\":true,\"kevlar_thumbnail_fluid\":true,\"kevlar_toast_manager\":true,\"kevlar_topbar_logo_fallback_home\":true,\"kevlar_touch_feedback\":true,\"kevlar_touch_gesture_ves\":true,\"kevlar_transcript_engagement_panel\":true,\"kevlar_tuner_run_default_comments_delay\":true,\"kevlar_tuner_should_defer_detach\":true,\"kevlar_typography_spacing_update\":true,\"kevlar_typography_update\":true,\"kevlar_unified_errors_init\":true,\"kevlar_use_response_ttl_to_invalidate_cache\":true,\"kevlar_use_vimio_behavior\":true,\"kevlar_use_wil_icons\":true,\"kevlar_use_ytd_player\":true,\"kevlar_variable_youtube_sans\":true,\"kevlar_vimio_use_shared_monitor\":true,\"kevlar_voice_logging_fix\":true,\"kevlar_voice_search_use_yt_endpoint\":true,\"kevlar_watch_cinematics\":true,\"kevlar_watch_color_update\":true,\"kevlar_watch_comments_ep_disable_theater\":true,\"kevlar_watch_contents_data_provider\":true,\"kevlar_watch_contents_data_provider_persistent\":true,\"kevlar_watch_disable_legacy_metadata_updates\":true,\"kevlar_watch_drag_handles\":true,\"kevlar_watch_flexy_fullscreen_manager\":true,\"kevlar_watch_flexy_loading_state_manager\":true,\"kevlar_watch_flexy_miniplayer_manager\":true,\"kevlar_watch_flexy_navigation_manager\":true,\"kevlar_watch_flexy_player_loop_manager\":true,\"kevlar_watch_flexy_scroll_manager\":true,\"kevlar_watch_flexy_title_manager\":true,\"kevlar_watch_flexy_use_controller\":true,\"kevlar_watch_focus_on_engagement_panels\":true,\"kevlar_watch_gesture_pandown\":true,\"kevlar_watch_hide_comments_teaser\":true,\"kevlar_watch_hide_comments_while_panel_open\":true,\"kevlar_watch_js_panel_height\":true,\"kevlar_watch_metadata_refresh\":true,\"kevlar_watch_metadata_refresh_attached_subscribe\":true,\"kevlar_watch_metadata_refresh_clickable_description\":true,\"kevlar_watch_metadata_refresh_compact_view_count\":true,\"kevlar_watch_metadata_refresh_description_info_dedicated_line\":true,\"kevlar_watch_metadata_refresh_description_inline_expander\":true,\"kevlar_watch_metadata_refresh_description_primary_color\":true,\"kevlar_watch_metadata_refresh_for_live_killswitch\":true,\"kevlar_watch_metadata_refresh_full_width_description\":true,\"kevlar_watch_metadata_refresh_left_aligned_video_actions\":true,\"kevlar_watch_metadata_refresh_lower_case_video_actions\":true,\"kevlar_watch_metadata_refresh_narrower_item_wrap\":true,\"kevlar_watch_metadata_refresh_relative_date\":true,\"kevlar_watch_metadata_refresh_top_aligned_actions\":true,\"kevlar_watch_modern_metapanel\":true,\"kevlar_watch_modern_panels\":true,\"kevlar_watch_panel_height_matches_player\":true,\"kevlar_woffle\":true,\"kevlar_woffle_fallback_image\":true,\"kevlar_woffle_log_thumbnail_failure_ve\":true,\"kevlar_ytb_live_badges\":true,\"killswitch_toggle_button_behavior_resolve_command\":true,\"live_chat_banner_expansion_fix\":true,\"live_chat_enable_command_handler_resolver_map\":true,\"live_chat_enable_qna_banner_overflow_menu_actions\":true,\"live_chat_enable_qna_channel\":true,\"live_chat_enable_rta_manager\":true,\"live_chat_enable_send_button_in_slow_mode\":true,\"live_chat_filter_emoji_suggestions\":true,\"live_chat_increased_min_height\":true,\"live_chat_over_playlist\":true,\"live_chat_unclickable_message\":true,\"live_chat_use_toggle_for_mod_activity\":true,\"live_chat_use_toggle_for_timestamps\":true,\"live_chat_web_enable_command_handler\":true,\"live_chat_web_use_emoji_manager_singleton\":true,\"live_chat_whole_message_clickable\":true,\"log_errors_through_nwl_on_retry\":true,\"log_gel_compression_latency\":true,\"log_heartbeat_with_lifecycles\":true,\"log_vis_on_tab_change\":true,\"log_web_endpoint_to_layer\":true,\"main_app_controller_extraction_batch_1\":true,\"main_app_controller_extraction_batch_10\":true,\"main_app_controller_extraction_batch_11\":true,\"main_app_controller_extraction_batch_12\":true,\"main_app_controller_extraction_batch_13\":true,\"main_app_controller_extraction_batch_14\":true,\"main_app_controller_extraction_batch_2\":true,\"main_app_controller_extraction_batch_3\":true,\"main_app_controller_extraction_batch_4\":true,\"main_app_controller_extraction_batch_6\":true,\"main_app_controller_extraction_batch_7\":true,\"main_app_controller_extraction_batch_8\":true,\"mdx_enable_privacy_disclosure_ui\":true,\"mdx_load_cast_api_bootstrap_script\":true,\"migrate_events_to_ts\":true,\"migrate_remaining_web_ad_badges_to_innertube\":true,\"move_vss_away_from_login_info_cookie\":true,\"music_on_main_open_playlist_recommended_videos_in_miniplayer\":true,\"mweb_actions_command_handler\":true,\"mweb_command_handler\":true,\"mweb_deprecate_skip_ve_logging\":true,\"mweb_disable_set_autonav_state_in_player\":true,\"mweb_enable_keto_batch_s3\":true,\"mweb_enable_search_big_thumbs\":true,\"mweb_logo_use_home_page_ve\":true,\"mweb_render_crawler_description\":true,\"mweb_stop_truncating_meta_tags\":true,\"networkless_gel\":true,\"networkless_logging\":true,\"new_csn_storage_design\":true,\"no_sub_count_on_sub_button\":true,\"nwl_send_fast_on_unload\":true,\"nwl_send_from_memory_when_online\":true,\"offline_error_handling\":true,\"pageid_as_header_web\":true,\"pause_ad_video_on_desktop_engagement_panel_click\":true,\"pdg_enable_flow_logging_for_super_chat\":true,\"pdg_enable_flow_logging_for_super_stickers\":true,\"player_allow_autonav_after_playlist\":true,\"player_bootstrap_method\":true,\"player_doubletap_to_seek\":true,\"player_enable_playback_playlist_change\":true,\"polymer_bad_build_labels\":true,\"polymer_enable_controller_extraction\":true,\"polymer_enable_sink_wrapper\":true,\"polymer_task_manager_proxied_promise\":true,\"polymer_verifiy_app_state\":true,\"polymer_video_renderer_defer_menu\":true,\"polymer_ytdi_enable_global_injector\":true,\"problem_walkthrough_sd\":true,\"qoe_send_and_write\":true,\"record_app_crashed_web\":true,\"reduce_emoji_size_to_20\":true,\"reload_without_polymer_innertube\":true,\"remove_web_comment_id_cache\":true,\"remove_yt_simple_endpoint_from_desktop_display_ad_title\":true,\"replace_closure_window_with_updated_ytwindow_in_studio\":true,\"rich_grid_resize_observer\":true,\"rich_grid_resize_observer_only\":true,\"rich_grid_watch_disable_miniplayer\":true,\"rich_grid_watch_hide_rows_above\":true,\"scheduler_use_raf_by_default\":true,\"search_ui_enable_pve_buy_button\":true,\"search_ui_official_cards_enable_paid_virtual_event_buy_button\":true,\"searchbox_reporting\":true,\"serve_pdp_at_canonical_url\":true,\"service_worker_enabled\":true,\"service_worker_push_enabled\":true,\"service_worker_push_home_page_prompt\":true,\"service_worker_push_watch_page_prompt\":true,\"service_worker_subscribe_with_vapid_key\":true,\"shell_load_gcf\":true,\"shorts_controller_retrieve_seedless_sequence\":true,\"shorts_desktop_watch_while_p2\":true,\"shorts_desktop_watch_while_sdp\":true,\"shorts_in_playlists_web\":true,\"shorts_overlay_reshuffle\":true,\"shorts_profile_header_c3po\":true,\"should_clear_video_data_on_player_cued_unstarted\":true,\"show_civ_reminder_on_web\":true,\"show_pom_role_on_web\":true,\"skip_invalid_ytcsi_ticks\":true,\"skip_ls_gel_retry\":true,\"skip_setting_info_in_csi_data_object\":true,\"sponsorships_free_creator_gifting\":true,\"st_skip_debug_params\":true,\"start_client_gcf\":true,\"start_client_gcf_for_player\":true,\"start_sending_config_hash\":true,\"suppress_error_204_logging\":true,\"suppress_excessive_ad_like_unit_on_web\":true,\"transport_use_scheduler\":true,\"trigger_impression_pings_on_view_search_desktop\":true,\"update_log_event_config\":true,\"update_ytWindow_library_use_closure_window_library\":true,\"use_ads_engagement_panel_desktop_footer_cta\":true,\"use_better_post_dismissals\":true,\"use_border_and_grid_wrapping_on_desktop_panel_tiles\":true,\"use_core_sm\":true,\"use_csi_stp_handler\":true,\"use_new_cml\":true,\"use_new_in_memory_storage\":true,\"use_new_nwl_initialization\":true,\"use_new_nwl_saw\":true,\"use_new_nwl_stw\":true,\"use_new_nwl_wts\":true,\"use_not_now_dl_upsell_dismiss_cta\":true,\"use_player_abuse_bg_library\":true,\"use_profilepage_event_label_in_carousel_playbacks\":true,\"use_request_time_ms_header\":true,\"use_session_based_sampling\":true,\"use_ts_visibilitylogger\":true,\"use_watch_fragments2\":true,\"vss_final_ping_send_and_write\":true,\"vss_playback_use_send_and_write\":true,\"warm_load_nav_start_web\":true,\"warm_op_csn_cleanup\":true,\"web_always_load_chat_support\":true,\"web_amsterdam_playlists\":true,\"web_amsterdam_post_mvp_playlists\":true,\"web_animated_like\":true,\"web_animated_like_lazy_load\":true,\"web_api_url\":true,\"web_appshell_purge_trigger\":true,\"web_appshell_refresh_trigger\":true,\"web_autonav_allow_off_by_default\":true,\"web_button_rework\":true,\"web_button_rework_with_live\":true,\"web_cinematic_masthead\":true,\"web_collect_offline_state\":true,\"web_csi_action_sampling_enabled\":true,\"web_csi_debug_sample_enabled\":true,\"web_darker_dark_theme\":true,\"web_darker_dark_theme_deprecate\":true,\"web_darker_dark_theme_live_chat\":true,\"web_dedupe_ve_grafting\":true,\"web_defer_shorts_ui\":true,\"web_defer_shorts_ui_phase2\":true,\"web_deprecate_service_ajax_map_dependency\":true,\"web_disable_animated_thumbs_when_inline_is_disabled\":true,\"web_disable_channels_chapter_entrypoint\":true,\"web_disable_vertical_scroll_chips\":true,\"web_dont_log_hidden_rich_item_state_changed\":true,\"web_enable_ab_em_rsp\":true,\"web_enable_ab_rsp_cl\":true,\"web_enable_abd_ref\":true,\"web_enable_adaptive_appl_signal\":true,\"web_enable_error_204\":true,\"web_enable_history_cache_map\":true,\"web_enable_pdp_mini_player\":true,\"web_enable_reel_item_badges\":true,\"web_enable_shorts_shelf_inline_playback\":true,\"web_enable_voz_audio_feedback\":true,\"web_engagement_panel_show_description\":true,\"web_fill_shorts_inline_playback_endpoint\":true,\"web_filled_subscribed_button\":true,\"web_fix_fine_scrubbing_drag\":true,\"web_forward_command_on_pbj\":true,\"web_gel_timeout_cap\":true,\"web_guide_entry_role_is_link\":true,\"web_guide_ui_refresh\":true,\"web_header_eu_about_these_results\":true,\"web_hide_autonav_keyline\":true,\"web_horizontal_list_focus_bugfix\":true,\"web_imp_caption_window\":true,\"web_inline_player_enabled\":true,\"web_kevlar_enable_adaptive_signals\":true,\"web_localized_cc_icon\":true,\"web_log_memory_total_kbytes\":true,\"web_log_player_watch_next_ticks\":true,\"web_log_reels_ticks\":true,\"web_logging_max_batch_hard_limit\":true,\"web_memoize_inflight_requests\":true,\"web_modern_ads\":true,\"web_modern_buttons\":true,\"web_modern_buttons_bl_survey\":true,\"web_modern_chips\":true,\"web_modern_collections\":true,\"web_modern_dialogs\":true,\"web_modern_playlists\":true,\"web_modern_subscribe\":true,\"web_move_autoplay_video_under_chip\":true,\"web_one_platform_error_handling\":true,\"web_persist_server_autonav_state_on_client\":true,\"web_player_add_ve_conversion_logging_to_outbound_links\":true,\"web_player_always_enable_auto_translation\":true,\"web_player_autonav_empty_suggestions_fix\":true,\"web_player_autonav_toggle_always_listen\":true,\"web_player_autonav_use_server_provided_state\":true,\"web_player_disable_inline_scrubbing\":true,\"web_player_enable_cultural_moment_overlay\":true,\"web_player_enable_early_warning_snackbar\":true,\"web_player_enable_info_button_in_banner_on_desktop\":true,\"web_player_enable_premium_hbr_in_h5_api\":true,\"web_player_enable_premium_hbr_playback_cap\":true,\"web_player_enable_vod_featured_product_banner_on_desktop\":true,\"web_player_entities_middleware\":true,\"web_player_log_click_before_generating_ve_conversion_params\":true,\"web_player_move_autonav_toggle\":true,\"web_player_should_honor_include_asr_setting\":true,\"web_player_small_hbp_settings_menu\":true,\"web_player_topify_subtitles_for_shorts\":true,\"web_player_touch_mode_improvements\":true,\"web_player_use_heartbeat_poll_delay_ms\":true,\"web_player_use_new_api_for_quality_pullback\":true,\"web_player_ve_conversion_fixes_for_channel_info\":true,\"web_prefetch_preload_video\":true,\"web_prs_testing_mode_killswitch\":true,\"web_replace_thumbnail_with_image\":true,\"web_resizable_advertiser_banner_on_masthead\":true,\"web_rich_shelf_show_less_button\":true,\"web_rich_shelf_show_less_button_overlapping_divider\":true,\"web_rich_shelf_show_more_button\":true,\"web_rich_shelf_show_more_button_overlapping_divider\":true,\"web_rounded_thumbnails\":true,\"web_scheduler_auto_init\":true,\"web_search_big_shorts_thumbnails\":true,\"web_segmented_like_dislike_button\":true,\"web_sheets_ui_refresh\":true,\"web_shorts_inline_playback_log_as_reels\":true,\"web_shorts_progress_bar\":true,\"web_shorts_shelf_on_search\":true,\"web_shorts_skip_loading_same_index\":true,\"web_shorts_surveys\":true,\"web_smartimations_killswitch\":true,\"web_snackbar_ui_refresh\":true,\"web_structured_description_show_more\":true,\"web_suggestion_box_bolder\":true,\"web_suggestion_box_restyle\":true,\"web_supports_animations_api\":true,\"web_use_cache_for_image_fallback\":true,\"web_watch_chips_mask_fade\":true,\"web_watch_cinematics_preferred_reduced_motion_default_disabled\":true,\"web_watch_rounded_player_large\":true,\"web_watch_updated_metadata_server_initial_delay\":true,\"web_yt_config_context\":true,\"webfe_disable_ab_em_plb\":true,\"wil_icon_render_when_idle\":true,\"wiz_use_generic_logging_infra\":true,\"woffle_clean_up_after_entity_migration\":true,\"woffle_enable_download_status\":true,\"woffle_orchestration\":true,\"woffle_playlist_only_show_completed\":true,\"woffle_playlist_optimization\":true,\"woffle_used_state_report\":true,\"your_data_entrypoint\":true,\"yt_network_manager_component_to_lib_killswitch\":true,\"ytidb_clear_embedded_player\":true,\"ytidb_fetch_datasync_ids_for_data_cleanup\":true,\"H5_async_logging_delay_ms\":30000.0,\"addto_ajax_log_warning_fraction\":0.1,\"autoplay_pause_by_lact_sampling_fraction\":0.0,\"browse_ajax_log_warning_fraction\":1.0,\"cinematic_watch_effect_opacity\":0.4,\"dynamic_metadata_update_interaction_delay_period_sec\":0.0,\"formatted_description_log_warning_fraction\":0.01,\"kevlar_tuner_clamp_device_pixel_ratio\":2.0,\"kevlar_tuner_thumbnail_factor\":1.0,\"kevlar_unified_player_logging_threshold\":1.0,\"live_reactions_desktop_opacity\":1.0,\"log_window_onerror_fraction\":0.1,\"polymer_property_access_logging_percent\":0.0,\"polymer_report_client_url_requested_rate\":0.001,\"polymer_report_missing_web_navigation_endpoint_rate\":0.001,\"prefetch_coordinator_error_logging_sampling_rate\":1.0,\"tv_pacf_logging_sample_rate\":0.01,\"web_shorts_error_logging_threshold\":0.001,\"web_shorts_intersection_observer_threshold_override\":0.0,\"web_system_health_fraction\":0.01,\"ytidb_transaction_ended_event_rate_limit\":0.02,\"ytidb_transaction_ended_event_rate_limit_session\":0.2,\"ytidb_transaction_ended_event_rate_limit_transaction\":0.1,\"active_time_update_interval_ms\":10000,\"autoplay_pause_by_lact_sec\":0,\"autoplay_time\":8000,\"autoplay_time_for_fullscreen\":3000,\"autoplay_time_for_music_content\":3000,\"botguard_async_snapshot_timeout_ms\":3000,\"check_navigator_accuracy_timeout_ms\":0,\"cinematic_watch_css_filter_blur_strength\":40,\"cinematic_watch_fade_out_duration\":500,\"client_streamz_web_flush_count\":100,\"client_streamz_web_flush_interval_seconds\":60,\"close_webview_delay_ms\":100,\"cloud_save_game_data_rate_limit_ms\":3000,\"compression_disable_point\":10,\"compression_performance_threshold\":250,\"desktop_fountain_emoji_size_px\":20,\"desktop_search_suggestion_tap_target\":0,\"enable_dismiss_loader_ms\":0,\"external_fullscreen_button_click_threshold\":2,\"external_fullscreen_button_shown_threshold\":10,\"gel_min_batch_size\":3,\"gel_queue_timeout_max_ms\":300000,\"get_async_timeout_ms\":60000,\"hide_cta_for_home_web_video_ads_animate_in_time\":2,\"high_priority_flyout_frequency\":3,\"initial_gel_batch_timeout\":2000,\"innertube_request_limit_ms\":3000,\"kevlar_lockup_hover_delay\":32,\"kevlar_mini_guide_width_threshold\":791,\"kevlar_persistent_guide_width_threshold\":1312,\"kevlar_time_caching_end_threshold\":15,\"kevlar_time_caching_start_threshold\":15,\"kevlar_tooltip_impression_cap\":2,\"kevlar_tuner_default_comments_delay\":1000,\"kevlar_tuner_scheduler_soft_state_timer_ms\":800,\"kevlar_tuner_visibility_time_between_jobs_ms\":100,\"kevlar_watch_flexy_metadata_height\":136,\"kevlar_watch_grid_below_player_value\":0,\"kevlar_watch_metadata_refresh_description_lines\":3,\"live_chat_chunk_rendering\":0,\"live_chat_emoji_picker_restyle_bottom_px\":0,\"live_chat_emoji_picker_restyle_height_percent\":0,\"live_chat_emoji_picker_restyle_height_px\":0,\"live_chat_emoji_picker_restyle_width_px\":0,\"live_chat_max_chunk_size\":5,\"live_chat_min_chunk_interval_ms\":300,\"live_reactions_desktop_fab_relocation_mode\":0,\"live_reactions_desktop_opacity_mode\":0,\"log_web_meta_interval_ms\":0,\"max_body_size_to_compress\":500000,\"max_duration_to_consider_mouseover_as_hover\":600000,\"max_prefetch_window_sec_for_livestream_optimization\":10,\"min_mouse_still_duration\":100,\"min_prefetch_offset_sec_for_livestream_optimization\":20,\"minimum_duration_to_consider_mouseover_as_hover\":500,\"mweb_history_manager_cache_size\":100,\"mweb_history_manager_w2w_ttl\":0,\"network_polling_interval\":30000,\"pacf_logging_delay_milliseconds_through_ybfe_tv\":30000,\"pbj_navigate_limit\":-1,\"play_click_interval_ms\":30000,\"play_ping_interval_ms\":10000,\"post_type_icons_rearrange\":1,\"prefetch_comments_ms_after_video\":0,\"prefetch_coordinator_command_timeout_ms\":60000,\"prefetch_coordinator_max_inflight_requests\":1,\"rich_grid_max_item_width\":500,\"rich_grid_min_item_width\":310,\"send_config_hash_timer\":0,\"service_worker_push_logged_out_prompt_watches\":-1,\"service_worker_push_prompt_cap\":-1,\"service_worker_push_prompt_delay_microseconds\":3888000000000,\"slow_compressions_before_abandon_count\":4,\"user_engagement_experiments_rate_limit_ms\":86400000,\"user_mention_suggestions_edu_impression_cap\":10,\"visibility_time_between_jobs_ms\":100,\"web_cold_open_animation_initial_delay\":2000,\"web_emulated_idle_callback_delay\":0,\"web_foreground_heartbeat_interval_ms\":28000,\"web_gel_debounce_ms\":60000,\"web_inline_player_triggering_delay\":1000,\"web_logging_max_batch\":150,\"web_player_caption_language_preference_stickiness_duration\":30,\"web_search_inline_player_triggering_delay\":200,\"web_search_shorts_inline_playback_duration_ms\":5000,\"web_shorts_inline_playback_preview_ms\":5000,\"web_smoothness_test_duration_ms\":0,\"web_smoothness_test_method\":0,\"wil_icon_max_concurrent_fetches\":9999,\"wn_grid_max_item_width\":0,\"wn_grid_min_item_width\":0,\"yoodle_end_time_utc\":0,\"yoodle_start_time_utc\":0,\"ytidb_remake_db_retries\":3,\"ytidb_reopen_db_retries\":3,\"WebClientReleaseProcessCritical__youtube_web_client_version_override\":\"\",\"comment_input_box_triggering_strategy\":\"NEVER\",\"debug_forced_internalcountrycode\":\"\",\"desktop_search_bigger_thumbs_style\":\"DEFAULT\",\"desktop_searchbar_style\":\"default\",\"embeds_web_synth_ch_headers_banned_urls_regex\":\"\",\"il_payload_scraping\":\"\",\"kevlar_duplicate_pref_cookie_domain_override\":\"\",\"kevlar_link_capturing_mode\":\"\",\"live_chat_unicode_emoji_json_url\":\"https://www.gstatic.com/youtube/img/emojis/emojis-svg-9.json\",\"polymer_task_manager_status\":\"production\",\"reels_action_justified_content\":\"flex-start\",\"reels_metadata_justified_content\":\"flex-start\",\"service_worker_push_force_notification_prompt_tag\":\"1\",\"service_worker_scope\":\"/\",\"web_async_context_processor_impl\":\"standalone\",\"web_client_version_override\":\"\",\"web_home_feed_reload_experience\":\"none\",\"web_modern_subscribe_style\":\"filled\",\"web_shorts_expanded_overlay_type\":\"DEFAULT\",\"web_shorts_overlay_vertical_orientation\":\"bottom\",\"yoodle_base_url\":\"\",\"yoodle_webp_base_url\":\"\",\"conditional_lab_ids\":[],\"guide_business_info_countries\":[\"KR\"],\"guide_legal_footer_enabled_countries\":[\"NL\",\"ES\"],\"kevlar_command_handler_command_banlist\":[],\"kevlar_page_service_url_prefix_carveouts\":[],\"web_op_signal_type_banlist\":[]},\"GAPI_HINT_PARAMS\":\"m;/_/scs/abc-static/_/js/k\\u003dgapi.gapi.en.CzrNRWo3AFk.O/d\\u003d1/rs\\u003dAHpOoo8xPbrtpW2bPUIcgU2adGqIEpV82Q/m\\u003d__features__\",\"GAPI_HOST\":\"https://apis.google.com\",\"GAPI_LOCALE\":\"en_US\",\"GL\":\"IT\",\"GOOGLE_FEEDBACK_PRODUCT_ID\":\"59\",\"GOOGLE_FEEDBACK_PRODUCT_DATA\":{\"polymer\":\"active\",\"polymer2\":\"active\",\"accept_language\":\"en-US,en;q\\u003d0.9\"},\"HL\":\"en\",\"HTML_DIR\":\"ltr\",\"HTML_LANG\":\"en\",\"INNERTUBE_API_KEY\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"INNERTUBE_API_VERSION\":\"v1\",\"INNERTUBE_CLIENT_NAME\":\"WEB\",\"INNERTUBE_CLIENT_VERSION\":\"2.20231121.08.00\",\"INNERTUBE_CONTEXT\":{\"client\":{\"hl\":\"en\",\"gl\":\"IT\",\"remoteHost\":\"[scrubbed]\",\"deviceMake\":\"\",\"deviceModel\":\"\",\"visitorData\":\"CgtqeGt1dTBHVERuVSiX9ZOrBjIICgJJVBICEgA%3D\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36,gzip(gfe)\",\"clientName\":\"WEB\",\"clientVersion\":\"2.20231121.08.00\",\"osName\":\"Windows\",\"osVersion\":\"10.0\",\"originalUrl\":\"https://www.youtube.com/\",\"platform\":\"DESKTOP\",\"clientFormFactor\":\"UNKNOWN_FORM_FACTOR\",\"configInfo\":{\"appInstallData\":\"CJf1k6sGEInorgUQrtT-EhCrh7AFEOuWsAUQ_IWwBRDi1K4FENuvrwUQlPr-EhCogbAFEOSz_hIQ4fKvBRDM364FEL_3rwUQ57qvBRCp968FEKKSsAUQzK7-EhDUkrAFEJP8rwUQ6sOvBRDUoa8FENyCsAUQvbauBRD1-_4SEOmMsAUQrYewBRDj2K8FEKaBsAUQvoqwBRDrk64FENDirwUQt-r-EhCxh7AFEMeDsAUQ946wBRDb2K8FEIiHsAUQ6ej-EhCrgrAFEJrwrwUQ4divBRC4i64FEKf3rwUQ5v3-EhCst68FEJ2LsAUQ3ej-EhClwv4SEPq-rwUQr4ewBRD1-a8FEKKBsAUQt--vBRC8-a8FENWIsAUQmZGwBRDX6a8FEJmUsAUQ2cmvBRDf2K8FEO6irwUQ6-j-EhDNlbAFEIjjrwUQyfevBRC--a8FENPhrwUQsfavBRCohrAF\"},\"userInterfaceTheme\":\"USER_INTERFACE_THEME_LIGHT\",\"browserName\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"acceptHeader\":\"text/html,application/xhtml+xml,application/xml;q\\u003d0.9,*/*;q\\u003d0.8\",\"deviceExperimentId\":\"ChxOek13TmpJME1EQXlNakEwTkRnMU1EWTFNdz09EJf1k6sGGJf1k6sG\"},\"user\":{\"lockedSafetyMode\":false},\"request\":{\"useSsl\":true},\"clickTracking\":{\"clickTrackingParams\":\"IhMIk9eChoHlggMV5slCBR2UHQCu\"}},\"INNERTUBE_CONTEXT_CLIENT_NAME\":1,\"INNERTUBE_CONTEXT_CLIENT_VERSION\":\"2.20231121.08.00\",\"INNERTUBE_CONTEXT_GL\":\"IT\",\"INNERTUBE_CONTEXT_HL\":\"en\",\"LATEST_ECATCHER_SERVICE_TRACKING_PARAMS\":{\"client.name\":\"WEB\"},\"LOGGED_IN\":false,\"PAGE_BUILD_LABEL\":\"youtube.desktop.web_20231121_08_RC00\",\"PAGE_CL\":584454497,\"scheduler\":{\"useRaf\":true,\"timeout\":20},\"SERVER_NAME\":\"WebFE\",\"SESSION_INDEX\":\"\",\"SIGNIN_URL\":\"https://accounts.google.com/ServiceLogin?service\\u003dyoutube\\u0026uilel\\u003d3\\u0026passive\\u003dtrue\\u0026continue\\u003dhttps%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252F%26feature%3D__FEATURE__\\u0026hl\\u003den\",\"WEB_PLAYER_CONTEXT_CONFIGS\":{\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_WATCH\":{\"transparentBackground\":true,\"showMiniplayerButton\":true,\"externalFullscreen\":true,\"showMiniplayerUiWhenMinimized\":true,\"rootElementId\":\"movie_player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_WATCH\",\"eventLabel\":\"detailpage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"watch\",\"datasyncId\":\"Ve43a29cd||\",\"allowWoffleManagement\":true,\"cinematicSettingsAvailable\":true,\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_CHANNEL_TRAILER\":{\"rootElementId\":\"c4-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_CHANNEL_TRAILER\",\"eventLabel\":\"profilepage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"channels\",\"datasyncId\":\"Ve43a29cd||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_PLAYLIST_OVERVIEW\":{\"rootElementId\":\"c4-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_PLAYLIST_OVERVIEW\",\"eventLabel\":\"playlistoverview\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"disableSharing\":true,\"hideInfo\":true,\"disableWatchLater\":true,\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"playlist_overview\",\"datasyncId\":\"Ve43a29cd||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_VERTICAL_LANDING_PAGE_PROMO\":{\"rootElementId\":\"ytd-default-promo-panel-renderer-inline-playback-renderer\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_VERTICAL_LANDING_PAGE_PROMO\",\"eventLabel\":\"profilepage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"controlsType\":0,\"disableRelatedVideos\":true,\"annotationsLoadPolicy\":3,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"hideInfo\":true,\"startMuted\":true,\"enableMutedAutoplay\":true,\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"channels\",\"datasyncId\":\"Ve43a29cd||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SHORTS\":{\"rootElementId\":\"shorts-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SHORTS\",\"eventLabel\":\"shortspage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"controlsType\":0,\"disableKeyboardControls\":true,\"disableRelatedVideos\":true,\"annotationsLoadPolicy\":3,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"hideInfo\":true,\"disableFullscreen\":true,\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"datasyncId\":\"Ve43a29cd||\",\"storeUserVolume\":true,\"disableSeek\":true,\"disablePaidContentOverlay\":true,\"preferGapless\":true,\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SPONSORSHIPS_OFFER\":{\"rootElementId\":\"ytd-sponsorships-offer-with-video-renderer\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SPONSORSHIPS_OFFER\",\"eventLabel\":\"sponsorshipsoffer\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"disableRelatedVideos\":true,\"annotationsLoadPolicy\":3,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"disableFullscreen\":true,\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"datasyncId\":\"Ve43a29cd||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_INLINE_PREVIEW\":{\"rootElementId\":\"inline-preview-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_INLINE_PREVIEW\",\"eventLabel\":\"detailpage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"disableKeyboardControls\":true,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"disableFullscreen\":true,\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"watch\",\"disableMdxCast\":true,\"datasyncId\":\"Ve43a29cd||\",\"showInlinePreviewUi\":true,\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_HANDLES_CLAIMING\":{\"rootElementId\":\"ytd-handles-claiming-video-item-renderer\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_HANDLES_CLAIMING\",\"eventLabel\":\"handlesclaiming\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"disableRelatedVideos\":true,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_ad_skipped_event_publishing\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_avoid_3gpp\\u003dtrue\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_new_hvc_enc\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d1.0\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.25\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.1\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_noop_cookie_day_aa\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d-1\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dps_driven_smart_downloads_refresh\\u003dtrue\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_caption_window\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d0\\u0026speedmaster_playback_rate\\u003d0.0\\u0026speedmaster_touch_activation_ms\\u003d0\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_imp_caption_window\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"cspNonce\":\"gVoKGw6DmDkDcCBlxQh7Zg\",\"canaryState\":\"none\",\"datasyncId\":\"Ve43a29cd||\",\"canaryStage\":\"\"}},\"XSRF_FIELD_NAME\":\"session_token\",\"XSRF_TOKEN\":\"QUFFLUhqazNCamdiOGdEcEZVZU1wVHVuUlpxelVMN3Rfd3xBQ3Jtc0trQ2JhWXU1LTN3dDdHT2ZDMzgzV3lZSDdhVDdhZjBpU0xjNjBGN0IweXBVVi1MamdLMmhaWEZtZW8taTRKQ3MyeU9YckRpNUpWLXFaMnp1OHZqbGplZmprVTBQZW9JbTloZHU2R2RpUXNDZXozUXlidw\\u003d\\u003d\",\"YPC_MB_URL\":\"https://payments.youtube.com/payments/v4/js/integrator.js?ss\\u003dmd\",\"YTR_FAMILY_CREATION_URL\":\"https://families.google.com/webcreation?usegapi\\u003d1\",\"SERVER_VERSION\":\"prod\",\"REUSE_COMPONENTS\":true,\"STAMPER_STABLE_LIST\":true,\"DATASYNC_ID\":\"Ve43a29cd||\",\"SERIALIZED_CLIENT_CONFIG_DATA\":\"CJf1k6sGEInorgUQrtT-EhCrh7AFEOuWsAUQ_IWwBRDi1K4FENuvrwUQlPr-EhCogbAFEOSz_hIQ4fKvBRDM364FEL_3rwUQ57qvBRCp968FEKKSsAUQzK7-EhDUkrAFEJP8rwUQ6sOvBRDUoa8FENyCsAUQvbauBRD1-_4SEOmMsAUQrYewBRDj2K8FEKaBsAUQvoqwBRDrk64FENDirwUQt-r-EhCxh7AFEMeDsAUQ946wBRDb2K8FEIiHsAUQ6ej-EhCrgrAFEJrwrwUQ4divBRC4i64FEKf3rwUQ5v3-EhCst68FEJ2LsAUQ3ej-EhClwv4SEPq-rwUQr4ewBRD1-a8FEKKBsAUQt--vBRC8-a8FENWIsAUQmZGwBRDX6a8FEJmUsAUQ2cmvBRDf2K8FEO6irwUQ6-j-EhDNlbAFEIjjrwUQyfevBRC--a8FENPhrwUQsfavBRCohrAF\",\"LIVE_CHAT_BASE_TANGO_CONFIG\":{\"apiKey\":\"AIzaSyDZNkyC-AtROwMBpLfevIvqYk-Gfi8ZOeo\",\"channelUri\":\"https://client-channel.google.com/client-channel/client\",\"clientName\":\"yt-live-comments\",\"requiresAuthToken\":true,\"senderUri\":\"https://clients4.google.com/invalidation/lcs/client\",\"useNewTango\":true},\"FEXP_EXPERIMENTS\":[23858057,23983296,23986015,24004644,24007246,24080738,24135310,24208765,24362606,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24554160,24559328,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51025244,51026715,51028271,51030311,51037540,51038399,51038805,51039493,51039699,51041809,51042557,51044150,51044152,51044154,51044158,51049005,51054675,51055917,51057534,51060161,51065651,51067340],\"LIVE_CHAT_SEND_MESSAGE_ACTION\":\"live_chat/watch_page/send\",\"ROOT_VE_TYPE\":3854,\"CLIENT_PROTOCOL\":\"h2\",\"CLIENT_TRANSPORT\":\"tcp\",\"EOM_VISITOR_DATA\":\"CgtqeGt1dTBHVERuVSiX9ZOrBjIICgJJVBICEgA%3D\",\"TIME_CREATED_MS\":1701116567944,\"BUTTON_REWORK\":true,\"VALID_SESSION_TEMPDATA_DOMAINS\":[\"youtu.be\",\"youtube.com\",\"www.youtube.com\",\"web-green-qa.youtube.com\",\"web-release-qa.youtube.com\",\"web-integration-qa.youtube.com\",\"m.youtube.com\",\"mweb-green-qa.youtube.com\",\"mweb-release-qa.youtube.com\",\"mweb-integration-qa.youtube.com\",\"studio.youtube.com\",\"studio-green-qa.youtube.com\",\"studio-integration-qa.youtube.com\"],\"WORKER_PERFORMANCE_URL\":{\"privateDoNotAccessOrElseTrustedResourceUrlWrappedValue\":\"/s/desktop/bd3558ba/jsbin/worker-performance.vflset/worker-performance.js\"},\"RAW_COLD_CONFIG_GROUP\":{\"configData\":\"CJf1k6sGEOy6rQUQxYWuBRDrk64FEL22rgUQ4tSuBRD76K4FEP7orgUQ1-6uBRCkxa8FEP7vrwUQsfavBRCT_K8FENyCsAUQqIawBRC-irAFEJ2LsAUQ6YywBRD3jrAFEKOPsAUQmZSwBRC_lLAFEM2VsAUQ6pawBRCnl7AFEJ2ZsAUaMkFPakZveDFkY05rZG4temgyaGhMa3pTZTBDTTd2QUVIWjJETGhsd0tqYkROUzEwT0hRIjJBT2pGb3gxZGNOa2RuLXpoMmhoTGt6U2UwQ003dkFFSFoyRExobHdLamJETlMxME9IUSpcQ0FNU1FRMGVncGFvQXNnV19nV21IOUlTX1FiUUVyY1AxUUM2QURxS0JCVWprb0xRRE52MkJvNGVza2JlWXAwdmc0UUZxZ05oLXRJR2dZek1DNVpNMnpqNVJfRWE%3D\",\"mainAppColdConfig\":{\"iosSsoSafariFsiPromoEnabled\":true,\"iosTodayWidgetEnabled\":false,\"iosEnableDynamicFontSizing\":false,\"enableMobileAutoOffline\":false,\"androidEnablePip\":false,\"postsV2\":false,\"enableDetailedNetworkStatusReporting\":false,\"hourToReportNetworkStatus\":0,\"networkStatusReportingWindowSecs\":0,\"iosSearchviewRefactoryEnabled\":false,\"ngwFlexyEnabled\":false,\"iosWatchExpandTransitionWithoutSnapshot\":false,\"androidNgwUiEnabled\":false,\"androidThumbnailMonitorEnabled\":false,\"androidThumbnailMonitorCount\":0,\"androidThumbnailMonitorMinimumWidth\":0,\"enableGhostCards\":false,\"enableInlineMuted\":false,\"ngwFlexyMaxCropRatio\":1.0,\"androidRestoreBrowseContentsFromBackStack\":false,\"searchHintExp\":\"search_youtube\"}},\"RAW_HOT_CONFIG_GROUP\":{\"mainAppHotConfig\":{\"iosWatchExpandTransition\":false,\"iosEarlySetWatchTransition\":false,\"exposeConfigRefreshSetting\":false,\"iosEnableSearchButtonOnPlayerOverlay\":false,\"iosMinimumTooltipDurationMsecs\":1000,\"iosFreshHomeIntervalSecs\":0,\"iosFreshSubscriptionsIntervalSecs\":0,\"iosTodayWidgetRefreshIntervalSecs\":28800,\"iosFreshNotificationsInboxIntervalSecs\":0,\"signedOutNotificationsIosPrompt\":true,\"iosFreshFullRefresh\":false},\"loggingHotConfig\":{\"eventLoggingConfig\":{\"enabled\":true,\"payloadPolicies\":[{\"enabled\":true,\"payloadNumber\":219,\"tier\":\"DELAYED_EVENT_TIER_FAST\"},{\"enabled\":true,\"payloadNumber\":469,\"tier\":\"DELAYED_EVENT_TIER_FAST\"},{\"enabled\":true,\"payloadNumber\":6,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"},{\"enabled\":true,\"payloadNumber\":5,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"},{\"enabled\":true,\"payloadNumber\":7,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"},{\"enabled\":true,\"payloadNumber\":434,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"}],\"maxAgeHours\":720,\"requestRetryEnabled\":true,\"retryConfig\":{\"fixedBatchRetryEnabled\":false},\"shouldForceSetAllPayloadsToImmediateTier\":false},\"csiConfig\":{\"loggingUrl\":{\"baseUrl\":\"https://www.youtube.com/csi_204\"},\"iosHomeActionThroughCsi204Enabled\":false,\"browseActionThroughCsi204Enabled\":true,\"browseActionThroughGelEnabled\":false,\"debugSampleWeight\":10,\"debugTicks\":[{\"tickName\":\"ada\"},{\"tickName\":\"ais_a\"},{\"tickName\":\"ais_r\"},{\"tickName\":\"arb_f\"},{\"tickName\":\"ari\"},{\"tickName\":\"fab_r\"},{\"tickName\":\"fcb_r\"},{\"tickName\":\"fvb\"},{\"tickName\":\"fvb_r\"},{\"tickName\":\"gv\"},{\"tickName\":\"mb_s\"},{\"tickName\":\"nreqs\"},{\"tickName\":\"nrese\"},{\"tickName\":\"oafs_r\"},{\"tickName\":\"oais_r\"},{\"tickName\":\"ogpd\"},{\"tickName\":\"omd_c\"},{\"tickName\":\"omd_s\"},{\"tickName\":\"omp_c\"},{\"tickName\":\"omp_r\"},{\"tickName\":\"oprd_c\"},{\"tickName\":\"oprd_s\"},{\"tickName\":\"oprr\"},{\"tickName\":\"or_fs\"},{\"tickName\":\"or_p\"},{\"tickName\":\"or100k\"},{\"tickName\":\"orf\"},{\"tickName\":\"orfb\"},{\"tickName\":\"orh_r\"},{\"tickName\":\"ormk\"},{\"tickName\":\"orpr\"},{\"tickName\":\"osor\"},{\"tickName\":\"ovfs_r\"},{\"tickName\":\"ovis_r\"},{\"tickName\":\"pl_c\"},{\"tickName\":\"r_wrr\"},{\"tickName\":\"r_wrs\"},{\"tickName\":\"vda\"},{\"tickName\":\"vis_a\"},{\"tickName\":\"vis_r\"},{\"tickName\":\"vrb_f\"},{\"tickName\":\"vri\"}]}}},\"SERIALIZED_HOT_HASH_DATA\":\"CJf1k6sGEhMyODQ0ODEzNjEwMDYxNTgzMjg2GJf1k6sGKJTk_BIo25P9EijGsv0SKKq0_RIopdD9Eiiekf4SKJqt_hIoyMr-EiivzP4SKN3O_hIoqOH-EijB5v4SKOzn_hIoovX-Eijh9v4SKLP5_hIomPz-Eijd_f4SKMX-_hIoi4D_EjIyQU9qRm94MWRjTmtkbi16aDJoaExrelNlMENNN3ZBRUhaMkRMaGx3S2piRE5TMTBPSFE6MkFPakZveDFkY05rZG4temgyaGhMa3pTZTBDTTd2QUVIWjJETGhsd0tqYkROUzEwT0hRQjhDQU1TSmcwSm90ZjZGYjRfeWdDb09jQVI0aDBWRTkzUHdneW9td0tMN2dIeDRBNjFnQVNKOE1vTA%3D%3D\",\"SERIALIZED_COLD_HASH_DATA\":\"CJf1k6sGEhQxNTc4OTM3OTUxOTA1NDcwMDY3NBiX9ZOrBjIyQU9qRm94MWRjTmtkbi16aDJoaExrelNlMENNN3ZBRUhaMkRMaGx3S2piRE5TMTBPSFE6MkFPakZveDFkY05rZG4temgyaGhMa3pTZTBDTTd2QUVIWjJETGhsd0tqYkROUzEwT0hRQlxDQU1TUVEwZWdwYW9Bc2dXX2dXbUg5SVNfUWJRRXJjUDFRQzZBRHFLQkJVamtvTFFETnYyQm80ZXNrYmVZcDB2ZzRRRnFnTmgtdElHZ1l6TUM1Wk0yemo1Ul9FYQ%3D%3D\",\"PERSIST_IDENTITY_IFRAME_URL\":{\"privateDoNotAccessOrElseTrustedResourceUrlWrappedValue\":\"https://studio.youtube.com/persist_identity\"},\"WORKER_SERIALIZATION_URL\":{\"privateDoNotAccessOrElseTrustedResourceUrlWrappedValue\":\"/s/desktop/bd3558ba/jsbin/worker-serialization.vflset/worker-serialization.js\"},\"WEBVIEW_EOM\":false,\"VISIBILITY_TIME_BETWEEN_JOBS_MS\":100,\"START_IN_THEATER_MODE\":false,\"START_IN_FULL_WINDOW_MODE\":false,\"SERVICE_WORKER_PROMPT_NOTIFICATIONS\":true,\"SBOX_LABELS\":{\"SUGGESTION_DISMISS_LABEL\":\"Remove\",\"SUGGESTION_DISMISSED_LABEL\":\"Suggestion removed\"},\"ONE_PICK_URL\":\"\",\"NO_EMPTY_DATA_IMG\":true,\"MENTIONS_EDU_HELP_LINK\":\"https://support.google.com/youtube/?p\\u003dcreator_community\",\"IS_HOMEPAGE_COLD\":true,\"DEFERRED_DETACH\":true,\"RECAPTCHA_V3_SITEKEY\":\"6LedoOcUAAAAAHA4CFG9zRpaCNjYj33SYjzQ9cTy\",\"PLAYER_JS_URL\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"PLAYER_CSS_URL\":\"/s/player/63e90c30/www-player.css\",\"LINK_GAL_DOMAIN\":\"https://accountlinking-pa-clients6.youtube.com\",\"LINK_OIS_DOMAIN\":\"oauthintegrations-clients6.youtube.com\",\"IS_TABLET\":false,\"LINK_API_KEY\":\"AIzaSyDophAQuyyiBr8h0nypEwXUKozH-BEswD0\",\"DISABLE_WARM_LOADS\":false,\"VOZ_API_KEY\":\"AIzaSyBU2xE_JHvB6wag3tMfhxXpg2Q_W8xnM-I\",\"STS\":19681,\"SBOX_SETTINGS\":{\"HAS_ON_SCREEN_KEYBOARD\":false,\"IS_FUSION\":false,\"IS_POLYMER\":true,\"REQUEST_DOMAIN\":\"it\",\"REQUEST_LANGUAGE\":\"en\",\"SEND_VISITOR_DATA\":true,\"SEARCHBOX_BEHAVIOR_EXPERIMENT\":\"zero-prefix\",\"SEARCHBOX_ENABLE_REFINEMENT_SUGGEST\":true,\"SEARCHBOX_TAP_TARGET_EXPERIMENT\":0,\"SEARCHBOX_ZERO_TYPING_SUGGEST_USE_REGULAR_SUGGEST\":\"always\",\"VISITOR_DATA\":\"CgtqeGt1dTBHVERuVSiX9ZOrBjIICgJJVBICEgA%3D\",\"SEARCHBOX_HOST_OVERRIDE\":\"suggestqueries-clients6.youtube.com\",\"HIDE_REMOVE_LINK\":false},\"SBOX_JS_URL\":\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/www-searchbox.vflset/www-searchbox.js\"}); window.ytcfg.obfuscatedData_ = [];var setMessage=function(msg){if(window.yt\u0026\u0026yt.setMsg)yt.setMsg(msg);else{window.ytcfg=window.ytcfg||{};ytcfg.msgs=msg}};\nsetMessage({\"ADDED_TO_QUEUE\":\"Added to queue\",\"ADD_TO_DROPDOWN_LABEL\":\"Save to...\",\"AD_BADGE_TEXT\":\"Ad\",\"AD_TITLE\":\"Ad: $title.\",\"BACK_ALT_LABEL\":\"Back\",\"BACK_ONLINE\":\"Back online\",\"CANCEL\":\"Cancel\",\"CAPTION_OFF_TOAST\":\"Subtitles/CC turned off\",\"CAPTION_ON_TOAST\":\"Subtitles/CC turned on\",\"CHARACTER_LIMIT\":\"Use fewer than $number characters\",\"CHECK_CONNECTION_OR_DOWNLOADS\":\"Please check your connection or watch your downloaded videos.\",\"CHIP_BAR_ALT_LABEL\":\"More videos\",\"CLEAR\":\"Clear\",\"CLOSE\":\"Close\",\"CLOSED_CAPTIONS_DISABLED\":\"No captions are available for this video\",\"CLOSED_CAPTIONS_OFF\":\"Subtitles/CC turned off\",\"CLOSED_CAPTIONS_ON\":\"Subtitles/CC turned on\",\"COMMENT_LABEL\":\"Comment\",\"CONNECT_TO_THE_INTERNET\":\"Connect to the internet\",\"CONTINUE_WATCHING\":\"Continue watching\",\"DELETE\":\"Delete\",\"DELETED_PLAYLIST\":\"Playlist deleted from downloads.\",\"DELETED_VIDEO\":\"Video deleted from downloads.\",\"DELETE_ALL_DOWNLOADS_PROMPT\":\"Delete all downloads?\",\"DELETE_FROM_DOWNLOADS\":\"Remove from downloads\",\"DELETING_ALL\":\"Downloads are being deleted\",\"DISLIKE_LABEL\":\"Dislike\",\"DISMISS\":\"Dismiss\",\"DMA_CONSENT_CONFIRMATION\":\"Your choice will take effect on March 6, 2024. You can change your choices anytime in your Google Account.\",\"DMA_CONSENT_GENERAL_ERROR\":\"Something went wrong while loading\",\"DMA_CONSENT_RECORD_ERROR\":\"Something went wrong and your choices were not saved\",\"DOWNLOAD\":\"Download\",\"DOWNLOADED\":\"Downloaded\",\"DOWNLOADING\":\"Downloading\",\"DOWNLOADING_PERCENT\":\"Downloading... $percent%\",\"DOWNLOADS\":\"Downloads\",\"DOWNLOADS_AVAILABILITY\":\"Downloads remain available as long as your device has an active internet connection at least once every 30 days.\",\"DOWNLOADS_SETTINGS\":\"Downloads Settings\",\"DOWNLOAD_EXPIRED\":\"Download expired\",\"DOWNLOAD_PAUSED\":\"Download paused\",\"DOWNLOAD_QUALITY\":\"Download Quality\",\"DO_NOT_HAVE_DOWNLOADS\":\"You do not have any downloads\",\"EDIT_AVATAR_LABEL\":\"Edit profile picture\",\"EDU_GOT_IT\":\"Got It\",\"END_OF_PLAYLIST\":\"End of playlist\",\"ENTER_DATE_OR_EARLIER\":\"Enter $allowed_date or earlier\",\"ENTER_DATE_OR_LATER\":\"Enter $allowed_date or later\",\"FREEBIE_JOIN_MEMBERSHIP_EDU_TEXT\":\"This channel offers a membership which you can join for free with YouTube Premium\",\"GET_PREMIUM\":\"Get Premium\",\"GO_TO_DOWNLOADS\":\"Go to downloads\",\"GUIDE_ALT_LABEL\":\"Guide\",\"HORIZONTAL_LIST_NEXT_LABEL\":\"Next\",\"HORIZONTAL_LIST_PREVIOUS_LABEL\":\"Previous\",\"IMAGE_HORIZONTAL_POSITION_LABEL\":\"The center of the preview is $x_percent% from the left and $y_percent% from the right.\",\"IMAGE_VERTICAL_POSITION_LABEL\":\"The center of the preview is $x_percent% from the top and $y_percent% from the bottom.\",\"INVALID_DATE_ERROR\":\"Invalid Date\",\"JOIN_MEMBERSHIP_EDU_TEXT\":\"Get access to exclusive perks when you purchase a membership to this channel.\",\"JOIN_MEMBERSHIP_EDU_TITLE\":\"Membership\",\"KEEP_OPEN\":\"Keep this window open to continue\",\"LIBRARY_GUIDE_ITEM_EDU_TEXT\":\"Find your history, playlists, purchases, and more\",\"LIBRARY_GUIDE_ITEM_EDU_TITLE\":\"Check out your new Library\",\"LIKE_LABEL\":\"Like\",\"LOCAL_TIME_LABEL\":\"Local Time\",\"LOGO_ALT_LABEL\":\"YouTube Home\",\"MAIN_APP_WEB_COMMENT_TEASER_TOOLTIP\":\"Click here to read comments while watching the video.\",\"MANAGE_MEMBERSHIP_EDU_TEXT\":\"Access your benefits and manage your membership from here.\",\"MENTIONS_EDU_TEXT\":\"Go to the Help Center to see how mentions work on YouTube.\",\"MENTIONS_EDU_TITLE\":\"Learn more\",\"MINIPLAYER_CLOSE\":\"Close player\",\"MINIPLAYER_COLLAPSE_LABEL\":\"Collapse\",\"MINIPLAYER_EXPAND_LABEL\":\"Expand\",\"MUTE_VOLUME\":\"Mute\",\"NEXT_VIDEO_LABEL\":\"Next video\",\"NOT_NOW\":\"Not now\",\"NO_ANGLE_BRACKET_LABEL\":\"Playlist title cannot contain \\u003c or \\u003e\",\"NO_DOWNLOADS\":\"No downloads\",\"NO_INTERNET_CONNECTION\":\"No internet connection\",\"OFFLINE_CHECK_CONNECTION\":\"You\\u0027re offline. Check your connection.\",\"PAUSE_DOWNLOADING\":\"Pause downloading\",\"PLAYER_LABEL_MUTE\":\"Mute (m)\",\"PLAYER_LABEL_PAUSE\":\"Pause (k)\",\"PLAYER_LABEL_PLAY\":\"Play (k)\",\"PLAYER_LABEL_UNMUTE\":\"Unmute (m)\",\"PLAYLIST_NEXT_VIDEO_TITLE\":\"Next: $video_title\",\"PLAY_ALL\":\"Play all\",\"PREPARING_TO_DOWNLOAD\":\"Preparing to download...\",\"PREVIOUS_VIDEO_LABEL\":\"Previous video\",\"QUEUE\":\"Queue\",\"QUEUE_CLEARED\":\"{count,plural, \\u003d1{1 video in the queue removed}other{# videos in the queue removed}}\",\"QUEUE_CLEARED_UNPLURALIZED\":\"Queue cleared\",\"QUEUE_CLOSE_MINIPLAYER_CONFIRM_BODY_TEXT\":\"Are you sure you want to close the player?\",\"QUEUE_CLOSE_MINIPLAYER_CONFIRM_TITLE\":\"Queue will be cleared\",\"QUEUE_RECOVER_BUTTON\":\"Restore\",\"QUEUE_RECOVER_MESSAGE\":\"Recover queue\",\"REACH_BOTTOM_OF_IMAGE_TEXT\":\"You have reached the bottom of the image\",\"REACH_LEFT_OF_IMAGE_TEXT\":\"You have reached the left of the image\",\"REACH_RIGHT_OF_IMAGE_TEXT\":\"You have reached the right of the image\",\"REACH_TOP_OF_IMAGE_TEXT\":\"You have reached the top of the image\",\"REMEMBER_MY_SETTINGS\":\"Remember my settings\",\"REMEMBER_MY_SETTINGS_N_DAYS\":\"Remember my settings for $days_till_expired days.\",\"REPOSITION_IMAGE_HORIZONTALLY_LABEL\":\"Use left and right arrow keys to reposition the preview\",\"REPOSITION_IMAGE_VERTICALLY_LABEL\":\"Use up and down arrow keys to reposition the preview\",\"REQUIRED_LABEL\":\"Required\",\"RESUME_DOWNLOAD\":\"Resume download\",\"RETRY\":\"Retry\",\"SBOX_INAPPROPRIATE_ADDITIONAL\":\"Provide additional details (optional)\",\"SBOX_INAPPROPRIATE_CANCEL\":\"Cancel\",\"SBOX_INAPPROPRIATE_CATEGORY\":\"The selected predictions are:\",\"SBOX_INAPPROPRIATE_DANGEROUS\":\"Dangerous and harmful activity\",\"SBOX_INAPPROPRIATE_EXPLICIT\":\"Sexually explicit\",\"SBOX_INAPPROPRIATE_HATEFUL\":\"Hateful\",\"SBOX_INAPPROPRIATE_OTHER\":\"Other\",\"SBOX_INAPPROPRIATE_PROMPT\":\"Report search predictions\",\"SBOX_INAPPROPRIATE_REASON\":\"Reason (required)\",\"SBOX_INAPPROPRIATE_REPORT\":\"Report\",\"SBOX_INAPPROPRIATE_SUBMIT\":\"Submit\",\"SBOX_INAPPROPRIATE_SUGGESTIONS\":\"Select predictions you would like to report:\",\"SBOX_INAPPROPRIATE_TITLE\":\"Report search predictions\",\"SBOX_INAPPROPRIATE_TOAST\":\"Thanks for your feedback!\",\"SBOX_INAPPROPRIATE_VIOLENT\":\"Violent\",\"SBOX_PLACEHOLDER\":\"Search\",\"SBOX_VOICE_OVERLAY_PLACEHOLDER\":\"Listening...\",\"SEEK_SLIDER\":\"Seek slider\",\"SHARE_LABEL\":\"Share\",\"SHARE_POST_EDU_TEXT\":\"Now you can share posts on YouTube\",\"SHOW_LESS\":\"Show less\",\"SHOW_MORE\":\"Show more\",\"SIGN_IN_LABEL\":\"Sign in\",\"SMART_DOWNLOADS\":\"Smart downloads\",\"SMART_DOWNLOADS_UPDATING\":\"Updating Smart downloads...\",\"SMART_DOWNLOADS_UPDATING_RATIO\":\"Updating Smart downloads... $downloaded/$total\",\"STORAGE_FULL\":\"Storage full\",\"SUBSCRIBE_LABEL\":\"Subscribe\",\"SUBS_FILTER_EDU_CHANNEL_TEXT\":\"Now showing new videos from this channel.\",\"SUBS_FILTER_EDU_TEXT\":\"See new videos from each channel\",\"SUBS_GUIDE_ITEM_EDU_TEXT\":\"See new videos from all of your subscriptions\",\"SUGGEST_NEW_VIDEOS_TEXT\":\"New videos\",\"TIMEZONE_FORMAT\":\"($utc_offset_text) $city_name\",\"TRANSFER_FAILED\":\"Download failed\",\"TRY_AGAIN_LATER\":\"Something went wrong. Please try again later.\",\"TURN_OFF\":\"Turn off\",\"TURN_ON\":\"Turn on\",\"UNAVAILABLE_OFFLINE\":\"Unavailable offline\",\"UNDO\":\"Undo\",\"UNDO_ACTION\":\"Undo\",\"UNMUTE_VOLUME\":\"Unmute\",\"UPDATED_TIME\":\"Updated $relative_time\",\"UPDATE_SMART_DOWNLOADS_NOW\":\"Update now\",\"UPDATING\":\"Updating...\",\"UTC_OFFSET_FORMAT\":\"GMT$utc_offset\",\"VIDEOS_DOWNLOADING\":{\"case1\":\"Downloading 1 video...\",\"other\":\"Downloading # videos...\"},\"VIDEOS_DOWNLOADING_RATIO\":\"Downloading... $downloaded/$total\",\"VIDEO_ACTION_MENU\":\"Action menu\",\"VIEW_DOWNLOADS\":\"View\",\"VIEW_FULL_PLAYLIST\":\"View full playlist\",\"WAITING_FOR_INTERNET\":\"Waiting for internet connection...\",\"WAITING_TO_DOWNLOAD\":\"Waiting to download...\",\"YOU_ARE_OFFLINE\":\"You are offline\",\"__lang__\":\"en\"});})();ytcfg.set(\"initialInnerWidth\",window.innerWidth);ytcfg.set(\"initialInnerHeight\",window.innerHeight);\n\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('lpcf', null, '');}\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/scheduler.vflset/scheduler.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/www-i18n-constants-en_US.vflset/www-i18n-constants.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/www-tampering.vflset/www-tampering.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/spf.vflset/spf.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif(window[\"_spf_state\"])window[\"_spf_state\"].config={\"assume-all-json-requests-chunked\":true};\n\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/network.vflset/network.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('csl', null, '');}\u003c/script\u003e\u003clink rel=\"stylesheet\" href=\"//fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700\u0026family=YouTube+Sans:wght@300..900\u0026display=swap\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003e\u003cscript name=\"www-roboto\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (document.fonts \u0026\u0026 document.fonts.load) {document.fonts.load(\"400 10pt Roboto\", \"\"); document.fonts.load(\"500 10pt Roboto\", \"\");}\u003c/script\u003e\u003clink rel=\"stylesheet\" href=\"https://www.youtube.com/s/desktop/bd3558ba/cssbin/www-main-desktop-home-page-skeleton.css\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003e\u003clink rel=\"stylesheet\" href=\"https://www.youtube.com/s/desktop/bd3558ba/cssbin/www-onepick.css\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003e\u003clink rel=\"stylesheet\" href=\"https://www.youtube.com/s/_/ytmainappweb/_/ss/k=ytmainappweb.kevlar_base.CylGSP1vG8k.L.B1.O/am=AEAo/d=0/rs=AGKMywHTPz1th-7oAagrpGI2fpCQAkR8Hw\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003e\u003cstyle class=\"global_styles\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003ebody{padding:0;margin:0;overflow-y:scroll}body.autoscroll{overflow-y:auto}body.no-scroll{overflow:hidden}body.no-y-scroll{overflow-y:hidden}.hidden{display:none}textarea{--paper-input-container-input_-_white-space:pre-wrap}.grecaptcha-badge{visibility:hidden}\u003c/style\u003e\u003cstyle class=\"masthead_shell\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003eytd-masthead.shell{background-color:#fff!important;position:fixed;top:0;right:0;left:0;display:-ms-flex;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;height:56px;-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-moz-box-align:center;align-items:center}ytd-masthead.shell #menu-icon{margin-left:16px}ytd-app\u003eytd-masthead.chunked{position:fixed;top:0;width:100%}ytd-masthead.shell.dark,ytd-masthead.shell.theater{background-color:#0f0f0f!important}ytd-masthead.shell.full-window-mode{background-color:#0f0f0f!important;opacity:0;-webkit-transform:translateY(calc(-100% - 5px));transform:translateY(calc(-100% - 5px))}ytd-masthead.shell\u003e:first-child{padding-left:16px}ytd-masthead.shell\u003e:last-child{padding-right:16px}ytd-masthead #masthead-logo{display:-ms-flex;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex}ytd-masthead #masthead-logo #country-code{margin-right:2px}ytd-masthead.shell #yt-logo-red-svg,ytd-masthead.shell #yt-logo-red-updated-svg,ytd-masthead.shell #yt-logo-svg,ytd-masthead.shell #yt-logo-updated-svg{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;margin-left:8px;padding:0;color:#000}ytd-masthead.shell #a11y-skip-nav{display:none}ytd-masthead.shell svg{width:40px;height:40px;padding:8px;margin-right:8px;-moz-box-sizing:border-box;box-sizing:border-box;color:#606060;fill:currentColor}ytd-masthead .external-icon{width:24px;height:24px}ytd-masthead .yt-icons-ext{fill:currentColor;color:#606060}ytd-masthead.shell.dark .yt-icons-ext ytd-masthead.shell.theater .yt-icons-ext{fill:#fff}ytd-masthead svg#yt-logo-svg{width:80px}ytd-masthead svg#yt-logo-red-svg{width:106.4px}ytd-masthead svg#yt-logo-updated-svg{width:90px}ytd-masthead svg#yt-logo-red-updated-svg{width:97px}@media (max-width:656px){ytd-masthead.shell\u003e:first-child{padding-left:8px}ytd-masthead.shell\u003e:last-child{padding-right:8px}ytd-masthead.shell svg{margin-right:0}ytd-masthead #masthead-logo{-ms-flex:1 1 0.000000001px;-webkit-flex:1;-webkit-box-flex:1;-moz-box-flex:1;flex:1;-webkit-flex-basis:0.000000001px;-ms-flex-preferred-size:0.000000001px;flex-basis:0.000000001px}ytd-masthead.shell #yt-logo-red-svg,ytd-masthead.shell #yt-logo-svg{margin-left:4px}}@media (min-width:876px){ytd-masthead #masthead-logo{width:129px}}#masthead-skeleton-icons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-moz-box-orient:horizontal;-moz-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-webkit-justify-content:flex-end;-moz-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}ytd-masthead.masthead-finish #masthead-skeleton-icons{display:none}.masthead-skeleton-icon{border-radius:50%;height:32px;width:32px;margin:0 8px;background-color:#e3e3e3}ytd-masthead.dark .masthead-skeleton-icon{background-color:#292929}\u003c/style\u003e\u003cstyle class=\"masthead_custom_styles\" is=\"custom-style\" id=\"ext-styles\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003e:-stv-set-elsewhere{--yt-spec-icon-active-other:initial}ytd-masthead .yt-icons-ext{color:var(--yt-spec-icon-active-other)}ytd-masthead svg#yt-logo-red-svg #youtube-red-paths path,ytd-masthead svg#yt-logo-red-updated-svg #youtube-red-paths path,ytd-masthead svg#yt-logo-svg #youtube-paths path,ytd-masthead svg#yt-logo-updated-svg #youtube-paths path{fill:#282828}ytd-masthead.dark svg#yt-logo-red-svg #youtube-red-paths path,ytd-masthead.dark svg#yt-logo-red-updated-svg #youtube-red-paths path,ytd-masthead.dark svg#yt-logo-svg #youtube-paths path,ytd-masthead.dark svg#yt-logo-updated-svg #youtube-paths path,ytd-masthead.theater svg#yt-logo-red-svg #youtube-red-paths path,ytd-masthead.theater svg#yt-logo-svg #youtube-paths path{fill:#fff}\u003c/style\u003e\u003cstyle class=\"searchbox\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003e#search-input.ytd-searchbox-spt input{-webkit-appearance:none;-webkit-font-smoothing:antialiased;background-color:transparent;border:none;box-shadow:none;color:inherit;font-family:Roboto,Noto,sans-serif;font-size:16px;font-weight:400;line-height:24px;margin-left:4px;max-width:100%;outline:none;text-align:inherit;width:100%;-ms-flex:1 1 0.000000001px;-webkit-flex:1;-webkit-box-flex:1;-moz-box-flex:1;flex:1;-webkit-flex-basis:0.000000001px;-ms-flex-preferred-size:0.000000001px;flex-basis:0.000000001px}#search-container.ytd-searchbox-spt{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}#search-input.ytd-searchbox-spt #search::-webkit-input-placeholder{color:#888}#search-input.ytd-searchbox-spt #search::-moz-input-placeholder{color:#888}#search-input.ytd-searchbox-spt #search:-ms-input-placeholder{color:#888}\u003c/style\u003e\u003cstyle class=\"kevlar_global_styles\" nonce=\"8fy7HRc70J7zDrtDxujuhw\"\u003ehtml{background-color:#fff!important;-webkit-text-size-adjust:none}html[dark]{background-color:#0f0f0f!important}#logo-red-icon-container.ytd-topbar-logo-renderer{width:86px}\u003c/style\u003e\u003cmeta name=\"theme-color\" content=\"rgba(255, 255, 255, 0.98)\"\u003e\u003clink rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"https://www.youtube.com/opensearch?locale=en_US\" title=\"YouTube\"\u003e\u003clink rel=\"manifest\" href=\"/manifest.webmanifest\" crossorigin=\"use-credentials\"\u003e\u003c/head\u003e\u003cbody dir=\"ltr\"\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('bs', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eytcfg.set('initialBodyClientWidth', document.body.clientWidth);\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('ai', null, '');}\u003c/script\u003e\u003ciframe name=\"passive_signin\" src=\"https://accounts.google.com/ServiceLogin?service=youtube\u0026amp;uilel=3\u0026amp;passive=true\u0026amp;continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3D%252Fsignin_passive%26feature%3Dpassive\u0026amp;hl=en\" style=\"display: none\"\u003e\u003c/iframe\u003e\u003cytd-app\u003e\u003cytd-masthead id=\"masthead\" logo-type=\"YOUTUBE_LOGO\" slot=\"masthead\" class=\"shell \"\u003e\u003cdiv id=\"search-container\" class=\"ytd-searchbox-spt\" slot=\"search-container\"\u003e\u003c/div\u003e\u003cdiv id=\"search-input\" class=\"ytd-searchbox-spt\" slot=\"search-input\"\u003e\u003cinput id=\"search\" autocapitalize=\"none\" autocomplete=\"off\" autocorrect=\"off\" hidden name=\"search_query\" tabindex=\"0\" type=\"text\" spellcheck=\"false\"\u003e\u003c/div\u003e\u003csvg id=\"menu-icon\" class=\"external-icon\" preserveAspectRatio=\"xMidYMid meet\"\u003e\u003cg id=\"menu\" class=\"yt-icons-ext\" viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M21,6H3V5h18V6z M21,11H3v1h18V11z M21,17H3v1h18V17z\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003cdiv id=\"masthead-logo\" slot=\"masthead-logo\"\u003e\u003ca style=\"display: none;\" href=\"/\" title=\"YouTube\"\u003e\u003csvg id=\"yt-logo-updated-svg\" class=\"external-icon\" viewBox=\"0 0 90 20\"\u003e\u003cg id=\"yt-logo-updated\" viewBox=\"0 0 90 20\" preserveAspectRatio=\"xMidYMid meet\"\u003e\u003cg\u003e\u003cpath d=\"M27.9727 3.12324C27.6435 1.89323 26.6768 0.926623 25.4468 0.597366C23.2197 2.24288e-07 14.285 0 14.285 0C14.285 0 5.35042 2.24288e-07 3.12323 0.597366C1.89323 0.926623 0.926623 1.89323 0.597366 3.12324C2.24288e-07 5.35042 0 10 0 10C0 10 2.24288e-07 14.6496 0.597366 16.8768C0.926623 18.1068 1.89323 19.0734 3.12323 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6768 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9727 3.12324Z\" fill=\"#FF0000\"/\u003e\u003cpath d=\"M11.4253 14.2854L18.8477 10.0004L11.4253 5.71533V14.2854Z\" fill=\"white\"/\u003e\u003c/g\u003e\u003cg\u003e\u003cg id=\"youtube-paths\"\u003e\u003cpath d=\"M34.6024 13.0036L31.3945 1.41846H34.1932L35.3174 6.6701C35.6043 7.96361 35.8136 9.06662 35.95 9.97913H36.0323C36.1264 9.32532 36.3381 8.22937 36.665 6.68892L37.8291 1.41846H40.6278L37.3799 13.0036V18.561H34.6001V13.0036H34.6024Z\"/\u003e\u003cpath d=\"M41.4697 18.1937C40.9053 17.8127 40.5031 17.22 40.2632 16.4157C40.0257 15.6114 39.9058 14.5437 39.9058 13.2078V11.3898C39.9058 10.0422 40.0422 8.95805 40.315 8.14196C40.5878 7.32588 41.0135 6.72851 41.592 6.35457C42.1706 5.98063 42.9302 5.79248 43.871 5.79248C44.7976 5.79248 45.5384 5.98298 46.0981 6.36398C46.6555 6.74497 47.0647 7.34234 47.3234 8.15137C47.5821 8.96275 47.7115 10.0422 47.7115 11.3898V13.2078C47.7115 14.5437 47.5845 15.6161 47.3329 16.4251C47.0812 17.2365 46.672 17.8292 46.1075 18.2031C45.5431 18.5771 44.7764 18.7652 43.8098 18.7652C42.8126 18.7675 42.0342 18.5747 41.4697 18.1937ZM44.6353 16.2323C44.7905 15.8231 44.8705 15.1575 44.8705 14.2309V10.3292C44.8705 9.43077 44.7929 8.77225 44.6353 8.35833C44.4777 7.94206 44.2026 7.7351 43.8074 7.7351C43.4265 7.7351 43.156 7.94206 43.0008 8.35833C42.8432 8.77461 42.7656 9.43077 42.7656 10.3292V14.2309C42.7656 15.1575 42.8408 15.8254 42.9914 16.2323C43.1419 16.6415 43.4123 16.8461 43.8074 16.8461C44.2026 16.8461 44.4777 16.6415 44.6353 16.2323Z\"/\u003e\u003cpath d=\"M56.8154 18.5634H54.6094L54.3648 17.03H54.3037C53.7039 18.1871 52.8055 18.7656 51.6061 18.7656C50.7759 18.7656 50.1621 18.4928 49.767 17.9496C49.3719 17.4039 49.1743 16.5526 49.1743 15.3955V6.03751H51.9942V15.2308C51.9942 15.7906 52.0553 16.188 52.1776 16.4256C52.2999 16.6631 52.5045 16.783 52.7914 16.783C53.036 16.783 53.2712 16.7078 53.497 16.5573C53.7228 16.4067 53.8874 16.2162 53.9979 15.9858V6.03516H56.8154V18.5634Z\"/\u003e\u003cpath d=\"M64.4755 3.68758H61.6768V18.5629H58.9181V3.68758H56.1194V1.42041H64.4755V3.68758Z\"/\u003e\u003cpath d=\"M71.2768 18.5634H69.0708L68.8262 17.03H68.7651C68.1654 18.1871 67.267 18.7656 66.0675 18.7656C65.2373 18.7656 64.6235 18.4928 64.2284 17.9496C63.8333 17.4039 63.6357 16.5526 63.6357 15.3955V6.03751H66.4556V15.2308C66.4556 15.7906 66.5167 16.188 66.639 16.4256C66.7613 16.6631 66.9659 16.783 67.2529 16.783C67.4974 16.783 67.7326 16.7078 67.9584 16.5573C68.1842 16.4067 68.3488 16.2162 68.4593 15.9858V6.03516H71.2768V18.5634Z\"/\u003e\u003cpath d=\"M80.609 8.0387C80.4373 7.24849 80.1621 6.67699 79.7812 6.32186C79.4002 5.96674 78.8757 5.79035 78.2078 5.79035C77.6904 5.79035 77.2059 5.93616 76.7567 6.23014C76.3075 6.52412 75.9594 6.90747 75.7148 7.38489H75.6937V0.785645H72.9773V18.5608H75.3056L75.5925 17.3755H75.6537C75.8724 17.7988 76.1993 18.1304 76.6344 18.3774C77.0695 18.622 77.554 18.7443 78.0855 18.7443C79.038 18.7443 79.7412 18.3045 80.1904 17.4272C80.6396 16.5476 80.8653 15.1765 80.8653 13.3092V11.3266C80.8653 9.92722 80.7783 8.82892 80.609 8.0387ZM78.0243 13.1492C78.0243 14.0617 77.9867 14.7767 77.9114 15.2941C77.8362 15.8115 77.7115 16.1808 77.5328 16.3971C77.3564 16.6158 77.1165 16.724 76.8178 16.724C76.585 16.724 76.371 16.6699 76.1734 16.5594C75.9759 16.4512 75.816 16.2866 75.6937 16.0702V8.96062C75.7877 8.6196 75.9524 8.34209 76.1852 8.12337C76.4157 7.90465 76.6697 7.79646 76.9401 7.79646C77.2271 7.79646 77.4481 7.90935 77.6034 8.13278C77.7609 8.35855 77.8691 8.73485 77.9303 9.26636C77.9914 9.79787 78.022 10.5528 78.022 11.5335V13.1492H78.0243Z\"/\u003e\u003cpath d=\"M84.8657 13.8712C84.8657 14.6755 84.8892 15.2776 84.9363 15.6798C84.9833 16.0819 85.0821 16.3736 85.2326 16.5594C85.3831 16.7428 85.6136 16.8345 85.9264 16.8345C86.3474 16.8345 86.639 16.6699 86.7942 16.343C86.9518 16.0161 87.0365 15.4705 87.0506 14.7085L89.4824 14.8519C89.4965 14.9601 89.5035 15.1106 89.5035 15.3011C89.5035 16.4582 89.186 17.3237 88.5534 17.8952C87.9208 18.4667 87.0247 18.7536 85.8676 18.7536C84.4777 18.7536 83.504 18.3185 82.9466 17.446C82.3869 16.5735 82.1094 15.2259 82.1094 13.4008V11.2136C82.1094 9.33452 82.3987 7.96105 82.9772 7.09558C83.5558 6.2301 84.5459 5.79736 85.9499 5.79736C86.9165 5.79736 87.6597 5.97375 88.1771 6.32888C88.6945 6.684 89.059 7.23433 89.2707 7.98457C89.4824 8.7348 89.5882 9.76961 89.5882 11.0913V13.2362H84.8657V13.8712ZM85.2232 7.96811C85.0797 8.14449 84.9857 8.43377 84.9363 8.83593C84.8892 9.2381 84.8657 9.84722 84.8657 10.6657V11.5641H86.9283V10.6657C86.9283 9.86133 86.9001 9.25221 86.846 8.83593C86.7919 8.41966 86.6931 8.12803 86.5496 7.95635C86.4062 7.78702 86.1851 7.7 85.8864 7.7C85.5854 7.70235 85.3643 7.79172 85.2232 7.96811Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/a\u003e\u003ca style=\"display: none;\" href=\"/\" title=\"YouTube\"\u003e\u003csvg id=\"yt-logo-red-updated-svg\" class=\"external-icon\" viewBox=\"0 0 97 20\" style=\"width: 97px;\"\u003e\u003cg id=\"yt-logo-red-updated\" viewBox=\"0 0 97 20\" preserveAspectRatio=\"xMidYMid meet\"\u003e\u003cg\u003e\u003cpath d=\"M27.9704 3.12324C27.6411 1.89323 26.6745 0.926623 25.4445 0.597366C23.2173 2.24288e-07 14.2827 0 14.2827 0C14.2827 0 5.34807 2.24288e-07 3.12088 0.597366C1.89323 0.926623 0.924271 1.89323 0.595014 3.12324C-2.8036e-07 5.35042 0 10 0 10C0 10 -1.57002e-06 14.6496 0.597364 16.8768C0.926621 18.1068 1.89323 19.0734 3.12324 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6769 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9704 3.12324Z\" fill=\"#FF0000\"/\u003e\u003cpath d=\"M11.4275 14.2854L18.8475 10.0004L11.4275 5.71533V14.2854Z\" fill=\"white\"/\u003e\u003c/g\u003e\u003cg id=\"youtube-red-paths\"\u003e\u003cpath d=\"M40.0566 6.34524V7.03668C40.0566 10.4915 38.5255 12.5118 35.1742 12.5118H34.6638V18.5583H31.9263V1.42285H35.414C38.6078 1.42285 40.0566 2.7728 40.0566 6.34524ZM37.1779 6.59218C37.1779 4.09924 36.7287 3.50658 35.1765 3.50658H34.6662V10.4727H35.1365C36.6064 10.4727 37.1803 9.40968 37.1803 7.10253L37.1779 6.59218Z\"/\u003e\u003cpath d=\"M46.5336 5.8345L46.3901 9.08238C45.2259 8.83779 44.264 9.02123 43.836 9.77382V18.5579H41.1196V6.0391H43.2857L43.5303 8.75312H43.6337C43.9183 6.77288 44.8379 5.771 46.0232 5.771C46.1949 5.7757 46.3666 5.79687 46.5336 5.8345Z\"/\u003e\u003cpath d=\"M49.6567 13.2456V13.8782C49.6567 16.0842 49.779 16.8415 50.7198 16.8415C51.6182 16.8415 51.8228 16.1501 51.8439 14.7178L54.2734 14.8613C54.4568 17.5565 53.0481 18.763 50.6586 18.763C47.7588 18.763 46.9004 16.8627 46.9004 13.4126V11.223C46.9004 7.58707 47.8599 5.80908 50.7409 5.80908C53.6407 5.80908 54.3769 7.32131 54.3769 11.0984V13.2456H49.6567ZM49.6567 10.6703V11.5687H51.7193V10.675C51.7193 8.37258 51.5547 7.71172 50.6821 7.71172C49.8096 7.71172 49.6567 8.38669 49.6567 10.675V10.6703Z\"/\u003e\u003cpath d=\"M68.4103 9.09902V18.5557H65.5928V9.30834C65.5928 8.28764 65.327 7.77729 64.7132 7.77729C64.2216 7.77729 63.7724 8.06186 63.4667 8.59338C63.4832 8.76271 63.4902 8.93439 63.4879 9.10373V18.5605H60.668V9.30834C60.668 8.28764 60.4022 7.77729 59.7884 7.77729C59.2969 7.77729 58.8665 8.06186 58.5631 8.57456V18.5628H55.7456V6.03929H57.9728L58.2221 7.63383H58.2621C58.8947 6.42969 59.9178 5.77588 61.1219 5.77588C62.3072 5.77588 62.9799 6.36854 63.288 7.43157C63.9418 6.34973 64.9225 5.77588 66.0443 5.77588C67.7564 5.77588 68.4103 7.00119 68.4103 9.09902Z\"/\u003e\u003cpath d=\"M69.8191 2.8338C69.8191 1.4862 70.3106 1.09814 71.3501 1.09814C72.4132 1.09814 72.8812 1.54734 72.8812 2.8338C72.8812 4.22373 72.4108 4.57181 71.3501 4.57181C70.3106 4.56945 69.8191 4.22138 69.8191 2.8338ZM69.9837 6.03935H72.6789V18.5629H69.9837V6.03935Z\"/\u003e\u003cpath d=\"M81.891 6.03955V18.5631H79.6849L79.4403 17.032H79.3792C78.7466 18.2573 77.827 18.7677 76.684 18.7677C75.0095 18.7677 74.2522 17.7046 74.2522 15.3975V6.0419H77.0697V15.2352C77.0697 16.3382 77.3002 16.7874 77.867 16.7874C78.3844 16.7663 78.8477 16.4582 79.0688 15.9902V6.0419H81.891V6.03955Z\"/\u003e\u003cpath d=\"M96.1901 9.09893V18.5557H93.3726V9.30825C93.3726 8.28755 93.1068 7.7772 92.493 7.7772C92.0015 7.7772 91.5523 8.06177 91.2465 8.59329C91.263 8.76027 91.2701 8.9296 91.2677 9.09893V18.5557H88.4502V9.30825C88.4502 8.28755 88.1845 7.7772 87.5706 7.7772C87.0791 7.7772 86.6487 8.06177 86.3453 8.57447V18.5627H83.5278V6.0392H85.7527L85.9973 7.63139H86.0372C86.6699 6.42725 87.6929 5.77344 88.8971 5.77344C90.0824 5.77344 90.755 6.3661 91.0631 7.42913C91.7169 6.34729 92.6976 5.77344 93.8194 5.77344C95.541 5.77579 96.1901 7.0011 96.1901 9.09893Z\"/\u003e\u003cpath d=\"M40.0566 6.34524V7.03668C40.0566 10.4915 38.5255 12.5118 35.1742 12.5118H34.6638V18.5583H31.9263V1.42285H35.414C38.6078 1.42285 40.0566 2.7728 40.0566 6.34524ZM37.1779 6.59218C37.1779 4.09924 36.7287 3.50658 35.1765 3.50658H34.6662V10.4727H35.1365C36.6064 10.4727 37.1803 9.40968 37.1803 7.10253L37.1779 6.59218Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/a\u003e\u003cspan id=\"country-code\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv id=\"masthead-skeleton-icons\" slot=\"masthead-skeleton\"\u003e\u003cdiv class=\"masthead-skeleton-icon\"\u003e\u003c/div\u003e\u003cdiv class=\"masthead-skeleton-icon\"\u003e\u003c/div\u003e\u003cdiv class=\"masthead-skeleton-icon\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/ytd-masthead\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/about/\" style=\"display: none;\"\u003eAbout\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/about/press/\" style=\"display: none;\"\u003ePress\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/about/copyright/\" style=\"display: none;\"\u003eCopyright\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"/t/contact_us/\" style=\"display: none;\"\u003eContact us\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/creators/\" style=\"display: none;\"\u003eCreators\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/ads/\" style=\"display: none;\"\u003eAdvertise\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://developers.google.com/youtube\" style=\"display: none;\"\u003eDevelopers\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"/t/terms\" style=\"display: none;\"\u003eTerms\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"/t/privacy\" style=\"display: none;\"\u003ePrivacy\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"https://www.youtube.com/about/policies/\" style=\"display: none;\"\u003ePolicy \u0026amp; Safety\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"https://www.youtube.com/howyoutubeworks?utm_campaign=ytgen\u0026amp;utm_source=ythp\u0026amp;utm_medium=LeftNav\u0026amp;utm_content=txt\u0026amp;u=https%3A%2F%2Fwww.youtube.com%2Fhowyoutubeworks%3Futm_source%3Dythp%26utm_medium%3DLeftNav%26utm_campaign%3Dytgen\" style=\"display: none;\"\u003eHow YouTube works\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"/new\" style=\"display: none;\"\u003eTest new features\u003c/a\u003e\u003cdiv id=\"copyright\" slot=\"copyright\" style=\"display: none;\"\u003e\u003cdiv dir=\"ltr\" style=\"display:inline\"\u003e\u0026copy; 2023 Google LLC\u003c/div\u003e\u003c/div\u003e\u003c/ytd-app\u003e\u003cdiv id=\"home-page-skeleton\"\u003e\u003cdiv id=\"guide-skeleton\"\u003e\u003c/div\u003e\u003cdiv id=\"home-container-skeleton\"\u003e\u003cdiv id=\"home-chips\"\u003e\u003c/div\u003e\u003cdiv id=\"home-container-media\"\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('gcc', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('nc_pj', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('rsbe_dpj', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('js_ld', null, '');}\u003c/script\u003e\u003cscript id=\"base-js\" src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/desktop_polymer.vflset/desktop_polymer.js\" nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003e\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('rsef_dpj', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('rsae_dpj', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('js_r', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('ac', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003evar onPolymerReady = function(e) {window.removeEventListener('script-load-dpj', onPolymerReady);if (window.ytcsi) {window.ytcsi.tick('apr', null, '');}}; if (window.Polymer \u0026\u0026 Polymer.RenderStatus) {onPolymerReady();} else {window.addEventListener('script-load-dpj', onPolymerReady);}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003eif (window.ytcsi) {window.ytcsi.tick('pdc', null, '');}\u003c/script\u003e\u003cscript nonce=\"gVoKGw6DmDkDcCBlxQh7Zg\"\u003evar ytInitialData = {\"responseContext\":{\"serviceTrackingParams\":[{\"service\":\"GUIDED_HELP\",\"params\":[{\"key\":\"context\",\"value\":\"yt_web_unknown_form_factor_kevlar_w2w\"},{\"key\":\"logged_in\",\"value\":\"0\"}]},{\"service\":\"GFEEDBACK\",\"params\":[{\"key\":\"context\",\"value\":\"yt_web_unknown_form_factor_kevlar_w2w\"},{\"key\":\"browse_id\",\"value\":\"FEwhat_to_watch\"},{\"key\":\"browse_id_prefix\",\"value\":\"\"},{\"key\":\"logged_in\",\"value\":\"0\"},{\"key\":\"e\",\"value\":\"23804281,23858057,23946420,23966208,23983296,23986015,23998056,24004644,24007246,24034168,24036948,24077241,24080738,24120820,24135310,24140247,24166867,24181174,24186126,24187377,24208765,24241378,24255543,24255545,24288664,24290971,24291857,24362606,24367579,24371398,24371779,24377598,24377909,24382552,24385728,24387949,24390675,24428788,24428941,24428944,24439361,24451319,24453989,24458839,24468724,24485421,24506515,24506784,24515423,24517093,24518452,24524098,24526515,24534952,24537200,24539025,24540881,24542367,24542452,24543193,24543197,24543199,24543201,24546075,24548627,24548629,24549786,24550285,24550458,24554160,24559328,24560416,24563746,24566293,24566687,24585907,24586687,24588590,24589492,24694842,24697067,24698453,24699899,39324156,51003636,51004018,51006181,51008997,51009757,51009781,51009900,51010235,51012165,51012291,51012659,51014091,51016856,51017346,51019626,51020570,51021953,51024416,51025244,51025415,51025833,51026715,51027870,51028271,51029412,51030311,51033399,51033577,51036511,51037088,51037540,51038399,51038805,51039493,51039699,51041497,51041809,51042557,51044150,51044152,51044154,51044158,51044723,51045016,51045969,51047579,51048239,51048488,51049005,51053957,51054668,51054675,51055016,51055917,51055919,51057534,51057745,51059322,51059572,51060161,51061018,51061427,51061926,51063326,51065651,51066185,51067340,51068528\"}]},{\"service\":\"CSI\",\"params\":[{\"key\":\"yt_fn\",\"value\":\"what_to_watch\"},{\"key\":\"c\",\"value\":\"WEB\"},{\"key\":\"cver\",\"value\":\"2.20231121.08.00\"},{\"key\":\"yt_li\",\"value\":\"0\"},{\"key\":\"GetHome_rid\",\"value\":\"0xd790963b95e08416\"}]},{\"service\":\"GOOGLE_HELP\",\"params\":[{\"key\":\"browse_id\",\"value\":\"FEwhat_to_watch\"},{\"key\":\"browse_id_prefix\",\"value\":\"\"}]},{\"service\":\"ECATCHER\",\"params\":[{\"key\":\"client.version\",\"value\":\"2.20231121\"},{\"key\":\"client.name\",\"value\":\"WEB\"},{\"key\":\"client.fexp\",\"value\":\"39324156,24451319,51044723,23804281,24377909,24515423,23986015,51053957,24585907,24390675,51029412,51030311,51048239,24034168,24540881,24485421,24288664,51061018,23983296,24543197,51016856,51044154,24362606,24387949,24698453,24140247,24588590,51038805,51026715,24518452,23858057,24548627,24439361,51063326,51017346,24539025,51036511,24428788,51009757,51059322,24517093,24255543,51012291,51045969,24549786,51009781,24699899,24524098,51021953,51037540,51047579,24453989,51060161,51008997,24543201,51055919,51054668,24559328,24542367,51054675,24697067,24506784,51057745,51061427,51037088,24548629,51059572,24208765,24166867,24382552,51025244,51033399,51049005,24367579,51044150,51057534,24428944,51027870,24586687,24077241,24187377,51041497,24563746,24543193,51020570,51066185,24554160,23998056,51039699,24542452,24004644,24534952,24543199,51038399,51055917,24560416,24036948,24371779,24458839,24589492,24526515,24186126,51044158,24371398,24550285,24007246,51028271,24120820,51006181,51012659,24566293,24255545,24241378,51010235,24080738,51045016,23946420,24135310,51044152,24377598,24506515,24537200,51003636,51033577,51012165,51009900,24546075,51061926,24290971,24550458,51068528,24385728,51025415,51019626,24468724,51065651,51014091,24291857,24428941,24694842,51004018,51024416,24181174,24566687,51042557,51041809,51048488,51055016,51039493,23966208,51067340,51025833\"}]}],\"maxAgeSeconds\":300,\"mainAppWebResponseContext\":{\"loggedOut\":true,\"trackingParam\":\"kx_fmPxhoPZRXx6FmcHA75W2zsA1TVLbPHuAnk5g8jG4rAwRgkuswmIBwOcCE59TDtslLKPQ-SS\"},\"webResponseContextExtensionData\":{\"ytConfigData\":{\"visitorData\":\"CgtqeGt1dTBHVERuVSiX9ZOrBjIICgJJVBICEgA%3D\",\"rootVisualElementType\":3854},\"hasDecorated\":true}},\"contents\":{\"twoColumnBrowseResultsRenderer\":{\"tabs\":[{\"tabRenderer\":{\"selected\":true,\"content\":{\"richGridRenderer\":{\"contents\":[{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"bN-5JJ_CoLM\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/bN-5JJ_CoLM/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLDmwlSy22G4uq38T4d4pKXli3N_Dg\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/bN-5JJ_CoLM/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBvM24j4i6bOuHIgyKe6cmnG4fozg\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"The Expendables (2023) MEJOR PELICULAS DE ACCION Pelicula, Completa en Espanol Latino HD\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"The Expendables (2023) MEJOR PELICULAS DE ACCION Pelicula, Completa en Espanol Latino HD by Abdul 7,884,512 views 3 days ago 1 hour, 36 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"peliculas completas en español, peliculas, peliculas completas en español latino, peliculas completas, peliculas de accion, peliculas completas en español de accion, peliculas en español...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Abdul\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/channel/UCOdsSzjdgx7aVXGY61OVwYw\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCOdsSzjdgx7aVXGY61OVwYw\",\"canonicalBaseUrl\":\"/channel/UCOdsSzjdgx7aVXGY61OVwYw\"}}}]},\"publishedTimeText\":{\"simpleText\":\"3 days ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 36 minutes, 25 seconds\"}},\"simpleText\":\"1:36:25\"},\"viewCountText\":{\"simpleText\":\"7,884,512 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtcmVjWg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4YngE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=bN-5JJ_CoLM\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"bN-5JJ_CoLM\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=6cdfb9249fc2a0b3\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"OFFICIAL_ARTIST_BADGE\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED_ARTIST\",\"tooltip\":\"Official Artist Channel\",\"trackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibilityData\":{\"label\":\"Official Artist Channel\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"Abdul\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/channel/UCOdsSzjdgx7aVXGY61OVwYw\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCOdsSzjdgx7aVXGY61OVwYw\",\"canonicalBaseUrl\":\"/channel/UCOdsSzjdgx7aVXGY61OVwYw\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Abdul\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/channel/UCOdsSzjdgx7aVXGY61OVwYw\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCOdsSzjdgx7aVXGY61OVwYw\",\"canonicalBaseUrl\":\"/channel/UCOdsSzjdgx7aVXGY61OVwYw\"}}}]},\"trackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANKQLPBiv7JpO7vbA==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"7.8 million views\"}},\"simpleText\":\"7.8M views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CNICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CNICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"bN-5JJ_CoLM\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CNICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"bN-5JJ_CoLM\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"bN-5JJ_CoLM\"]}}]}},\"trackingParams\":\"CNICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CNECENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"bN-5JJ_CoLM\",\"onAddCommand\":{\"clickTrackingParams\":\"CNECENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"bN-5JJ_CoLM\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CNECENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtiTi01SkpfQ29MTQ%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CNACEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}},\"targetId\":\"browse-video-menu-button\"}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/acxTUCWZfroUAyeQsnFG4tPhs-8l_eOY1SXJGjWLj7kKvGIP5v9Mybo8CIo3_w4v6wtWqi9cfmI=s88-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/channel/UCOdsSzjdgx7aVXGY61OVwYw\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCOdsSzjdgx7aVXGY61OVwYw\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 36 minutes, 25 seconds\"}},\"simpleText\":\"1:36:25\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CM8CEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"bN-5JJ_CoLM\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CM8CEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"bN-5JJ_CoLM\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CM8CEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CM4CEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CM4CEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"bN-5JJ_CoLM\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CM4CEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"bN-5JJ_CoLM\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"bN-5JJ_CoLM\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CM4CEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/bN-5JJ_CoLM/mqdefault_6s.webp?du=3000\\u0026sqp=CPvjk6sG\\u0026rs=AOn4CLD19j6Hn30sry9KWj5N7cKlavE5hw\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CM0CENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtcmVjWg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4YngE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=bN-5JJ_CoLM\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"bN-5JJ_CoLM\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=6cdfb9249fc2a0b3\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CMwCEJmNBRgAIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richSectionRenderer\":{\"content\":{\"richShelfRenderer\":{\"title\":{\"runs\":[{\"text\":\"Shorts\"}]},\"contents\":[{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"ofhyQ066TPo\",\"headline\":{\"simpleText\":\"Non è stato facile feeega ✨ #shorts\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/ofhyQ066TPo/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLD65tQY0APOdjwwjZrRnmduewU5MA\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1.6 million views\"}},\"simpleText\":\"1.6M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/ofhyQ066TPo\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"ofhyQ066TPo\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-ju4huZ7pjD13i8NCHkxSIxV\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/ofhyQ066TPo/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CMsCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtvZmh5UTA2NlRQbyoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtvZmh5UTA2NlRQb1ICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CMoCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"ofhyQ066TPo\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANKQPqZ6fW0yJz8oQE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Non è stato facile feeega ✨ #shorts - 35 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=ofhyQ066TPo\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7uIbme6Yw9d4vDQh5MUiMVQ%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"ofhyQ066TPo\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7uIbme6Yw9d4vDQh5MUiMVQ%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=a1f872434eba4cfa\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CMkCEIf2BBgAIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CMgCEJmNBRgAIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"gKX6dEOmGvM\",\"headline\":{\"simpleText\":\"cute deer 🦌 😍\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/gKX6dEOmGvM/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLDuJhJvv00oskPknrtkAobJhgtgbA\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"83 million views\"}},\"simpleText\":\"83M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/gKX6dEOmGvM\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"gKX6dEOmGvM\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtyqciEgFijeoqsgdqS5bpf\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/gKX6dEOmGvM/frame0.jpg\",\"width\":576,\"height\":1024}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CMcCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtnS1g2ZEVPbUd2TSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtnS1g2ZEVPbUd2TVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CMYCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"gKX6dEOmGvM\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANKQPO1mJ3Ezv7SgAE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"cute deer 🦌 😍 - 14 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=gKX6dEOmGvM\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7cqnIhIBYo3qKrIHakuW6Xw%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"gKX6dEOmGvM\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7cqnIhIBYo3qKrIHakuW6Xw%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=80a5fa7443a61af3\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CMUCEIf2BBgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CMQCEJmNBRgBIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"QPqDJGkt18U\",\"headline\":{\"simpleText\":\"Never🫣be over🙈 confidence😐 #change #ibillionirelife #lifestyle #quotes #motivation #attitudestatus\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/QPqDJGkt18U/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLDN3wDzgTr3-kK4mHe_v9pgSB_ZOA\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"18 million views\"}},\"simpleText\":\"18M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/QPqDJGkt18U\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"QPqDJGkt18U\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jvuk2g10sM2WkntvkLPe3rS\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/QPqDJGkt18U/frame0.jpg\",\"width\":720,\"height\":1280}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CMMCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtRUHFESkdrdDE4VSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtRUHFESkdrdDE4VVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CMICEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"QPqDJGkt18U\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANKQMWvt8nG5KD9QA==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Never🫣be over🙈 confidence😐 #change #ibillionirelife #lifestyle #quotes #motivation #attitudestatus - 10 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=QPqDJGkt18U\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo77pNoNdLDNlpJ7b5Cz3t60g%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"QPqDJGkt18U\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo77pNoNdLDNlpJ7b5Cz3t60g%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=40fa8324692dd7c5\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CMECEIf2BBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CMACEJmNBRgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"3V8DzO8Wzgk\",\"headline\":{\"simpleText\":\"Cosa Fai Di Sabato Sera?\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/3V8DzO8Wzgk/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLDvLyJ3RuaBfXupg7kBJiz8_CqW5A\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"2.1 million views\"}},\"simpleText\":\"2.1M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/3V8DzO8Wzgk\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"3V8DzO8Wzgk\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-ju8bO_IeaF7gJ7WQ0GWhk7p\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/3V8DzO8Wzgk/frame0.jpg\",\"width\":576,\"height\":1024}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CL8CELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgszVjhEek84V3pnayoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgszVjhEek84V3pna1ICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CL4CEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"3V8DzO8Wzgk\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANKQImc2_jO-cCv3QE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Cosa Fai Di Sabato Sera? - 17 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=3V8DzO8Wzgk\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7vGzvyHmhe4Ce1kNBloZO6Q%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"3V8DzO8Wzgk\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7vGzvyHmhe4Ce1kNBloZO6Q%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=dd5f03ccef16ce09\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CL0CEIf2BBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CLwCEJmNBRgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"OIibXW2JS3A\",\"headline\":{\"simpleText\":\"Fan PROPOSES to Maria Sakkari! 💍\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/OIibXW2JS3A/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLCKaZeL0ExnKPcmhNFlqOY8Ibg_1w\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"129 million views\"}},\"simpleText\":\"129M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/OIibXW2JS3A\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"OIibXW2JS3A\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-ju1Ujgn30SaoBjTJIj1b6gz\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/OIibXW2JS3A/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CLsCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtPSWliWFcySlMzQSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtPSWliWFcySlMzQVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CLoCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"OIibXW2JS3A\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANKQPCWpezW66bEOA==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Fan PROPOSES to Maria Sakkari! 💍 - 40 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=OIibXW2JS3A\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7tVI4J99EmqAY0ySI9W-oMw%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"OIibXW2JS3A\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7tVI4J99EmqAY0ySI9W-oMw%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=38889b5d6d894b70\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CLkCEIf2BBgEIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CLgCEJmNBRgEIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"dJLLouTsg0M\",\"headline\":{\"simpleText\":\"Malinois DANGER!!!! 😱😱😱🤪\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi_webp/dJLLouTsg0M/oar2.webp\",\"width\":406,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"53 million views\"}},\"simpleText\":\"53M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/dJLLouTsg0M\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"dJLLouTsg0M\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtCytaksNisZe_Cv9bzvPN0\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/dJLLouTsg0M/frame0.jpg\",\"width\":406,\"height\":720}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CLcCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtkSkxMb3VUc2cwTSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtkSkxMb3VUc2cwTVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CLYCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"dJLLouTsg0M\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANKQMOGsqeu9LLJdA==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Malinois DANGER!!!! 😱😱😱🤪 - 11 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=dJLLouTsg0M\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7QsrWpLDYrGXvwr_W87zzdA%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"dJLLouTsg0M\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7QsrWpLDYrGXvwr_W87zzdA%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=7492cba2e4ec8343\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CLUCEIf2BBgFIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CLQCEJmNBRgFIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"m7u4NPHnh3Q\",\"headline\":{\"simpleText\":\"making dictator favorite foods | Napoleon\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/m7u4NPHnh3Q/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLAvi8NNJqTOUM0cO8EmWoGcGTLMhQ\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1.4 million views\"}},\"simpleText\":\"1.4M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/m7u4NPHnh3Q\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"m7u4NPHnh3Q\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jvI_ULT7zrVQwpJ3z-72iwL\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/m7u4NPHnh3Q/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CLMCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgttN3U0TlBIbmgzUSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgttN3U0TlBIbmgzUVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CLICEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"m7u4NPHnh3Q\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANKQPSOno_Phu7dmwE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"making dictator favorite foods | Napoleon - 42 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=m7u4NPHnh3Q\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7yP1C0-861UMKSd8_u9osCw%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"m7u4NPHnh3Q\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7yP1C0-861UMKSd8_u9osCw%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=9bbbb834f1e78774\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CLECEIf2BBgGIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CLACEJmNBRgGIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"FjfXTk-8ras\",\"headline\":{\"simpleText\":\"La fidanzata di RONALDO è stata costretta a lasciare lo stadio ❌#ronaldo#cristianoronaldo#calcio\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/FjfXTk-8ras/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLC4WmyTBCTXREPhLZbheOOLg137hg\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3.3 million views\"}},\"simpleText\":\"3.3M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/FjfXTk-8ras\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"FjfXTk-8ras\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtyQDblU2M-3l-bGPRDyhhN\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/FjfXTk-8ras/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CK8CELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtGamZYVGstOHJhcyoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtGamZYVGstOHJhc1ICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CK4CEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"FjfXTk-8ras\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANKQKvb8v3k6fWbFg==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"La fidanzata di RONALDO è stata costretta a lasciare lo stadio ❌#ronaldo#cristianoronaldo#calcio - 15 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=FjfXTk-8ras\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7ckA25VNjPt5fmxj0Q8oYTQ%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"FjfXTk-8ras\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7ckA25VNjPt5fmxj0Q8oYTQ%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=1637d74e4fbcadab\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CK0CEIf2BBgHIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CKwCEJmNBRgHIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"eAutzGk8gU0\",\"headline\":{\"simpleText\":\"What I ordered vs what I got #grwm\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/eAutzGk8gU0/oardefault.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLD6V8xDk-loQQo-vW8I-EQQxeUgwQ\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"7 million views\"}},\"simpleText\":\"7M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/eAutzGk8gU0\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"eAutzGk8gU0\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-juvdRKtRCxVL975QhJWJr7h\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/eAutzGk8gU0/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CKsCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtlQXV0ekdrOGdVMCoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtlQXV0ekdrOGdVMFICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CKoCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"eAutzGk8gU0\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANKQM2C8snGueuFeA==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"What I ordered vs what I got #grwm - 15 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=eAutzGk8gU0\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7r3USrUQsVS_e-UISVia-4Q%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"eAutzGk8gU0\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7r3USrUQsVS_e-UISVia-4Q%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=780badcc693c814d\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CKkCEIf2BBgIIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CKgCEJmNBRgIIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"2dQuv4Pc5o0\",\"headline\":{\"simpleText\":\"respect 💯🙄🥶😱\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/2dQuv4Pc5o0/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLC3nEoBUQ6xONbRr_Q3388qPlBj5g\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"26 million views\"}},\"simpleText\":\"26M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/2dQuv4Pc5o0\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"2dQuv4Pc5o0\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jvdXQti3utKU2vtV54JgRQJ\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/2dQuv4Pc5o0/frame0.jpg\",\"width\":720,\"height\":1280}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CKcCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgsyZFF1djRQYzVvMCoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgsyZFF1djRQYzVvMFICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CKYCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"2dQuv4Pc5o0\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANKQI3N857414vq2QE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"respect 💯🙄🥶😱 - 18 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=2dQuv4Pc5o0\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo73V0LYt7rSlNr7VeeCYEUCQ%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"2dQuv4Pc5o0\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo73V0LYt7rSlNr7VeeCYEUCQ%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=d9d42ebf83dce68d\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CKUCEIf2BBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CKQCEJmNBRgJIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"h0I10UmFijY\",\"headline\":{\"simpleText\":\"Spicy Ramen 🌶️🍜🥵 #shorts\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/h0I10UmFijY/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLB3a4hjB9NogMVDzNbvwkQO1UrNPg\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"19 million views\"}},\"simpleText\":\"19M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/h0I10UmFijY\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"h0I10UmFijY\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtNuCi8LuYcGUUOWbBSQJpM\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/h0I10UmFijY/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CKMCELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtoMEkxMFVtRmlqWSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtoMEkxMFVtRmlqWVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CKICEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"h0I10UmFijY\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANKQLaUlsyUuo2hhwE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Spicy Ramen 🌶️🍜🥵 #shorts - 51 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=h0I10UmFijY\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7TbgovC7mHBlFDlmwUkCaTA%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"h0I10UmFijY\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7TbgovC7mHBlFDlmwUkCaTA%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=874235d149858a36\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CKECEIf2BBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CKACEJmNBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"Wd-6y65EycA\",\"headline\":{\"simpleText\":\"Quelli che trovi quando torni a giocare online #PlaystationItalia #XboxItalia #PCgamingIta\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/Wd-6y65EycA/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLDEqMD03qNrpwy3hG6TABcORypfJw\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"47K views\"}},\"simpleText\":\"47K views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/Wd-6y65EycA\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"Wd-6y65EycA\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jt1rGOb3OOwzQeHV_xh5VH6\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/Wd-6y65EycA/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CJ8CELC1BCITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtXZC02eTY1RXljQSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtXZC02eTY1RXljQVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CJ4CEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"Wd-6y65EycA\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANKQMCTk_K62e7vWQ==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Quelli che trovi quando torni a giocare online #PlaystationItalia #XboxItalia #PCgamingIta - 29 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANKMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=Wd-6y65EycA\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7daxjm9zjsM0Hh1f8YeVR-g%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"Wd-6y65EycA\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7daxjm9zjsM0Hh1f8YeVR-g%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=59dfbacbae44c9c0\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CJ0CEIf2BBgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CJwCEJmNBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\"}}],\"trackingParams\":\"CJkCEN-DAyITCKjVhIaB5YIDFd7QQgUd-qgDSg==\",\"showMoreButton\":{\"buttonRenderer\":{\"style\":\"STYLE_OPACITY\",\"size\":\"SIZE_DEFAULT\",\"text\":{\"runs\":[{\"text\":\"Show more\"}]},\"icon\":{\"iconType\":\"EXPAND\"},\"accessibility\":{\"label\":\"Show more\"},\"trackingParams\":\"CJsCEJnjCyITCKjVhIaB5YIDFd7QQgUd-qgDSg==\"}},\"isExpanded\":false,\"icon\":{\"iconType\":\"YOUTUBE_SHORTS_BRAND_24\"},\"isTopDividerHidden\":false,\"isBottomDividerHidden\":false,\"showLessButton\":{\"buttonRenderer\":{\"style\":\"STYLE_OPACITY\",\"size\":\"SIZE_DEFAULT\",\"text\":{\"runs\":[{\"text\":\"Show less\"}]},\"icon\":{\"iconType\":\"COLLAPSE\"},\"accessibility\":{\"label\":\"Show less\"},\"trackingParams\":\"CJoCEPBbIhMIqNWEhoHlggMV3tBCBR36qANK\"}}}},\"trackingParams\":\"CJgCEOOXBRgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"fullBleed\":false}},{\"richSectionRenderer\":{\"content\":{\"richShelfRenderer\":{\"title\":{\"runs\":[{\"text\":\"Trending\"}]},\"contents\":[{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"mE8Sy_61ecQ\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/mE8Sy_61ecQ/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBUoEsfw_cdaRzUXImzOpXoiVULUw\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/mE8Sy_61ecQ/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLDoxn8HVOVpFgBpuLkN-jqutLrkEA\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Mandi Nishtulla ft. Bes Kallaku - Sarile\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Mandi Nishtulla ft. Bes Kallaku - Sarile by E.B Production 1,216,701 views 2 days ago 3 minutes, 10 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"𝗙𝗢𝗟𝗘 𝗣𝗨𝗕𝗟𝗜𝗦𝗛𝗜𝗡𝗚 - https://www.smarturl.it/FolePublishing\\n\\n____________________________\\n\\n\\n𝗠𝗮𝗻𝗱𝗶 𝗡𝗶𝘀𝗵𝘁𝘂𝗹𝗹𝗮...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"E.B Production\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@EBProductionEntertainment\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCpTVnSPN3Xl4_zBfgDSwF4Q\",\"canonicalBaseUrl\":\"/@EBProductionEntertainment\"}}}]},\"publishedTimeText\":{\"simpleText\":\"2 days ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 10 seconds\"}},\"simpleText\":\"3:10\"},\"viewCountText\":{\"simpleText\":\"1,216,701 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=mE8Sy_61ecQ\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"mE8Sy_61ecQ\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=984f12cbfeb579c4\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"E.B Production\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@EBProductionEntertainment\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCpTVnSPN3Xl4_zBfgDSwF4Q\",\"canonicalBaseUrl\":\"/@EBProductionEntertainment\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"E.B Production\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@EBProductionEntertainment\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCpTVnSPN3Xl4_zBfgDSwF4Q\",\"canonicalBaseUrl\":\"/@EBProductionEntertainment\"}}}]},\"trackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANKQMTz1fW_2cSnmAE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1.2 million views\"}},\"simpleText\":\"1.2M views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJcCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CJcCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"mE8Sy_61ecQ\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CJcCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"mE8Sy_61ecQ\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"mE8Sy_61ecQ\"]}}]}},\"trackingParams\":\"CJcCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CJYCENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"mE8Sy_61ecQ\",\"onAddCommand\":{\"clickTrackingParams\":\"CJYCENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"mE8Sy_61ecQ\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CJYCENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgttRThTeV82MWVjUQ%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CJUCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/Uszw320r0IGPan6lWPyEHlWm43dbL8SHWBTVxSw2Goo4WUcD5Xj92WnkJjD4n-_ehrCEp8C1=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@EBProductionEntertainment\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCpTVnSPN3Xl4_zBfgDSwF4Q\",\"canonicalBaseUrl\":\"/@EBProductionEntertainment\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 10 seconds\"}},\"simpleText\":\"3:10\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CJQCEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"mE8Sy_61ecQ\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CJQCEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"mE8Sy_61ecQ\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CJQCEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CJMCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CJMCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"mE8Sy_61ecQ\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CJMCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"mE8Sy_61ecQ\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"mE8Sy_61ecQ\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CJMCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CJICENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=mE8Sy_61ecQ\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"mE8Sy_61ecQ\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=984f12cbfeb579c4\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CJECEJmNBRgAIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"uSahs8cU-Zo\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/uSahs8cU-Zo/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLB5CllD-KMoQXZEeh-0PUtjrogqQQ\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/uSahs8cU-Zo/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLC9xb1bvKRA7xp0JzF3uODxr03oFQ\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"La BUSINESS CLASS migliore del mondo\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"La BUSINESS CLASS migliore del mondo by Surry 57,906 views 7 hours ago 15 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Oggi provo la business class migliore del mondo, Qatar Airways \\nSeguimi su Instagram @Surry\\n\\nCommerciale/Business : surrybusiness@gmail.com\\nLa musica che uso: http://bit.ly/1OYt5la\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Surry\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@surrealpower\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC3V8twsHOUBGvM_xsQ_4ZJg\",\"canonicalBaseUrl\":\"/@surrealpower\"}}}]},\"publishedTimeText\":{\"simpleText\":\"7 hours ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"15 minutes, 26 seconds\"}},\"simpleText\":\"15:26\"},\"viewCountText\":{\"simpleText\":\"57,906 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=uSahs8cU-Zo\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"uSahs8cU-Zo\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=b926a1b3c714f99a\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"Surry\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@surrealpower\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC3V8twsHOUBGvM_xsQ_4ZJg\",\"canonicalBaseUrl\":\"/@surrealpower\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Surry\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@surrealpower\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC3V8twsHOUBGvM_xsQ_4ZJg\",\"canonicalBaseUrl\":\"/@surrealpower\"}}}]},\"trackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANKQJrz07i8tqiTuQE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"57K views\"}},\"simpleText\":\"57K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJACEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CJACEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"uSahs8cU-Zo\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CJACEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"uSahs8cU-Zo\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"uSahs8cU-Zo\"]}}]}},\"trackingParams\":\"CJACEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CI8CENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"uSahs8cU-Zo\",\"onAddCommand\":{\"clickTrackingParams\":\"CI8CENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"uSahs8cU-Zo\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CI8CENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgt1U2FoczhjVS1abw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CI4CEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/ytc/APkrFKbRsSty8l_S2sJMaEPZgf8Z5rgcuLJgxPD7NAKflA=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@surrealpower\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC3V8twsHOUBGvM_xsQ_4ZJg\",\"canonicalBaseUrl\":\"/@surrealpower\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"15 minutes, 26 seconds\"}},\"simpleText\":\"15:26\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CI0CEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"uSahs8cU-Zo\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CI0CEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"uSahs8cU-Zo\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CI0CEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CIwCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CIwCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"uSahs8cU-Zo\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CIwCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"uSahs8cU-Zo\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"uSahs8cU-Zo\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CIwCEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/uSahs8cU-Zo/mqdefault_6s.webp?du=3000\\u0026sqp=CNbWk6sG\\u0026rs=AOn4CLBYXx5jGTpWN1cW1Xl6zW3LoZGrJw\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CIsCENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=uSahs8cU-Zo\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"uSahs8cU-Zo\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=b926a1b3c714f99a\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CIoCEJmNBRgBIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"IwQZqCRa2Sg\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/IwQZqCRa2Sg/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLDGwSe9_pHE1l5iU5_pGg_iIboA6A\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/IwQZqCRa2Sg/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLDnT1g9j650e15Pv56Cc_FXGoCp7w\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Ep.133 Napoli capitale con Gigi D'Alessio e Luchè - Muschio Selvaggio Podcast\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Ep.133 Napoli capitale con Gigi D'Alessio e Luchè - Muschio Selvaggio Podcast by muschio selvaggio 131,335 views 9 hours ago 1 hour, 22 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"MERCH UFFICIALE: https://muschioselvaggio.eu\\nInstagram: https://www.instagram.com/muschioselvaggio/?hl=it\\nSpotify: https://open.spotify.com/show/6jBWY6Mup7iEFSYvMiVw7b?si=y2UYfu2uQYKUyrp-sMjBrA...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"muschio selvaggio\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@muschioselvaggioo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCg7mcZKjupbLdsuiMBVTuDw\",\"canonicalBaseUrl\":\"/@muschioselvaggioo\"}}}]},\"publishedTimeText\":{\"simpleText\":\"9 hours ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 22 minutes, 42 seconds\"}},\"simpleText\":\"1:22:42\"},\"viewCountText\":{\"simpleText\":\"131,335 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=IwQZqCRa2Sg\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"IwQZqCRa2Sg\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=230419a8245ad928\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerText\":{\"runs\":[{\"text\":\"muschio selvaggio\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@muschioselvaggioo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCg7mcZKjupbLdsuiMBVTuDw\",\"canonicalBaseUrl\":\"/@muschioselvaggioo\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"muschio selvaggio\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@muschioselvaggioo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCg7mcZKjupbLdsuiMBVTuDw\",\"canonicalBaseUrl\":\"/@muschioselvaggioo\"}}}]},\"trackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANKQKiy66KCtYaCIw==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"131K views\"}},\"simpleText\":\"131K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIkCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CIkCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"IwQZqCRa2Sg\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CIkCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"IwQZqCRa2Sg\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"IwQZqCRa2Sg\"]}}]}},\"trackingParams\":\"CIkCEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CIgCENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"IwQZqCRa2Sg\",\"onAddCommand\":{\"clickTrackingParams\":\"CIgCENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"IwQZqCRa2Sg\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CIgCENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtJd1FacUNSYTJTZw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CIcCEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/ytc/APkrFKYdQhM-8tbJNXoLymYtd2o1VPcsg-W1PfhMfwWz=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@muschioselvaggioo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCg7mcZKjupbLdsuiMBVTuDw\",\"canonicalBaseUrl\":\"/@muschioselvaggioo\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 22 minutes, 42 seconds\"}},\"simpleText\":\"1:22:42\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CIYCEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"IwQZqCRa2Sg\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CIYCEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"IwQZqCRa2Sg\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CIYCEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CIUCEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CIUCEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"IwQZqCRa2Sg\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CIUCEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"IwQZqCRa2Sg\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"IwQZqCRa2Sg\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CIUCEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/IwQZqCRa2Sg/mqdefault_6s.webp?du=3000\\u0026sqp=CPi-k6sG\\u0026rs=AOn4CLDClHF36fgWSK4uJ271m2KL4w-S3w\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CIQCENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=IwQZqCRa2Sg\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"IwQZqCRa2Sg\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=230419a8245ad928\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CIMCEJmNBRgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"DlExcswH57w\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/DlExcswH57w/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCr4MvLe3yZMdbKdqW2TspiRo4Jug\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/DlExcswH57w/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBmcRh5EMP3G05gu2GXX26TqIdPcA\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"A VLAHOVIC risponde LAUTARO: Juve-Inter 1-1 | Serie A TIM | DAZN Highlights\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"A VLAHOVIC risponde LAUTARO: Juve-Inter 1-1 | Serie A TIM | DAZN Highlights by DAZN Italia 410,371 views 19 hours ago 3 minutes, 4 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Un gol e un punto a testa per Juve e Inter: a Dusan Vlahovic risponde Lautaro Martinez. Riviamo il film del Derby d'Italia numero 250 tra prima e seconda della classe! \\n\\n#JuveInter #SerieATIM...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"DAZN Italia\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@DAZNIT\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC7N8IuYFhU8Hs1ruCTsXTbg\",\"canonicalBaseUrl\":\"/@DAZNIT\"}}}]},\"publishedTimeText\":{\"simpleText\":\"19 hours ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 4 seconds\"}},\"simpleText\":\"3:04\"},\"viewCountText\":{\"simpleText\":\"410,371 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=DlExcswH57w\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"DlExcswH57w\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=0e513172cc07e7bc\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"DAZN Italia\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@DAZNIT\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC7N8IuYFhU8Hs1ruCTsXTbg\",\"canonicalBaseUrl\":\"/@DAZNIT\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"DAZN Italia\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@DAZNIT\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC7N8IuYFhU8Hs1ruCTsXTbg\",\"canonicalBaseUrl\":\"/@DAZNIT\"}}}]},\"trackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANKQLzPn-CsrsyoDg==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"410K views\"}},\"simpleText\":\"410K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CIICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"DlExcswH57w\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CIICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"DlExcswH57w\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"DlExcswH57w\"]}}]}},\"trackingParams\":\"CIICEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CIECENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"DlExcswH57w\",\"onAddCommand\":{\"clickTrackingParams\":\"CIECENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"DlExcswH57w\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CIECENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtEbEV4Y3N3SDU3dw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CIACEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/Hue8pzd6th38bXIVrQutFhN5xU8MJ3nLvPJYZNqb6MzNG19TdBH4fBQ1QopY5-dlbKIciljVPA=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@DAZNIT\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC7N8IuYFhU8Hs1ruCTsXTbg\",\"canonicalBaseUrl\":\"/@DAZNIT\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 4 seconds\"}},\"simpleText\":\"3:04\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CP8BEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"DlExcswH57w\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CP8BEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"DlExcswH57w\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CP8BEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CP4BEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CP4BEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"DlExcswH57w\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CP4BEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"DlExcswH57w\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"DlExcswH57w\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CP4BEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/DlExcswH57w/mqdefault_6s.webp?du=3000\\u0026sqp=CJDwk6sG\\u0026rs=AOn4CLDvP4juR_-O8BLovcNkOEThpdyZKQ\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CP0BENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=DlExcswH57w\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"DlExcswH57w\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=0e513172cc07e7bc\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CPwBEJmNBRgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"91jIKoOk1Ek\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/91jIKoOk1Ek/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCG3XbrFTyqRcPL7MHsM_n1F6gZBg\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/91jIKoOk1Ek/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLAcQvQmDjyQyCTOQElsEgqr15zz4A\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Butlers or riders? 🎩 - BAGNAIA as WORLD CHAMPION! 🏆\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Butlers or riders? 🎩 - BAGNAIA as WORLD CHAMPION! 🏆 by Luca Salvadori 171,071 views 1 day ago 15 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"PECCO IS NOW WORLD CHAMPION! This is the last Post-GP video of the season, with the title gained by an Italian rider with an Italian bike. We couldn't ask for more. \\nLet's move on to the sour...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Luca Salvadori\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Lucasalvadoriofficial\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC8ZvOSO_zMGF2yooeiUC8KQ\",\"canonicalBaseUrl\":\"/@Lucasalvadoriofficial\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"15 minutes, 39 seconds\"}},\"simpleText\":\"15:39\"},\"viewCountText\":{\"simpleText\":\"171,071 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=91jIKoOk1Ek\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"91jIKoOk1Ek\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=f758c82a83a4d449\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerText\":{\"runs\":[{\"text\":\"Luca Salvadori\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Lucasalvadoriofficial\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC8ZvOSO_zMGF2yooeiUC8KQ\",\"canonicalBaseUrl\":\"/@Lucasalvadoriofficial\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Luca Salvadori\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Lucasalvadoriofficial\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC8ZvOSO_zMGF2yooeiUC8KQ\",\"canonicalBaseUrl\":\"/@Lucasalvadoriofficial\"}}}]},\"trackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANKQMmok52ohbKs9wE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"171K views\"}},\"simpleText\":\"171K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CPsBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPsBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"91jIKoOk1Ek\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPsBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"91jIKoOk1Ek\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"91jIKoOk1Ek\"]}}]}},\"trackingParams\":\"CPsBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CPoBENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"91jIKoOk1Ek\",\"onAddCommand\":{\"clickTrackingParams\":\"CPoBENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"91jIKoOk1Ek\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CPoBENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgs5MWpJS29PazFFaw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CPkBEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/LZzeauFzx8PIitXNQu_YlYiVx6ixYe6u4xuKQjurBDaBvu-hqwttfry64OGGSeroU0zeEf6dpck=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Lucasalvadoriofficial\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC8ZvOSO_zMGF2yooeiUC8KQ\",\"canonicalBaseUrl\":\"/@Lucasalvadoriofficial\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"15 minutes, 39 seconds\"}},\"simpleText\":\"15:39\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPgBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"91jIKoOk1Ek\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CPgBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"91jIKoOk1Ek\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPgBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPcBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPcBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"91jIKoOk1Ek\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPcBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"91jIKoOk1Ek\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"91jIKoOk1Ek\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPcBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/91jIKoOk1Ek/mqdefault_6s.webp?du=3000\\u0026sqp=CJHik6sG\\u0026rs=AOn4CLD65_xs1VbJj6tbr_HYKQSMbSYCpw\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CPYBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=91jIKoOk1Ek\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"91jIKoOk1Ek\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=f758c82a83a4d449\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CPUBEJmNBRgEIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"bi5puz7S9bs\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/bi5puz7S9bs/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCWJHEcC2IT6dovwCMAr_mw1VFvFg\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/bi5puz7S9bs/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLAL7CI8Ac4fAY7HHEnkhNA4GvaPuA\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"NUOVO VOLANTE in CARBONIO con i LED per la mia AMG!\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"NUOVO VOLANTE in CARBONIO con i LED per la mia AMG! by Ivan Giussani 44,629 views 7 hours ago 9 minutes, 44 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Se ti piace risparmiare, ORA sai come fare! 👉🏼 https://letyshops.onelink.me/tO7s/ivanj\\n\\nCANALE OFFERTE AMAZON: https://t.me/ivangiussaniofferte\\n\\nEMAIL COLLABORAZIONI: ivangiussani@evox.gg...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Ivan Giussani\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@IvanGiussani\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCfQk9VNwWa8USHkD1z5coag\",\"canonicalBaseUrl\":\"/@IvanGiussani\"}}}]},\"publishedTimeText\":{\"simpleText\":\"7 hours ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"9 minutes, 44 seconds\"}},\"simpleText\":\"9:44\"},\"viewCountText\":{\"simpleText\":\"44,629 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=bi5puz7S9bs\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"bi5puz7S9bs\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=6e2e69bb3ed2f5bb\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"Ivan Giussani\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@IvanGiussani\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCfQk9VNwWa8USHkD1z5coag\",\"canonicalBaseUrl\":\"/@IvanGiussani\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Ivan Giussani\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@IvanGiussani\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCfQk9VNwWa8USHkD1z5coag\",\"canonicalBaseUrl\":\"/@IvanGiussani\"}}}]},\"trackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANKQLvry_azt5qXbg==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"44K views\"}},\"simpleText\":\"44K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CPQBEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPQBEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"bi5puz7S9bs\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPQBEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"bi5puz7S9bs\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"bi5puz7S9bs\"]}}]}},\"trackingParams\":\"CPQBEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CPMBENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"bi5puz7S9bs\",\"onAddCommand\":{\"clickTrackingParams\":\"CPMBENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"bi5puz7S9bs\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CPMBENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtiaTVwdXo3Uzlicw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CPIBEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/ytc/APkrFKaMAOrVJotvWrn7XY3uUS-EqgTmqYSQkO1yaz0v=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@IvanGiussani\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCfQk9VNwWa8USHkD1z5coag\",\"canonicalBaseUrl\":\"/@IvanGiussani\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"9 minutes, 44 seconds\"}},\"simpleText\":\"9:44\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPEBEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"bi5puz7S9bs\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CPEBEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"bi5puz7S9bs\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPEBEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPABEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPABEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"bi5puz7S9bs\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPABEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"bi5puz7S9bs\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"bi5puz7S9bs\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPABEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/bi5puz7S9bs/mqdefault_6s.webp?du=3000\\u0026sqp=CI_ck6sG\\u0026rs=AOn4CLDX5wxJM4GwniF5LJeT6tIL5V-brw\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CO8BENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=bi5puz7S9bs\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"bi5puz7S9bs\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=6e2e69bb3ed2f5bb\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CO4BEJmNBRgFIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"9Vtqx6RCrAs\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/9Vtqx6RCrAs/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLAjyIQ_NwF_Zy-ucz-m8fjPpvJ9NA\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/9Vtqx6RCrAs/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCG5jqQg--Zk9n90ap7NTw0Q6uSRQ\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"JUVENTUS-INTER 1-1 | HIGHLIGHTS | 13ª GIORNATA | SERIE A TIM 2023/24\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"JUVENTUS-INTER 1-1 | HIGHLIGHTS | 13ª GIORNATA | SERIE A TIM 2023/24 by Serie A 527,586 views 19 hours ago 3 minutes, 21 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"In una delle sfide più attese di tutta la stagione, la Juventus manca il sorpasso sull’Inter nonostante il vantaggio siglato da Vlahovic, annullato pochi minuti dopo dal pareggio del solito...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Serie A\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@seriea\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCBJeMCIeLQos7wacox4hmLQ\",\"canonicalBaseUrl\":\"/@seriea\"}}}]},\"publishedTimeText\":{\"simpleText\":\"19 hours ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 21 seconds\"}},\"simpleText\":\"3:21\"},\"viewCountText\":{\"simpleText\":\"527,586 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=9Vtqx6RCrAs\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"9Vtqx6RCrAs\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=f55b6ac7a442ac0b\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"Serie A\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@seriea\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCBJeMCIeLQos7wacox4hmLQ\",\"canonicalBaseUrl\":\"/@seriea\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Serie A\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@seriea\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCBJeMCIeLQos7wacox4hmLQ\",\"canonicalBaseUrl\":\"/@seriea\"}}}]},\"trackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANKQIvYiqL62Nqt9QE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"527K views\"}},\"simpleText\":\"527K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CO0BEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CO0BEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"9Vtqx6RCrAs\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CO0BEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"9Vtqx6RCrAs\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"9Vtqx6RCrAs\"]}}]}},\"trackingParams\":\"CO0BEP6YBBgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"COwBENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"9Vtqx6RCrAs\",\"onAddCommand\":{\"clickTrackingParams\":\"COwBENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"9Vtqx6RCrAs\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"COwBENGqBRgLIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgs5VnRxeDZSQ3JBcw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"COsBEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/2bMmxx14op_NNRylFwN9dI4mDEWa6O6whg_e-KbDeQwpNvP9uzpp4WjJcJtryP8dos9l0Kcsnw=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@seriea\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCBJeMCIeLQos7wacox4hmLQ\",\"canonicalBaseUrl\":\"/@seriea\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 21 seconds\"}},\"simpleText\":\"3:21\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COoBEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"9Vtqx6RCrAs\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"COoBEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"9Vtqx6RCrAs\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COoBEPnnAxgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COkBEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"COkBEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"9Vtqx6RCrAs\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"COkBEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"9Vtqx6RCrAs\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"9Vtqx6RCrAs\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COkBEMfsBBgDIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/9Vtqx6RCrAs/mqdefault_6s.webp?du=3000\\u0026sqp=CKrtk6sG\\u0026rs=AOn4CLDjn_zfOET7b1ucMtJMVMJkyFgSEw\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"COgBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=9Vtqx6RCrAs\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"9Vtqx6RCrAs\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=f55b6ac7a442ac0b\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"COcBEJmNBRgGIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"d9lfErxdTeY\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/d9lfErxdTeY/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLAPPIZaTcaWDSLo0nhHt9U0y6-3NA\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/d9lfErxdTeY/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBFY5BJX0TnoNGzhkH97C2gpTPkrg\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"MotoGP, GP Valencia: gli highlights della gara\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"MotoGP, GP Valencia: gli highlights della gara by Sky Sport MotoGP 177,461 views 1 day ago 3 minutes, 8 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Rivivi la gara he ha consegnato a Pecco Bagnaia il titolo Mondiale 2023\\n\\nIPA/Fotogramma\\n\\nSkyTv + Netflix per te a 14,90 € per 18 mesi\\n➡️ http://tiny.cc/youtubenet\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Sky Sport MotoGP\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@skysportmotogp\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCGlmF5tM5DeT5Dl1BQVItYg\",\"canonicalBaseUrl\":\"/@skysportmotogp\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 8 seconds\"}},\"simpleText\":\"3:08\"},\"viewCountText\":{\"simpleText\":\"177,461 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=d9lfErxdTeY\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"d9lfErxdTeY\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=77d95f12bc5d4de6\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerText\":{\"runs\":[{\"text\":\"Sky Sport MotoGP\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@skysportmotogp\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCGlmF5tM5DeT5Dl1BQVItYg\",\"canonicalBaseUrl\":\"/@skysportmotogp\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Sky Sport MotoGP\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@skysportmotogp\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCGlmF5tM5DeT5Dl1BQVItYg\",\"canonicalBaseUrl\":\"/@skysportmotogp\"}}}]},\"trackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANKQOab9eKr4tfsdw==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"177K views\"}},\"simpleText\":\"177K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"COYBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"COYBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"d9lfErxdTeY\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"COYBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"d9lfErxdTeY\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"d9lfErxdTeY\"]}}]}},\"trackingParams\":\"COYBEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"COUBENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"d9lfErxdTeY\",\"onAddCommand\":{\"clickTrackingParams\":\"COUBENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"d9lfErxdTeY\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"COUBENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtkOWxmRXJ4ZFRlWQ%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"COQBEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/-yo42lDr69-tBgLEDoEYW9rGtvZ_ulnKrOKWHI0hgUgoRPSFedR0JyPN-vGvm7BJivw40cT1iA=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@skysportmotogp\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCGlmF5tM5DeT5Dl1BQVItYg\",\"canonicalBaseUrl\":\"/@skysportmotogp\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 8 seconds\"}},\"simpleText\":\"3:08\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COMBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"d9lfErxdTeY\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"COMBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"d9lfErxdTeY\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COMBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COIBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"COIBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"d9lfErxdTeY\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"COIBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"d9lfErxdTeY\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"d9lfErxdTeY\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COIBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/d9lfErxdTeY/mqdefault_6s.webp?du=3000\\u0026sqp=CMDQk6sG\\u0026rs=AOn4CLBqL38fvfhDoo2eG86YpXW8vzuB0A\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"COEBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=d9lfErxdTeY\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"d9lfErxdTeY\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm2d.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=77d95f12bc5d4de6\\u0026ip=[scrubbed]\\u0026initcwndbps=451250\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"COABEJmNBRgHIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"VrUrNEzdoCw\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/VrUrNEzdoCw/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLALHPkA4a_QM7xpMVZy_5dMG9oKZw\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/VrUrNEzdoCw/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCtbIF0zzXXG9o7bMnzk4Gn9-nT_Q\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Tony Effe e Dylan parlano di serate folli, DPG, reunion, primi concerti, nuovi album | TakeAway ep 3\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Tony Effe e Dylan parlano di serate folli, DPG, reunion, primi concerti, nuovi album | TakeAway ep 3 by esse Magazine 189,626 views 1 day ago 1 hour, 54 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"► Iscriviti al canale YouTube ESSE: http://bit.ly/iscrivitiYTesse\\n\\nEsse e Propaganda Agency presentano Take Away.\\n\\nEnsi e Rasty Kilo ospitano amici nel loro salotto e gli offrono da bere...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"esse Magazine\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@essemagazine\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC0TFalPRyuOWuOgVgm0Lg9Q\",\"canonicalBaseUrl\":\"/@essemagazine\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 54 minutes, 22 seconds\"}},\"simpleText\":\"1:54:22\"},\"viewCountText\":{\"simpleText\":\"189,626 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=VrUrNEzdoCw\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"VrUrNEzdoCw\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=56b52b344cdda02c\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerText\":{\"runs\":[{\"text\":\"esse Magazine\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@essemagazine\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC0TFalPRyuOWuOgVgm0Lg9Q\",\"canonicalBaseUrl\":\"/@essemagazine\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"esse Magazine\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@essemagazine\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC0TFalPRyuOWuOgVgm0Lg9Q\",\"canonicalBaseUrl\":\"/@essemagazine\"}}}]},\"trackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANKQKzA9ubE5sraVg==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"189K views\"}},\"simpleText\":\"189K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CN8BEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CN8BEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"VrUrNEzdoCw\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CN8BEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"VrUrNEzdoCw\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"VrUrNEzdoCw\"]}}]}},\"trackingParams\":\"CN8BEP6YBBgJIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CN4BENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"offlineVideoEndpoint\":{\"videoId\":\"VrUrNEzdoCw\",\"onAddCommand\":{\"clickTrackingParams\":\"CN4BENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\",\"getDownloadActionCommand\":{\"videoId\":\"VrUrNEzdoCw\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CN4BENGqBRgKIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtWclVyTkV6ZG9Ddw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CN0BEI5iIhMIqNWEhoHlggMV3tBCBR36qANK\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"hasSeparator\":true}}],\"trackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/OwGOy-zgMgnt15Dybkmlv8gPEmBVyQuciPRNXsasfnI4KFb8MLj8xlpgl4cmmUX4SGZk8tg7IJU=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@essemagazine\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UC0TFalPRyuOWuOgVgm0Lg9Q\",\"canonicalBaseUrl\":\"/@essemagazine\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 54 minutes, 22 seconds\"}},\"simpleText\":\"1:54:22\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CNwBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"VrUrNEzdoCw\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CNwBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"VrUrNEzdoCw\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CNwBEPnnAxgBIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CNsBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CNsBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"VrUrNEzdoCw\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CNsBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"VrUrNEzdoCw\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"VrUrNEzdoCw\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CNsBEMfsBBgCIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/VrUrNEzdoCw/mqdefault_6s.webp?du=3000\\u0026sqp=CKjVk6sG\\u0026rs=AOn4CLCEx95WcJTG5cxjQ8Crp3pKnBkCTA\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CNoBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=VrUrNEzdoCw\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"VrUrNEzdoCw\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=56b52b344cdda02c\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CNkBEJmNBRgIIhMIqNWEhoHlggMV3tBCBR36qANK\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"JDpwssZNJyA\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/JDpwssZNJyA/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLB3pUuwuAdXOq6rjEaStQWyAMUJxA\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/JDpwssZNJyA/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCtyZaBiTFAwUuiC0a2ei1UcpbT3Q\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"ATALANTA-NAPOLI 1-2 | HIGHLIGHTS | 13ª GIORNATA | SERIE A TIM 2023/24\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"ATALANTA-NAPOLI 1-2 | HIGHLIGHTS | 13ª GIORNATA | SERIE A TIM 2023/24 by Serie A 569,300 views 1 day ago 3 minutes, 24 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Inizia con una vittoria la seconda avventura di Mazzarri sulla panchina del Napoli; una sfida combattuta al Gewiss Stadium vede trionfare i campioni in carica grazie alle reti di Kvaratskhelia...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Serie A\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNMBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@seriea\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCBJeMCIeLQos7wacox4hmLQ\",\"canonicalBaseUrl\":\"/@seriea\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 24 seconds\"}},\"simpleText\":\"3:24\"},\"viewCountText\":{\"simpleText\":\"569,300 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CNMBENwwIhMIqNWEhoHlggMV3tBCBR36qANKMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=JDpwssZNJyA\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"JDpwssZNJyA\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-hm26.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=243a70b2c64d2720\\u0026ip=[scrubbed]\\u0026initcwndbps=412500\\u0026mt=1701116233\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CNMBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"Serie A\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNMBENwwIhMIqNWEhoHlggMV3tBCBR36qANK\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@seriea\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"brow", + "body_is_truncated": true, + "code": 200, + "headers_list": [ + [ + "Accept-Ch", + "Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version" + ], + [ + "Accept-Ranges", + "none" + ], + [ + "Alt-Svc", + "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" + ], + [ + "Cache-Control", + "no-cache, no-store, max-age=0, must-revalidate" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Cross-Origin-Opener-Policy", + "same-origin-allow-popups; report-to=\"youtube_main\"" + ], + [ + "Date", + "Mon, 27 Nov 2023 20:22:47 GMT" + ], + [ + "Expires", + "Mon, 01 Jan 1990 00:00:00 GMT" + ], + [ + "Origin-Trial", + "AvC9UlR6RDk2crliDsFl66RWLnTbHrDbp+DiY6AYz/PNQ4G4tdUTjrHYr2sghbkhGQAVxb7jaPTHpEVBz0uzQwkAAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTcxOTUzMjc5OSwiaXNTdWJkb21haW4iOnRydWV9" + ], + [ + "P3p", + "CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\"" + ], + [ + "Permissions-Policy", + "ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factor=*, ch-ua-platform=*, ch-ua-platform-version=*" + ], + [ + "Pragma", + "no-cache" + ], + [ + "Report-To", + "{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}" + ], + [ + "Server", + "ESF" + ], + [ + "Set-Cookie", + "YSC=z-R8Y5RL_to; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none" + ], + [ + "Set-Cookie", + "__Secure-YEC=CgtqeGt1dTBHVERuVSiX9ZOrBjIICgJJVBICEgA%3D; Domain=.youtube.com; Expires=Thu, 26-Dec-2024 20:22:46 GMT; Path=/; Secure; HttpOnly; SameSite=lax" + ], + [ + "Set-Cookie", + "VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; Domain=.youtube.com; Expires=Thu, 26-Dec-2024 20:22:47 GMT; Path=/; Secure; HttpOnly; SameSite=lax" + ], + [ + "Set-Cookie", + "VISITOR_INFO1_LIVE=; Domain=.youtube.com; Expires=Tue, 02-Mar-2021 20:22:47 GMT; Path=/; Secure; HttpOnly; SameSite=none" + ], + [ + "Set-Cookie", + "CONSENT=PENDING+506; expires=Wed, 26-Nov-2025 20:22:47 GMT; path=/; domain=.youtube.com; Secure" + ], + [ + "Strict-Transport-Security", + "max-age=31536000" + ], + [ + "Vary", + "Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version,Accept-Encoding" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Frame-Options", + "SAMEORIGIN" + ], + [ + "X-Xss-Protection", + "0" + ] + ], + "headers": { + "Accept-Ch": "Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version", + "Accept-Ranges": "none", + "Alt-Svc": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", + "Cache-Control": "no-cache, no-store, max-age=0, must-revalidate", + "Content-Type": "text/html; charset=utf-8", + "Cross-Origin-Opener-Policy": "same-origin-allow-popups; report-to=\"youtube_main\"", + "Date": "Mon, 27 Nov 2023 20:22:47 GMT", + "Expires": "Mon, 01 Jan 1990 00:00:00 GMT", + "Origin-Trial": "AvC9UlR6RDk2crliDsFl66RWLnTbHrDbp+DiY6AYz/PNQ4G4tdUTjrHYr2sghbkhGQAVxb7jaPTHpEVBz0uzQwkAAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTcxOTUzMjc5OSwiaXNTdWJkb21haW4iOnRydWV9", + "P3p": "CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\"", + "Permissions-Policy": "ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factor=*, ch-ua-platform=*, ch-ua-platform-version=*", + "Pragma": "no-cache", + "Report-To": "{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}", + "Server": "ESF", + "Set-Cookie": "YSC=z-R8Y5RL_to; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none", + "Strict-Transport-Security": "max-age=31536000", + "Vary": "Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "X-Xss-Protection": "0" + } + }, + "t0": 0.639186, + "t": 1.745276, + "tags": [], + "transaction_id": 8 + } + ], + "tcp_connect": [ + { + "ip": "2a00:1450:4002:410::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 0.538446, + "t": 0.538927, + "tags": [], + "transaction_id": 7 + }, + { + "ip": "2a00:1450:4002:403::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 0.538836, + "t": 0.53896, + "tags": [], + "transaction_id": 17 + }, + { + "ip": "2a00:1450:4002:402::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 0.538631, + "t": 0.539225, + "tags": [], + "transaction_id": 10 + }, + { + "ip": "2a00:1450:4002:414::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 0.539246, + "t": 0.539534, + "tags": [], + "transaction_id": 15 + }, + { + "ip": "2a00:1450:4002:411::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 0.53942, + "t": 0.539572, + "tags": [], + "transaction_id": 12 + }, + { + "ip": "2a00:1450:4002:809::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 0.53967, + "t": 0.539771, + "tags": [], + "transaction_id": 11 + }, + { + "ip": "2a00:1450:4002:416::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 0.539637, + "t": 0.539912, + "tags": [], + "transaction_id": 16 + }, + { + "ip": "216.58.205.46", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.538251, + "t": 0.573331, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "142.251.209.14", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.538102, + "t": 0.573367, + "tags": [], + "transaction_id": 8 + }, + { + "ip": "142.250.180.174", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.538485, + "t": 0.573454, + "tags": [], + "transaction_id": 9 + }, + { + "ip": "142.251.209.46", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.539868, + "t": 0.582629, + "tags": [], + "transaction_id": 13 + }, + { + "ip": "142.250.180.142", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.539604, + "t": 0.582725, + "tags": [], + "transaction_id": 5 + }, + { + "ip": "216.58.209.46", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.538705, + "t": 0.582752, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "216.58.204.142", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.53896, + "t": 0.582803, + "tags": [], + "transaction_id": 14 + }, + { + "ip": "2a00:1450:4009:816::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 1.759574, + "t": 1.760286, + "tags": [], + "transaction_id": 34 + }, + { + "ip": "2a00:1450:4009:80b::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 1.760202, + "t": 1.760635, + "tags": [], + "transaction_id": 24 + }, + { + "ip": "2a00:1450:4009:826::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 1.7606389999999998, + "t": 1.760756, + "tags": [], + "transaction_id": 33 + }, + { + "ip": "2a00:1450:4009:827::200e", + "port": 443, + "status": { + "failure": "host_unreachable", + "success": false + }, + "t0": 1.761287, + "t": 1.7614, + "tags": [], + "transaction_id": 18 + }, + { + "ip": "172.217.169.14", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.7597589999999999, + "t": 1.818504, + "tags": [], + "transaction_id": 31 + }, + { + "ip": "172.217.169.46", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.7596319999999999, + "t": 1.819921, + "tags": [], + "transaction_id": 19 + }, + { + "ip": "142.250.179.238", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.76044, + "t": 1.8199589999999999, + "tags": [], + "transaction_id": 29 + }, + { + "ip": "216.58.204.78", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.759591, + "t": 1.820001, + "tags": [], + "transaction_id": 26 + }, + { + "ip": "216.58.201.110", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.760664, + "t": 1.820226, + "tags": [], + "transaction_id": 30 + }, + { + "ip": "142.250.187.206", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.760689, + "t": 1.820357, + "tags": [], + "transaction_id": 21 + }, + { + "ip": "142.250.180.14", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.760469, + "t": 1.820399, + "tags": [], + "transaction_id": 20 + }, + { + "ip": "142.250.178.14", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.760106, + "t": 1.820472, + "tags": [], + "transaction_id": 27 + }, + { + "ip": "172.217.16.238", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.760151, + "t": 1.820662, + "tags": [], + "transaction_id": 23 + }, + { + "ip": "216.58.212.206", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.76041, + "t": 1.82171, + "tags": [], + "transaction_id": 32 + }, + { + "ip": "142.250.187.238", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.7607650000000001, + "t": 1.821741, + "tags": [], + "transaction_id": 22 + }, + { + "ip": "142.250.200.14", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.761088, + "t": 1.821783, + "tags": [], + "transaction_id": 25 + }, + { + "ip": "142.250.200.46", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 1.761231, + "t": 1.821853, + "tags": [], + "transaction_id": 28 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "142.251.209.14:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 0.573393, + "t": 0.63912, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 8 + }, + { + "network": "tcp", + "address": "142.251.209.46:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 0.582721, + "t": 0.646048, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 13 + }, + { + "network": "tcp", + "address": "216.58.205.46:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 0.573384, + "t": 0.646056, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + }, + { + "network": "tcp", + "address": "142.250.180.174:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 0.573476, + "t": 0.646587, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 9 + }, + { + "network": "tcp", + "address": "142.250.180.142:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 0.582752, + "t": 0.649341, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 5 + }, + { + "network": "tcp", + "address": "216.58.209.46:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 0.582776, + "t": 0.649919, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "216.58.204.142:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 0.582827, + "t": 0.655307, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 14 + }, + { + "network": "tcp", + "address": "172.217.169.14:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.818623, + "t": 1.894828, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 31 + }, + { + "network": "tcp", + "address": "142.250.179.238:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.819994, + "t": 1.904072, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 29 + }, + { + "network": "tcp", + "address": "172.217.16.238:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.820687, + "t": 1.904335, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 23 + }, + { + "network": "tcp", + "address": "142.250.200.14:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.821834, + "t": 1.907241, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 25 + }, + { + "network": "tcp", + "address": "216.58.204.78:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.820044, + "t": 1.915135, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 26 + }, + { + "network": "tcp", + "address": "172.217.169.46:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.819956, + "t": 1.920573, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 19 + }, + { + "network": "tcp", + "address": "142.250.180.14:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.8204259999999999, + "t": 1.921529, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 20 + }, + { + "network": "tcp", + "address": "142.250.187.206:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.82038, + "t": 1.921543, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 21 + }, + { + "network": "tcp", + "address": "216.58.212.206:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.821733, + "t": 1.92229, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 32 + }, + { + "network": "tcp", + "address": "142.250.200.46:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.8218779999999999, + "t": 1.922323, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 28 + }, + { + "network": "tcp", + "address": "142.250.178.14:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.820495, + "t": 1.9229340000000001, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 27 + }, + { + "network": "tcp", + "address": "216.58.201.110:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.820265, + "t": 1.9235449999999998, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 30 + }, + { + "network": "tcp", + "address": "142.250.187.238:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "www.youtube.com", + "t0": 1.82177, + "t": 1.9237039999999999, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 22 + } + ], + "x_control_request": { + "http_request": "https://www.youtube.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "216.58.205.46:443", + "216.58.205.46:80", + "142.250.180.142:443", + "142.250.180.142:80", + "216.58.209.46:443", + "216.58.209.46:80", + "[2a00:1450:4002:410::200e]:443", + "[2a00:1450:4002:410::200e]:80", + "142.251.209.14:443", + "142.251.209.14:80", + "142.250.180.174:443", + "142.250.180.174:80", + "[2a00:1450:4002:402::200e]:443", + "[2a00:1450:4002:402::200e]:80", + "[2a00:1450:4002:809::200e]:443", + "[2a00:1450:4002:809::200e]:80", + "[2a00:1450:4002:411::200e]:443", + "[2a00:1450:4002:411::200e]:80", + "142.251.209.46:443", + "142.251.209.46:80", + "216.58.204.142:443", + "216.58.204.142:80", + "[2a00:1450:4002:414::200e]:443", + "[2a00:1450:4002:414::200e]:80", + "[2a00:1450:4002:416::200e]:443", + "[2a00:1450:4002:416::200e]:80", + "[2a00:1450:4002:403::200e]:443", + "[2a00:1450:4002:403::200e]:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "142.250.178.14:443": { + "status": true, + "failure": null + }, + "142.250.179.238:443": { + "status": true, + "failure": null + }, + "142.250.180.142:443": { + "status": true, + "failure": null + }, + "142.250.180.14:443": { + "status": true, + "failure": null + }, + "142.250.180.174:443": { + "status": true, + "failure": null + }, + "142.250.187.206:443": { + "status": true, + "failure": null + }, + "142.250.187.238:443": { + "status": true, + "failure": null + }, + "142.250.200.14:443": { + "status": true, + "failure": null + }, + "142.250.200.46:443": { + "status": true, + "failure": null + }, + "142.251.209.14:443": { + "status": true, + "failure": null + }, + "142.251.209.46:443": { + "status": true, + "failure": null + }, + "172.217.16.238:443": { + "status": true, + "failure": null + }, + "172.217.169.14:443": { + "status": true, + "failure": null + }, + "172.217.169.46:443": { + "status": true, + "failure": null + }, + "216.58.201.110:443": { + "status": true, + "failure": null + }, + "216.58.204.142:443": { + "status": true, + "failure": null + }, + "216.58.204.78:443": { + "status": true, + "failure": null + }, + "216.58.205.46:443": { + "status": true, + "failure": null + }, + "216.58.209.46:443": { + "status": true, + "failure": null + }, + "216.58.212.206:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4002:402::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4002:403::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4002:410::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4002:411::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4002:414::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4002:416::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4002:809::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4009:80b::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4009:816::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4009:826::200e]:443": { + "status": true, + "failure": null + }, + "[2a00:1450:4009:827::200e]:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "142.250.178.14:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.179.238:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.180.142:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.180.14:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.180.174:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.187.206:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.187.238:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.200.14:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.250.200.46:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.251.209.14:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "142.251.209.46:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "172.217.16.238:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "172.217.169.14:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "172.217.169.46:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "216.58.201.110:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "216.58.204.142:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "216.58.204.78:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "216.58.205.46:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "216.58.209.46:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "216.58.212.206:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4002:402::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4002:403::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4002:410::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4002:411::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4002:414::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4002:416::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4002:809::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4009:80b::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4009:816::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4009:826::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + }, + "[2a00:1450:4009:827::200e]:443": { + "server_name": "www.youtube.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 850205, + "discovered_h3_endpoint": "www.youtube.com:443", + "failure": null, + "title": "YouTube", + "headers": { + "Accept-Ch": "Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version", + "Accept-Ranges": "none", + "Alt-Svc": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", + "Cache-Control": "no-cache, no-store, max-age=0, must-revalidate", + "Content-Type": "text/html; charset=utf-8", + "Cross-Origin-Opener-Policy": "same-origin-allow-popups; report-to=\"youtube_main\"", + "Date": "Mon, 27 Nov 2023 20:22:48 GMT", + "Expires": "Mon, 01 Jan 1990 00:00:00 GMT", + "Origin-Trial": "AvC9UlR6RDk2crliDsFl66RWLnTbHrDbp+DiY6AYz/PNQ4G4tdUTjrHYr2sghbkhGQAVxb7jaPTHpEVBz0uzQwkAAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTcxOTUzMjc5OSwiaXNTdWJkb21haW4iOnRydWV9", + "P3p": "CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\"", + "Permissions-Policy": "ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factor=*, ch-ua-platform=*, ch-ua-platform-version=*", + "Pragma": "no-cache", + "Report-To": "{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}", + "Server": "ESF", + "Set-Cookie": "YSC=osOppQMtM_4; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none", + "Strict-Transport-Security": "max-age=31536000", + "Vary": "Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "SAMEORIGIN", + "X-Xss-Protection": "0" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "142.250.187.238", + "142.250.178.14", + "172.217.16.238", + "142.250.200.14", + "142.250.200.46", + "216.58.201.110", + "216.58.204.78", + "172.217.169.14", + "216.58.212.206", + "172.217.169.46", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:80b::200e" + ] + }, + "ip_info": { + "142.250.178.14": { + "asn": 15169, + "flags": 10 + }, + "142.250.179.238": { + "asn": 15169, + "flags": 10 + }, + "142.250.180.14": { + "asn": 15169, + "flags": 10 + }, + "142.250.180.142": { + "asn": 15169, + "flags": 9 + }, + "142.250.180.174": { + "asn": 15169, + "flags": 9 + }, + "142.250.187.206": { + "asn": 15169, + "flags": 10 + }, + "142.250.187.238": { + "asn": 15169, + "flags": 10 + }, + "142.250.200.14": { + "asn": 15169, + "flags": 10 + }, + "142.250.200.46": { + "asn": 15169, + "flags": 10 + }, + "142.251.209.14": { + "asn": 15169, + "flags": 9 + }, + "142.251.209.46": { + "asn": 15169, + "flags": 9 + }, + "172.217.16.238": { + "asn": 15169, + "flags": 10 + }, + "172.217.169.14": { + "asn": 15169, + "flags": 10 + }, + "172.217.169.46": { + "asn": 15169, + "flags": 10 + }, + "216.58.201.110": { + "asn": 15169, + "flags": 10 + }, + "216.58.204.142": { + "asn": 15169, + "flags": 9 + }, + "216.58.204.78": { + "asn": 15169, + "flags": 10 + }, + "216.58.205.46": { + "asn": 15169, + "flags": 9 + }, + "216.58.209.46": { + "asn": 15169, + "flags": 9 + }, + "216.58.212.206": { + "asn": 15169, + "flags": 10 + }, + "2a00:1450:4002:402::200e": { + "asn": 15169, + "flags": 9 + }, + "2a00:1450:4002:403::200e": { + "asn": 15169, + "flags": 9 + }, + "2a00:1450:4002:410::200e": { + "asn": 15169, + "flags": 9 + }, + "2a00:1450:4002:411::200e": { + "asn": 15169, + "flags": 9 + }, + "2a00:1450:4002:414::200e": { + "asn": 15169, + "flags": 9 + }, + "2a00:1450:4002:416::200e": { + "asn": 15169, + "flags": 9 + }, + "2a00:1450:4002:809::200e": { + "asn": 15169, + "flags": 9 + }, + "2a00:1450:4009:80b::200e": { + "asn": 15169, + "flags": 10 + }, + "2a00:1450:4009:816::200e": { + "asn": 15169, + "flags": 10 + }, + "2a00:1450:4009:826::200e": { + "asn": 15169, + "flags": 10 + }, + "2a00:1450:4009:827::200e": { + "asn": 15169, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:216.58.205.46 Flags:7} {Addr:142.250.180.142 Flags:7} {Addr:216.58.209.46 Flags:2} {Addr:2a00:1450:4002:410::200e Flags:6} {Addr:142.251.209.14 Flags:7} {Addr:142.250.180.174 Flags:7} {Addr:2a00:1450:4002:402::200e Flags:3} {Addr:2a00:1450:4002:809::200e Flags:4} {Addr:2a00:1450:4002:411::200e Flags:5} {Addr:142.251.209.46 Flags:7} {Addr:216.58.204.142 Flags:7} {Addr:2a00:1450:4002:414::200e Flags:1} {Addr:2a00:1450:4002:416::200e Flags:3} {Addr:2a00:1450:4002:403::200e Flags:6}]", + "t": 0.537839 + }, + { + "msg": "conn 142.251.209.14:443: granted permission: true", + "t": 0.639153 + }, + { + "msg": "conn 216.58.205.46:443: denied permission: timed out sending", + "t": 0.656794 + }, + { + "msg": "conn 142.251.209.46:443: denied permission: timed out sending", + "t": 0.656821 + }, + { + "msg": "conn 142.250.180.174:443: denied permission: timed out sending", + "t": 0.65686 + }, + { + "msg": "conn 142.250.180.142:443: denied permission: timed out sending", + "t": 0.659439 + }, + { + "msg": "conn 216.58.209.46:443: denied permission: timed out sending", + "t": 0.66002 + }, + { + "msg": "conn 216.58.204.142:443: denied permission: timed out sending", + "t": 0.666009 + }, + { + "msg": "conn 172.217.169.14:443: denied permission: timed out sending", + "t": 1.9049909999999999 + }, + { + "msg": "conn 172.217.16.238:443: denied permission: timed out sending", + "t": 1.915165 + }, + { + "msg": "conn 142.250.179.238:443: denied permission: timed out sending", + "t": 1.915178 + }, + { + "msg": "conn 142.250.200.14:443: denied permission: timed out sending", + "t": 1.9188969999999999 + }, + { + "msg": "conn 216.58.204.78:443: denied permission: timed out sending", + "t": 1.925331 + }, + { + "msg": "conn 172.217.169.46:443: denied permission: timed out sending", + "t": 1.9312420000000001 + }, + { + "msg": "conn 142.250.187.206:443: denied permission: timed out sending", + "t": 1.9316149999999999 + }, + { + "msg": "conn 142.250.180.14:443: denied permission: timed out sending", + "t": 1.9316499999999999 + }, + { + "msg": "conn 142.250.200.46:443: denied permission: timed out sending", + "t": 1.9323860000000002 + }, + { + "msg": "conn 216.58.212.206:443: denied permission: timed out sending", + "t": 1.932418 + }, + { + "msg": "conn 142.250.178.14:443: denied permission: timed out sending", + "t": 1.9330180000000001 + }, + { + "msg": "conn 216.58.201.110:443: denied permission: timed out sending", + "t": 1.933651 + }, + { + "msg": "conn 142.250.187.238:443: denied permission: timed out sending", + "t": 1.93372 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 34, + "x_null_null_flags": 0, + "body_length_match": false, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "tcp_ip", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 1.938102417, + "test_start_time": "2023-11-27 20:22:47", + "test_version": "0.5.26" +} diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json new file mode 100644 index 0000000000..eeccd578d6 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json @@ -0,0 +1,3035 @@ +{ + "DNSLookupFailures": {}, + "DNSLookupSuccesses": [ + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": "2a00:1450:4002:410::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "216.58.209.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": "2a00:1450:4002:410::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": "2a00:1450:4002:809::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ], + "KnownTCPEndpoints": { + "10": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 10, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:402::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "11": { + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4002:809::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 11, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:809::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "12": { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 12, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:411::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "13": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 13, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "14": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 14, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.204.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "15": { + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 15, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:414::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "16": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 16, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:416::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "17": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 17, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:403::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "18": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4009:827::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 18, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:827::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "19": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "172.217.169.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 19, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.217.169.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "20": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.180.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 20, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "21": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.187.206", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 21, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.187.206:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "22": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.187.238", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 22, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.187.238:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "23": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "172.217.16.238", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 23, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.217.16.238:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "24": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4009:80b::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 24, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:80b::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "25": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.200.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 25, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.200.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "26": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "216.58.204.78", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 26, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.204.78:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "27": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.178.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 27, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.178.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "28": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.200.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 28, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.200.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "29": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.179.238", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 29, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.179.238:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "30": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "216.58.201.110", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 30, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.201.110:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "31": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "172.217.169.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 31, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.217.169.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "32": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "216.58.212.206", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 32, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.212.206:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "33": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4009:826::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 33, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:826::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "34": { + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4009:816::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 34, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:816::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "4": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.205.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "5": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "6": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "216.58.209.46", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "7": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "2a00:1450:4002:410::200e", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:410::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "8": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": "https://www.youtube.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 524264, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "YouTube", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + "9": { + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 9, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.174:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + } + } +} diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json new file mode 100644 index 0000000000..3b80e9b195 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json @@ -0,0 +1,27 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 0.6327409384828159, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "accept-ch": true, + "alt-svc": true, + "cross-origin-opener-policy": true, + "origin-trial": true, + "permissions-policy": true, + "report-to": true + }, + "HTTPFinalResponses": { + "8": true + }, + "HTTPFinalResponsesWithTLS": { + "8": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json new file mode 100644 index 0000000000..77d74c3691 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json @@ -0,0 +1,4630 @@ +{ + "annotations": { + "architecture": "arm64", + "engine_name": "ooniprobe-engine", + "engine_version": "3.20.0-alpha", + "go_version": "go1.20.11", + "platform": "macos", + "vcs_modified": "true", + "vcs_revision": "1eaaac071af3411a63e55edcf4269d41c5c77d63", + "vcs_time": "2023-11-27T16:55:20Z", + "vcs_tool": "git" + }, + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.youtube.com/", + "measurement_start_time": "2023-11-27 17:00:19", + "probe_asn": "AS30722", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Vodafone Italia S.p.A.", + "report_id": "20231127T170019Z_webconnectivity_IT_30722_n1_jxD6XdPOm17Pnhif", + "resolver_asn": "AS30722", + "resolver_ip": "91.80.36.88", + "resolver_network_name": "Vodafone Italia S.p.A.", + "software_name": "miniooni", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://1.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "142.250.180.142:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.110712, + "t": 0.129648, + "transaction_id": 5 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.110947, + "t": 0.129699, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.129725, + "t": 0.129725, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.12974, + "t": 0.12974, + "transaction_id": 8 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.110833, + "t": 0.129765, + "transaction_id": 13 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.129834, + "t": 0.129834, + "transaction_id": 13 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.130073, + "t": 0.130132, + "transaction_id": 5 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.130115, + "t": 0.130171, + "transaction_id": 8 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.130161, + "t": 0.130224, + "transaction_id": 13 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.11137, + "t": 0.131017, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.131042, + "t": 0.131042, + "transaction_id": 6 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111194, + "t": 0.131048, + "transaction_id": 9 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.131082, + "t": 0.131082, + "transaction_id": 9 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111145, + "t": 0.13115, + "transaction_id": 11 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.13118, + "t": 0.13118, + "transaction_id": 11 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.131381, + "t": 0.131419, + "transaction_id": 9 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.131415, + "t": 0.131467, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.131472, + "t": 0.131529, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111337, + "t": 0.132858, + "transaction_id": 12 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.132883, + "t": 0.132883, + "transaction_id": 12 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111661, + "t": 0.132953, + "transaction_id": 14 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111852, + "t": 0.132959, + "transaction_id": 15 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.132982, + "t": 0.132982, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.133012, + "t": 0.133012, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111739, + "t": 0.133142, + "transaction_id": 10 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.133172, + "t": 0.133172, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133192, + "t": 0.133233, + "transaction_id": 12 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111708, + "t": 0.133287, + "transaction_id": 4 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133275, + "t": 0.13331, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.133317, + "t": 0.133317, + "transaction_id": 4 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133308, + "t": 0.133344, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133464, + "t": 0.1335, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133622, + "t": 0.133647, + "transaction_id": 4 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111918, + "t": 0.137368, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.137396, + "t": 0.137396, + "transaction_id": 7 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.13769, + "t": 0.137726, + "transaction_id": 7 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.130175, + "t": 0.165604, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 824, + "operation": "read", + "proto": "tcp", + "t0": 0.165933, + "t": 0.165941, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 5369, + "operation": "read", + "proto": "tcp", + "t0": 0.165942, + "t": 0.166729, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.17204, + "t": 0.172133, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.172155, + "t": 0.172155, + "transaction_id": 8 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133318, + "t": 0.172205, + "transaction_id": 14 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.13023, + "t": 0.172207, + "transaction_id": 13 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.130139, + "t": 0.172235, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.172247, + "t": 0.172247, + "transaction_id": 8 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.131424, + "t": 0.17226, + "transaction_id": 9 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133349, + "t": 0.172351, + "transaction_id": 15 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.172356, + "t": 0.172383, + "transaction_id": 8 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 3048, + "operation": "read", + "proto": "tcp", + "t0": 0.172423, + "t": 0.17243, + "transaction_id": 13 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 0.172422, + "t": 0.172454, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 199, + "operation": "write", + "proto": "tcp", + "t0": 0.172465, + "t": 0.17249, + "transaction_id": 8 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.1725, + "t": 0.172543, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.172544, + "t": 0.172571, + "transaction_id": 9 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 2224, + "operation": "read", + "proto": "tcp", + "t0": 0.172578, + "t": 0.172583, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133238, + "t": 0.174773, + "transaction_id": 12 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 3970, + "operation": "read", + "proto": "tcp", + "t0": 0.172585, + "t": 0.174805, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 3145, + "operation": "read", + "proto": "tcp", + "t0": 0.172432, + "t": 0.174805, + "transaction_id": 13 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 3048, + "operation": "read", + "proto": "tcp", + "t0": 0.17503, + "t": 0.175037, + "transaction_id": 12 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.131472, + "t": 0.175542, + "transaction_id": 6 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.176093, + "t": 0.176128, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133505, + "t": 0.177692, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 632, + "operation": "read", + "proto": "tcp", + "t0": 0.177924, + "t": 0.17793, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.131539, + "t": 0.177938, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.178104, + "t": 0.178129, + "transaction_id": 11 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.179877, + "t": 0.179904, + "transaction_id": 9 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.179917, + "t": 0.179917, + "transaction_id": 9 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.1799, + "t": 0.179926, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.179932, + "t": 0.179932, + "transaction_id": 5 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.13773, + "t": 0.179951, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 5561, + "operation": "read", + "proto": "tcp", + "t0": 0.177932, + "t": 0.179987, + "transaction_id": 10 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.180099, + "t": 0.180131, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.180139, + "t": 0.180139, + "transaction_id": 14 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 0.180127, + "t": 0.180157, + "transaction_id": 7 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.180714, + "t": 0.18074, + "transaction_id": 15 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.180747, + "t": 0.180747, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133651, + "t": 0.180795, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 0.180961, + "t": 0.180991, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.180984, + "t": 0.181019, + "transaction_id": 13 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.181026, + "t": 0.181026, + "transaction_id": 13 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 3147, + "operation": "read", + "proto": "tcp", + "t0": 0.175041, + "t": 0.181221, + "transaction_id": 12 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.181431, + "t": 0.181458, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.181486, + "t": 0.181486, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.183152, + "t": 0.183177, + "transaction_id": 11 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.183185, + "t": 0.183185, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.184603, + "t": 0.184629, + "transaction_id": 10 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.184642, + "t": 0.184642, + "transaction_id": 10 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.184763, + "t": 0.184779, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.184792, + "t": 0.184792, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.185432, + "t": 0.185448, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.185456, + "t": 0.185456, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.186076, + "t": 0.186099, + "transaction_id": 12 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.186106, + "t": 0.186106, + "transaction_id": 12 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.190988, + "t": 0.190998, + "transaction_id": 15 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191025, + "t": 0.191025, + "transaction_id": 15 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191027, + "t": 0.191041, + "transaction_id": 9 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.190955, + "t": 0.191052, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191068, + "t": 0.191068, + "transaction_id": 9 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191067, + "t": 0.191088, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 93, + "operation": "read", + "proto": "tcp", + "t0": 0.172489, + "t": 0.191099, + "transaction_id": 8 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191111, + "t": 0.191111, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.191109, + "t": 0.191121, + "transaction_id": 8 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191143, + "t": 0.191143, + "transaction_id": 5 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191132, + "t": 0.191157, + "transaction_id": 13 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191181, + "t": 0.191181, + "transaction_id": 13 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191602, + "t": 0.191618, + "transaction_id": 6 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191641, + "t": 0.191641, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.193444, + "t": 0.193518, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.193553, + "t": 0.193553, + "transaction_id": 11 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.194856, + "t": 0.194882, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.194881, + "t": 0.194898, + "transaction_id": 10 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.194903, + "t": 0.194903, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.194929, + "t": 0.194929, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.195589, + "t": 0.195608, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.195636, + "t": 0.195636, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.196247, + "t": 0.196266, + "transaction_id": 12 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.196291, + "t": 0.196291, + "transaction_id": 12 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6862, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.2299, + "t": 0.2299, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.191128, + "t": 0.238112, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4495, + "operation": "read", + "proto": "tcp", + "t0": 0.238128, + "t": 0.238902, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.239047, + "t": 0.239948, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4090, + "operation": "read", + "proto": "tcp", + "t0": 0.239955, + "t": 0.240879, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.240919, + "t": 0.240941, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 5600, + "operation": "read", + "proto": "tcp", + "t0": 0.240913, + "t": 0.27029, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.270348, + "t": 0.271486, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.271505, + "t": 0.273039, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.273062, + "t": 0.273282, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.273294, + "t": 0.274585, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.274667, + "t": 0.274707, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.274736, + "t": 0.274774, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.274647, + "t": 0.275651, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2800, + "operation": "read", + "proto": "tcp", + "t0": 0.275671, + "t": 0.277262, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.277277, + "t": 0.278647, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 8192, + "operation": "read", + "proto": "tcp", + "t0": 0.278659, + "t": 0.27935, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 208, + "operation": "read", + "proto": "tcp", + "t0": 0.279426, + "t": 0.279453, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.279469, + "t": 0.27951, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.279528, + "t": 0.279558, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.279458, + "t": 0.280472, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.28049, + "t": 0.281124, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2306, + "operation": "read", + "proto": "tcp", + "t0": 0.281136, + "t": 0.281883, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 494, + "operation": "read", + "proto": "tcp", + "t0": 0.281895, + "t": 0.281922, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.281932, + "t": 0.284438, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.284454, + "t": 0.285307, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3706, + "operation": "read", + "proto": "tcp", + "t0": 0.28532, + "t": 0.286508, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3294, + "operation": "read", + "proto": "tcp", + "t0": 0.286525, + "t": 0.286543, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.286581, + "t": 0.286601, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.286635, + "t": 0.286652, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3706, + "operation": "read", + "proto": "tcp", + "t0": 0.286569, + "t": 0.287932, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 494, + "operation": "read", + "proto": "tcp", + "t0": 0.287954, + "t": 0.287983, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.28799, + "t": 0.289209, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2306, + "operation": "read", + "proto": "tcp", + "t0": 0.289222, + "t": 0.29087, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3294, + "operation": "read", + "proto": "tcp", + "t0": 0.290879, + "t": 0.290892, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.290902, + "t": 0.290924, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.290954, + "t": 0.290979, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.290998, + "t": 0.291014, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.290943, + "t": 0.292142, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2800, + "operation": "read", + "proto": "tcp", + "t0": 0.29216, + "t": 0.292693, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.292703, + "t": 0.293306, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3420, + "operation": "read", + "proto": "tcp", + "t0": 0.293322, + "t": 0.294783, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2180, + "operation": "read", + "proto": "tcp", + "t0": 0.294792, + "t": 0.294811, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.294819, + "t": 0.295107, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3420, + "operation": "read", + "proto": "tcp", + "t0": 0.295114, + "t": 0.296149, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 780, + "operation": "read", + "proto": "tcp", + "t0": 0.296158, + "t": 0.296176, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.296206, + "t": 0.296234, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.296253, + "t": 0.296272, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.296195, + "t": 0.301087, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.3011, + "t": 0.301832, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 620, + "operation": "read", + "proto": "tcp", + "t0": 0.301854, + "t": 0.303128, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 7618, + "operation": "read", + "proto": "tcp", + "t0": 0.303136, + "t": 0.303141, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 7000, + "operation": "read", + "proto": "tcp", + "t0": 0.303157, + "t": 0.303164, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1562, + "operation": "read", + "proto": "tcp", + "t0": 0.303215, + "t": 0.30324, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 382309, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.880968, + "t": 0.880968, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 382309, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.021149, + "t": 1.021149, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 1.043186, + "t": 1.043186, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 561130, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.044015, + "t": 1.044015, + "transaction_id": 8 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095913, + "t": 1.218617, + "transaction_id": 20 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.218727, + "t": 1.218727, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.219124, + "t": 1.219209, + "transaction_id": 20 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095816, + "t": 1.222128, + "transaction_id": 24 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.222163, + "t": 1.222163, + "transaction_id": 24 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.222493, + "t": 1.222548, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096169, + "t": 1.223685, + "transaction_id": 21 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.223726, + "t": 1.223726, + "transaction_id": 21 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095829, + "t": 1.223881, + "transaction_id": 16 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.223918, + "t": 1.223918, + "transaction_id": 16 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.224119, + "t": 1.224187, + "transaction_id": 21 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.22423, + "t": 1.224274, + "transaction_id": 16 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096267, + "t": 1.224323, + "transaction_id": 17 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096127, + "t": 1.224341, + "transaction_id": 22 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.224351, + "t": 1.224351, + "transaction_id": 17 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.224377, + "t": 1.224377, + "transaction_id": 22 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.22464, + "t": 1.224689, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096254, + "t": 1.224741, + "transaction_id": 18 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.224762, + "t": 1.224762, + "transaction_id": 18 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.224876, + "t": 1.224919, + "transaction_id": 22 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095932, + "t": 1.224968, + "transaction_id": 19 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.225018, + "t": 1.225018, + "transaction_id": 19 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.225044, + "t": 1.22508, + "transaction_id": 18 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096281, + "t": 1.2251319999999999, + "transaction_id": 23 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.225152, + "t": 1.225152, + "transaction_id": 23 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.225349, + "t": 1.225428, + "transaction_id": 19 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.225702, + "t": 1.225751, + "transaction_id": 23 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.21922, + "t": 1.3642210000000001, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 1.364797, + "t": 1.364844, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.372578, + "t": 1.372621, + "transaction_id": 20 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.372647, + "t": 1.372647, + "transaction_id": 20 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.225757, + "t": 1.372681, + "transaction_id": 23 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.2249240000000001, + "t": 1.372686, + "transaction_id": 22 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.2242790000000001, + "t": 1.3726880000000001, + "transaction_id": 16 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.225084, + "t": 1.3726880000000001, + "transaction_id": 18 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.372906, + "t": 1.372928, + "transaction_id": 16 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.372918, + "t": 1.372942, + "transaction_id": 23 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.372961, + "t": 1.373004, + "transaction_id": 22 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.373046, + "t": 1.373067, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.224693, + "t": 1.3739430000000001, + "transaction_id": 17 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.225432, + "t": 1.373944, + "transaction_id": 19 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.222553, + "t": 1.3739460000000001, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.224193, + "t": 1.374024, + "transaction_id": 21 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 1.374122, + "t": 1.374142, + "transaction_id": 17 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 1.3741349999999999, + "t": 1.374156, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.3742, + "t": 1.374221, + "transaction_id": 21 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.374235, + "t": 1.374308, + "transaction_id": 19 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.376978, + "t": 1.376978, + "transaction_id": 17 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.379372, + "t": 1.379418, + "transaction_id": 22 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.379432, + "t": 1.379432, + "transaction_id": 22 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.37964, + "t": 1.379677, + "transaction_id": 16 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.379689, + "t": 1.379689, + "transaction_id": 16 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.37991, + "t": 1.379931, + "transaction_id": 23 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.379939, + "t": 1.379939, + "transaction_id": 23 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.381249, + "t": 1.381271, + "transaction_id": 24 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.381278, + "t": 1.381278, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.381708, + "t": 1.381744, + "transaction_id": 17 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.381757, + "t": 1.381757, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.38189, + "t": 1.3819270000000001, + "transaction_id": 18 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.381942, + "t": 1.381942, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.382057, + "t": 1.382087, + "transaction_id": 21 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.382094, + "t": 1.382094, + "transaction_id": 21 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.382798, + "t": 1.382798, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.382776, + "t": 1.382801, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.38285, + "t": 1.38285, + "transaction_id": 20 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.384042, + "t": 1.384071, + "transaction_id": 19 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.3840810000000001, + "t": 1.3840810000000001, + "transaction_id": 19 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.389751, + "t": 1.389766, + "transaction_id": 16 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.3897599999999999, + "t": 1.38978, + "transaction_id": 22 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.389799, + "t": 1.389799, + "transaction_id": 16 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.389808, + "t": 1.389808, + "transaction_id": 22 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.390004, + "t": 1.390016, + "transaction_id": 23 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.390033, + "t": 1.390033, + "transaction_id": 23 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.391485, + "t": 1.3915009999999999, + "transaction_id": 24 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.391519, + "t": 1.391519, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.39185, + "t": 1.391869, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.391887, + "t": 1.391887, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.392004, + "t": 1.392017, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.39204, + "t": 1.39204, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.3921510000000001, + "t": 1.3921649999999999, + "transaction_id": 21 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.392183, + "t": 1.392183, + "transaction_id": 21 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.394353, + "t": 1.394371, + "transaction_id": 19 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.3943889999999999, + "t": 1.3943889999999999, + "transaction_id": 19 + } + ], + "x_dns_whoami": { + "system_v4": [ + { + "address": "91.80.36.88" + } + ], + "udp_v4": { + "8.8.4.4:53": [ + { + "address": "91.80.36.88" + } + ] + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000425, + "t": 0.000425, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.025882, + "t": 0.051755, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.051792, + "t": 0.051792, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 279, + "operation": "write", + "proto": "tcp", + "t0": 0.051978, + "t": 0.052052, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.052067, + "t": 0.078002, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 2926, + "operation": "read", + "proto": "tcp", + "t0": 0.078278, + "t": 0.078283, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 80, + "operation": "write", + "proto": "tcp", + "t0": 0.080889, + "t": 0.08093, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.08096, + "t": 0.08096, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.081057, + "t": 0.081078, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 164, + "operation": "write", + "proto": "tcp", + "t0": 0.081181, + "t": 0.081202, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.081211, + "t": 0.08123, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 38, + "operation": "write", + "proto": "tcp", + "t0": 0.081243, + "t": 0.081265, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.081269, + "t": 0.081286, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 542, + "operation": "read", + "proto": "tcp", + "t0": 0.081128, + "t": 0.107252, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 626, + "operation": "read", + "proto": "tcp", + "t0": 0.107313, + "t": 0.108977, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.109048, + "t": 0.109089, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.10966, + "t": 0.10966, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.109708, + "t": 0.109755, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.109223, + "t": 0.109867, + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "AAAA", + "ipv6": "2620:fe::9", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "AAAA", + "ipv6": "2620:fe::fe", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "9.9.9.9", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "149.112.112.112", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "dns.quad9.net.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.quad9.net", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000647, + "t": 0.024963, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "9.9.9.9", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.025882, + "t": 0.051755, + "tags": [], + "transaction_id": 2 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "9.9.9.9:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIGyDCCBk6gAwIBAgIQDQsh8YVJ+5rl2I/Z0i4MlzAKBggqhkjOPQQDAzBWMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMTAwLgYDVQQDEydEaWdpQ2VydCBUTFMgSHlicmlkIEVDQyBTSEEzODQgMjAyMCBDQTEwHhcNMjMwNzMxMDAwMDAwWhcNMjQwODA2MjM1OTU5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTERMA8GA1UEBxMIQmVya2VsZXkxDjAMBgNVBAoTBVF1YWQ5MRQwEgYDVQQDDAsqLnF1YWQ5Lm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2L1x0DhQ0YJbM0HCmhJ9SsASVIiqDx6gK52FEsCGqsclbs+j2moJ9JCVWOrP65cxdcAvt4zCSRlG9DI4kOHWajggT3MIIE8zAfBgNVHSMEGDAWgBQKvAgpF4ylOW16Ds4zxy6z7fvDejAdBgNVHQ4EFgQUf6kSpdfGi0gCxz0qRW5AHkBg9JcwggGNBgNVHREEggGEMIIBgIILKi5xdWFkOS5uZXSCCXF1YWQ5Lm5ldIcECQkJCYcECQkJCocECQkJC4cECQkJDIcECQkJDYcECQkJDocECQkJD4cElXBwCYcElXBwCocElXBwC4cElXBwDIcElXBwDYcElXBwDocElXBwD4cElXBwcIcQJiAA/gAAAAAAAAAAAAAACYcQJiAA/gAAAAAAAAAAAAAAEIcQJiAA/gAAAAAAAAAAAAAAEYcQJiAA/gAAAAAAAAAAAAAAEocQJiAA/gAAAAAAAAAAAAAAE4cQJiAA/gAAAAAAAAAAAAAAFIcQJiAA/gAAAAAAAAAAAAAAFYcQJiAA/gAAAAAAAAAAAAAA/ocQJiAA/gAAAAAAAAAAAP4ACYcQJiAA/gAAAAAAAAAAAP4AEIcQJiAA/gAAAAAAAAAAAP4AEYcQJiAA/gAAAAAAAAAAAP4AEocQJiAA/gAAAAAAAAAAAP4AE4cQJiAA/gAAAAAAAAAAAP4AFIcQJiAA/gAAAAAAAAAAAP4AFTAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMIGbBgNVHR8EgZMwgZAwRqBEoEKGQGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwRqBEoEKGQGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMIGFBggrBgEFBQcBAQR5MHcwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBPBggrBgEFBQcwAoZDaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VExTSHlicmlkRUNDU0hBMzg0MjAyMENBMS0xLmNydDAJBgNVHRMEAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYmtrLxjAAAEAwBHMEUCIQCAWtmgTRnZsqjxZ7jdiDq0EEfxBB4kMj7oaZPv+URihQIgUJxBXliHw3ic/24+0NilFj/WfEcV1kNRARUhXS6xn08AdwBIsONr2qZHNA/lagL6nTDrHFIBy1bdLIHZu7+rOdiEcwAAAYmtrLxLAAAEAwBIMEYCIQClQbGksPNEGkRsO930WOdpYDBhFWVD44nw9ks9uyawJAIhAPypE9SPFDDkOgrOw+K++guz486lzdjaAfVzdyO6sw80AHUA2ra/az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sAAAGJray8FwAABAMARjBEAiBMmvofeflmsV3JoyFVid5GiJaPHkH9fDWkS93eP9fgEQIgfkTwCbSFNKnF47riYP4MJow7haBO+pFwRW5WAEC1AQQwCgYIKoZIzj0EAwMDaAAwZQIwOOsRrmNqg61CQTVH/6I6W1ZKb+5efJZpgZLVhCirpay7lyiuNyC1QkF6jfTAh+nGAjEAoRSNqC4pY/1GUJ3ygEjSOkUKlFnpXSxYIxJz9yJ43z05faF/uL+mrpAV9GXi2cpt", + "format": "base64" + }, + { + "data": "MIIEFzCCAv+gAwIBAgIQB/LzXIeod6967+lHmTUlvTANBgkqhkiG9w0BAQwFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaMFYxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMDAuBgNVBAMTJ0RpZ2lDZXJ0IFRMUyBIeWJyaWQgRUNDIFNIQTM4NCAyMDIwIENBMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMEbxppbmNmkKaDp1AS12+umsmxVwP/tmMZJLwYnUcu/cMEFesOxnYeJuq20ExfJqLSDyLiQ0cx0NTY8g3KwtdD3ImnI8YDEe0CPz2iHJlw5ifFNkU3aiYvkA8ND5b8vc6OCAYIwggF+MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAq8CCkXjKU5bXoOzjPHLrPt+8N6MB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwCATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG9w0BAQwFAAOCAQEAR1mBf9QbH7Bx9phdGLqYR5iwfnYr6v8ai6wms0KNMeZK6BnQ79oU59cUkqGS8qcuLa/7Hfb7U7CKP/zYFgrpsC62pQsYkDUmotr2qLcy/JUjS8ZFucTP5Hzu5sn4kL1y45nDHQsFfGqXbbKrAjbYwrwsAZI/BKOLdRHHuSm8EdCGupK8JvllyDfNJvaGEwwEqonleLHBTnm8dqMLUeTF0J5q/hosVq4GNiejcxwIfZMy0MJEGdqN9A57HSgDKwmKdsp33Id6rHtSJlWncg+d0ohP/rEhxRqhqjn1VtvChMQ1H3Dau0bwhr9kAMQ+959GG50jBbl9s08PqUU643QwmA==", + "format": "base64" + } + ], + "server_name": "dns.quad9.net", + "t0": 0.051792, + "t": 0.08096, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 2 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000384, + "t": 0.000384, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000874, + "t": 0.000891, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00104, + "t": 0.00106, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 179, + "operation": "read", + "proto": "udp", + "t0": 0.000899, + "t": 0.019911, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 163, + "operation": "read", + "proto": "udp", + "t0": 0.001073, + "t": 0.022453, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.023203, + "t": 0.023203, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:403::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:414::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "AAAA", + "raw_response": "5zmBgAABAAUAAAAAA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAAmgAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAABsAECoAFFBAAgQCAAAAAAAAIA7ALQAcAAEAAAAbABAqABRQQAIEAwAAAAAAACAOwC0AHAABAAAAGwAQKgAUUEACBBQAAAAAAAAgDsAtABwAAQAAABsAECoAFFBAAgQWAAAAAAAAIA4=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000409, + "t": 0.019946, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "A", + "raw_response": "GlGBgAABAAcAAAAAA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAAAmgAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAACoABNg6zS7ALQABAAEAAAAqAASO+rSOwC0AAQABAAAAKgAEjvq0rsAtAAEAAQAAACoABI770Q7ALQABAAEAAAAqAASO+9EuwC0AAQABAAAAKgAE2DrMjg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000911, + "t": 0.022486, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:403::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:414::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000477, + "t": 0.023412, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:809::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:414::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "AAAA", + "raw_response": "YDGBgAABAAUAAAABA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAABQAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAAEEAECoAFFBAAgQCAAAAAAAAIA7ALQAcAAEAAABBABAqABRQQAIICQAAAAAAACAOwC0AHAABAAAAQQAQKgAUUEACBBQAAAAAAAAgDsAtABwAAQAAAEEAECoAFFBAAgQWAAAAAAAAIA4AACkE0AAAgAAAAA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000444, + "t": 0.109346, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "A", + "raw_response": "evyBgAABAAgAAAABA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAAABQAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAAG8ABI770Q7ALQABAAEAAABvAASO+9EuwC0AAQABAAAAbwAE2DrRLsAtAAEAAQAAAG8ABNg6zI7ALQABAAEAAABvAATYOs0uwC0AAQABAAAAbwAEjvq0jsAtAAEAAQAAAG8ABI76tK4AACkE0AAAgAAAAA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000939, + "t": 0.109379, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "142.251.209.14:443", + "alpn": "h2", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.youtube.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.youtube.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.youtube.com/" + }, + "response": { + "body": "YouTube
AboutPressCopyrightContact usCreatorsAdvertiseDevelopersTermsPrivacyPolicy & SafetyHow YouTube worksTest new features
© 2023 Google LLC