Add perf loader that loads perf results from buildbucket. This introduces one simple API [1] that finds all the children benchmark runs and their perf_results.json. And then it fetches all the content and merges into PerfResults keyed by the benchmark name. [1]: NewLoader().LoadPerfResults(context, buildID) Bug: b/334901267 Change-Id: I97823fd88c6d70e8cdf6c63c63d36c3b723a7069 Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/844616 Commit-Queue: Hao Wu <haowoo@google.com> Reviewed-by: Leina Sun <sunxiaodi@google.com>
diff --git a/perf/go/perfresults/BUILD.bazel b/perf/go/perfresults/BUILD.bazel index cb3fdc7..f77eae2 100644 --- a/perf/go/perfresults/BUILD.bazel +++ b/perf/go/perfresults/BUILD.bazel
@@ -5,6 +5,7 @@ name = "perfresults", srcs = [ "buildbucket.go", + "perf_loader.go", "perf_results_parser.go", "rbecas.go", "swarming.go", @@ -31,6 +32,7 @@ name = "perfresults_test", srcs = [ "buildbucket_test.go", + "perf_loader_test.go", "perf_results_test.go", "rbecas_test.go", "replay_test.go",
diff --git a/perf/go/perfresults/buildbucket.go b/perf/go/perfresults/buildbucket.go index 905d03d..708366d 100644 --- a/perf/go/perfresults/buildbucket.go +++ b/perf/go/perfresults/buildbucket.go
@@ -25,6 +25,24 @@ bpb.BuildsClient } +// BuildInfo contains info that are useful for identifying the perf results. +type BuildInfo struct { + // The swarming instance that runs this build. + SwarmingInstance string + + // The swarming task ID that runs this build. + TaskID string + + // The git hash Revision that this build was built at. + // + // Note the patches and other source info is not added here as we don't need them now. More info + // can be expanded as needed later. We should try to keep this simple. + Revision string + + // The commit position that this build was built at. + CommitPosisition string +} + func newBuildsClient(ctx context.Context, client *http.Client) (*bbClient, error) { if client == nil { ts, err := google.DefaultTokenSource(ctx) @@ -55,31 +73,37 @@ }, nil } -// findTaskRunID returns the swarming backend instance and taskId. -func (bc bbClient) findTaskRunID(ctx context.Context, buildID int64) (string, string, error) { +// findBuildInfo returns the swarming backend instance and taskId. +func (bc bbClient) findBuildInfo(ctx context.Context, buildID int64) (BuildInfo, error) { build, err := bc.GetBuild(ctx, &bpb.GetBuildRequest{ Id: buildID, Mask: &bpb.BuildMask{ Fields: &fieldmaskpb.FieldMask{ - Paths: []string{"status", "infra.backend.task.id"}, + Paths: []string{"status", "infra.backend.task.id", "output.properties"}, }, }, }) if err != nil { - return "", "", skerr.Wrapf(err, "unable to get build info (%v)", buildID) + return BuildInfo{}, skerr.Wrapf(err, "unable to get build info (%v)", buildID) } if build.GetStatus()&bpb.Status_ENDED_MASK == 0 { - return "", "", skerr.Fmt("build (%v) is not ended", buildID) + return BuildInfo{}, skerr.Fmt("build (%v) is not ended", buildID) } t := build.GetInfra().GetBackend().GetTask().GetId() if t == nil { - return "", "", skerr.Fmt("unable to get swarming task info for build (%v)", buildID) + return BuildInfo{}, skerr.Fmt("unable to get swarming task info for build (%v)", buildID) } if !strings.HasPrefix(t.GetTarget(), swarmingProtocol) { - return "", "", skerr.Fmt("incorrect swarming instance (%v) for build (%v)", t.GetTarget(), buildID) + return BuildInfo{}, skerr.Fmt("incorrect swarming instance (%v) for build (%v)", t.GetTarget(), buildID) } sh := t.GetTarget()[len(swarmingProtocol):] + ".appspot.com" - return sh, t.GetId(), nil + props := build.GetOutput().GetProperties().AsMap() + return BuildInfo{ + SwarmingInstance: sh, + TaskID: t.GetId(), + Revision: props["got_revision"].(string), + CommitPosisition: props["got_revision_cp"].(string), + }, nil }
diff --git a/perf/go/perfresults/buildbucket_test.go b/perf/go/perfresults/buildbucket_test.go index 95f2067..4186a7b 100644 --- a/perf/go/perfresults/buildbucket_test.go +++ b/perf/go/perfresults/buildbucket_test.go
@@ -16,10 +16,10 @@ require.NoError(t, err) verify := func(buildID int64, expectedInstance string, expectedTaskID string) { - instanceId, taskId, err := bc.findTaskRunID(ctx, buildID) + ti, err := bc.findBuildInfo(ctx, buildID) assert.NoError(t, err) - assert.EqualValues(t, expectedInstance, instanceId) - assert.EqualValues(t, expectedTaskID, taskId) + assert.EqualValues(t, expectedInstance, ti.SwarmingInstance) + assert.EqualValues(t, expectedTaskID, ti.TaskID) } // Chomium regular builders
diff --git a/perf/go/perfresults/perf_loader.go b/perf/go/perfresults/perf_loader.go new file mode 100644 index 0000000..d2f2506 --- /dev/null +++ b/perf/go/perfresults/perf_loader.go
@@ -0,0 +1,97 @@ +package perfresults + +import ( + "context" + "net/http" + + apipb "go.chromium.org/luci/swarming/proto/api_v2" + "go.skia.org/infra/go/skerr" +) + +type rbeProvider func(ctx context.Context, casInstance string) (*RBEPerfLoader, error) + +type loader struct { + client *http.Client + rbeProvider rbeProvider +} + +// NewLoader returns a new loader to load perf_results from the buildbucket. +// +// This is a simple lightweight struct used to inject dependencies and for testing purposes. +// One can simply call: NewLoader().LoadPerfResults(...). +func NewLoader() loader { + return loader{ + rbeProvider: NewRBEPerfLoader, + } +} + +func getNonNilCAS(cases ...*apipb.CASReference) []*apipb.CASReference { + nonnil := make([]*apipb.CASReference, len(cases)) + ct := 0 + for _, c := range cases { + if c == nil { + continue + } + nonnil[ct] = c + ct++ + } + return nonnil[:ct] +} + +// checkCasInstances returns true if all the cas instances are from the same rbe instance. +func checkCasInstances(cases ...*apipb.CASReference) bool { + // empty slice is considered to be true. + if len(cases) == 0 { + return true + } + first := cases[0] + for _, c := range cases[1:] { + if first.GetCasInstance() != c.GetCasInstance() { + return false + } + } + return true +} + +// LoadPerfResults loads and merges all the perf_results.json from the given buildID. +func (loader loader) LoadPerfResults(ctx context.Context, buildID int64) (BuildInfo, map[string]*PerfResults, error) { + bc, _ := newBuildsClient(ctx, loader.client) + bi, err := bc.findBuildInfo(ctx, buildID) + if err != nil { + return BuildInfo{}, nil, skerr.Wrap(err) + } + + sc, err := newSwarmingClient(ctx, bi.SwarmingInstance, loader.client) + if err != nil { + return BuildInfo{}, nil, skerr.Wrap(err) + } + + childIDs, err := sc.findChildTaskIds(ctx, bi.TaskID) + if err != nil { + return BuildInfo{}, nil, skerr.Wrap(err) + } + + cases, err := sc.findTaskCASOutputs(ctx, childIDs...) + if err != nil { + return BuildInfo{}, nil, skerr.Wrap(err) + } + + cases = getNonNilCAS(cases...) + + // If there is no test runs, we return the build info only. + if len(cases) == 0 { + return bi, nil, nil + } + + if !checkCasInstances(cases...) { + return BuildInfo{}, nil, skerr.Fmt("CAS outputs are not from the same instance (%v)", buildID) + } + + rbe, err := loader.rbeProvider(ctx, cases[0].GetCasInstance()) + if err != nil { + return BuildInfo{}, nil, skerr.Wrap(err) + } + + pr, err := rbe.LoadPerfResults(ctx, cases...) + return bi, pr, err +}
diff --git a/perf/go/perfresults/perf_loader_test.go b/perf/go/perfresults/perf_loader_test.go new file mode 100644 index 0000000..10c6a33 --- /dev/null +++ b/perf/go/perfresults/perf_loader_test.go
@@ -0,0 +1,79 @@ +package perfresults + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + apipb "go.chromium.org/luci/swarming/proto/api_v2" +) + +func makeTestLoader(t *testing.T, replayName string) loader { + return loader{ + client: setupReplay(t, replayName+".json"), + rbeProvider: func(ctx context.Context, casInstance string) (*RBEPerfLoader, error) { + return newRBEReplay(t, ctx, casInstance, replayName), nil + }, + } +} + +func Test_GetNonNilCAS_RemovesNilCAS(t *testing.T) { + // Sanity check to make sure getNonNilCAS can remove all the nil values as we don't find the actual + // examples that have partial success runs. + assert.Len(t, getNonNilCAS(nil, nil), 0) + assert.Len(t, getNonNilCAS(&apipb.CASReference{}, nil), 1) + assert.Len(t, getNonNilCAS(&apipb.CASReference{}, &apipb.CASReference{}, &apipb.CASReference{}), 3) + assert.Len(t, getNonNilCAS(&apipb.CASReference{}, nil, &apipb.CASReference{}), 2) + assert.Len(t, getNonNilCAS(nil, nil, &apipb.CASReference{}), 1) +} + +func Test_LoadPerfResults_InvalidBuildID(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + l := makeTestLoader(t, "LoadPerfResults_InvalidBuildID") + + // https://ci.chromium.org/ui/p/chrome/builders/ci/android-pixel2-processor-perf/29185/overview + _, pf, err := l.LoadPerfResults(ctx, 874985279402) + assert.ErrorContains(t, err, "unable to get build info") + assert.Empty(t, pf) +} + +func Test_LoadPerfResults_NoChildRuns(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + l := makeTestLoader(t, "LoadPerfResults_NoChildRuns") + + // https://ci.chromium.org/ui/p/chrome/builders/ci/android-pixel2-processor-perf/29185/overview + bi, pf, err := l.LoadPerfResults(ctx, 8749852794028752801) + assert.NoError(t, err) + assert.Empty(t, pf) + assert.EqualValues(t, bi, BuildInfo{ + SwarmingInstance: "chrome-swarming.appspot.com", + TaskID: "692473e4c9b8d410", + Revision: "c845ea1817639802e52815b0a401391ea5d72282", + CommitPosisition: "refs/heads/main@{#1291128}", + }) +} + +func Test_LoadPerfResults_ValidFullResults(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + l := makeTestLoader(t, "LoadPerfResults_ValidFullResults") + + // https://ci.chromium.org/ui/p/chrome/builders/ci/mac-m1_mini_2020-perf-pgo/5691/infra + bi, pf, err := l.LoadPerfResults(ctx, 8749893364195553889) + require.NoError(t, err) + require.Contains(t, pf, "speedometer3") + assert.Len(t, pf["speedometer3"].Histograms, 21) + assert.Len(t, pf["speedometer3"].GetSampleValues("TodoMVC-Vue"), 40) + assert.EqualValues(t, bi, BuildInfo{ + SwarmingInstance: "chrome-swarming.appspot.com", + TaskID: "6922258402e54910", + Revision: "958d24898d18c3fcd3cefdb7c994b39672261813", + CommitPosisition: "refs/heads/main@{#1291040}", + }) +}
diff --git a/perf/go/perfresults/perf_results_test.go b/perf/go/perfresults/perf_results_test.go index ab9cb1e..ab79611 100644 --- a/perf/go/perfresults/perf_results_test.go +++ b/perf/go/perfresults/perf_results_test.go
@@ -54,7 +54,6 @@ assert.Contains(t, pr.Histograms, traceKey) assert.EqualValues(t, pr.Histograms[traceKey], histogram) assert.EqualValues(t, pr.GetSampleValues(traceKey.ChartName), histogram.SampleValues) - } func Test_PerfResult_MergeHistogram(t *testing.T) {
diff --git a/perf/go/perfresults/replay_test.go b/perf/go/perfresults/replay_test.go index 050b9f7..ba44f4e 100644 --- a/perf/go/perfresults/replay_test.go +++ b/perf/go/perfresults/replay_test.go
@@ -8,6 +8,7 @@ "net/http" "os" "path" + "strings" "testing" "cloud.google.com/go/httpreplay" @@ -55,7 +56,9 @@ } func newRBEReplay(t *testing.T, ctx context.Context, casInstance string, replayName string) *RBEPerfLoader { - casInstance = "projects/" + casInstance + "/instances/default_instance" + if !strings.HasPrefix(casInstance, "projects/") { + casInstance = "projects/" + casInstance + "/instances/default_instance" + } ts, err := google.DefaultTokenSource(ctx) require.NoError(t, err)
diff --git a/perf/go/perfresults/testdata/FindTaskID_ReturnsInstanceAndTask.json b/perf/go/perfresults/testdata/FindTaskID_ReturnsInstanceAndTask.json index fc60aa2..9e6abf9 100644 --- a/perf/go/perfresults/testdata/FindTaskID_ReturnsInstanceAndTask.json +++ b/perf/go/perfresults/testdata/FindTaskID_ReturnsInstanceAndTask.json
@@ -30,7 +30,7 @@ }, "Entries": [ { - "ID": "54e53dcede1b59f7", + "ID": "b14852c4f9e38644", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -42,7 +42,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -53,7 +53,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CNHB2dfUp6S4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CNHB2dfUp6S4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -63,19 +63,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "56" + "949" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:18 GMT" + "Thu, 18 Apr 2024 02:18:37 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "c04bfa3086d5d699e0268b9092b0486a" + "f669fd93f47f8a289a6db5d57e451764" ], "X-Content-Type-Options": [ "nosniff" @@ -84,11 +84,11 @@ "0" ] }, - "Body": "YAySATM6MRIvCi0KGXN3YXJtaW5nOi8vY2hyb21pdW0tc3dhcm0SEDY4ZjZlYzMwZTlkZjAzMTA=" + "Body": "YAyCAfkGCvYGCp4BCiIkcmVjaXBlX2VuZ2luZS9taWxvL2JsYW1lbGlzdF9waW5zEngydgp0KnIKGQoHcHJvamVjdBIOGgxjaHJvbWl1bS9zcmMKIwoEaG9zdBIbGhljaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tCjAKAmlkEioaKDdmOWUzZDhhNDAwMjE1NmNhZjI0OTNlNTkwMDgyMjhmNmY0MzMzNDkKPwoRZ290X2Rhd25fcmV2aXNpb24SKhooZmI5N2QwNGMwYzJlMjMwN2RjMTFhOWQ5ZGU0ZWFiNjA3YWYxMTFmOQoPCglpc19jYWNoZWQSAiABCkYKGGdvdF9zd2lmdHNoYWRlcl9yZXZpc2lvbhIqGig2MmM1OWM0MWUxOTRjMjg4YzA2NzM5Nzg4YmIwYWFkM2M4NmIxOWJmCjQKFmdvdF93ZWJydGNfcmV2aXNpb25fY3ASGhoYcmVmcy9oZWFkcy9tYWluQHsjNDIwNTl9Ci8KD2dvdF9yZXZpc2lvbl9jcBIcGhpyZWZzL2hlYWRzL21haW5AeyMxMjg3MDkxfQpBChNnb3Rfd2VicnRjX3JldmlzaW9uEioaKDM1MmJmZTNjNDRjM2JhZjFmMTZhMThmOTEyYjhiMTYyY2E1ODFjNTQKQAoSZ290X2FuZ2xlX3JldmlzaW9uEioaKGUyMjlhZmFkYTFkMmFmMDEyYjdlYzU1Mzk1ZDEwZjUzZjFlYmZlNjAKPQoPZ290X3Y4X3JldmlzaW9uEioaKDE1Yjk3NTY0ODRkNWJkYTk4YmEyNzNhZTEzZjhkYjU4MjAwZGI0ZGIKOgoMZ290X3JldmlzaW9uEioaKDdmOWUzZDhhNDAwMjE1NmNhZjI0OTNlNTkwMDgyMjhmNmY0MzMzNDkKHwoPZ2l0X2NhY2hlX2Vwb2NoEgwaCjE3MTMxMDk0MDcKMAoSZ290X3Y4X3JldmlzaW9uX2NwEhoaGHJlZnMvaGVhZHMvMTIuNS4yMjdAeyMxfQp/ChFtaXJyb3JlZF9idWlsZGVycxJqMmgKLBoqdHJ5c2VydmVyLmNocm9taXVtLmxpbnV4OmxpbnV4LWNsb2JiZXItcmVsCjgaNnRyeXNlcnZlci5jaHJvbWl1bS5saW51eDpsaW51eF9jaHJvbWl1bV9hcmNoaXZlX3JlbF9uZ5IBMzoxEi8KLQoZc3dhcm1pbmc6Ly9jaHJvbWl1bS1zd2FybRIQNjhmNmVjMzBlOWRmMDMxMA==" } }, { - "ID": "bd41e42c2bd9c42a", + "ID": "bd9ba93d5241d77f", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -100,7 +100,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -111,7 +111,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CNHBj8T/5KS4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CNHBj8T/5KS4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -121,19 +121,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "56" + "941" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:18 GMT" + "Thu, 18 Apr 2024 02:18:37 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "1eaca70466873a130952c4091e8936af" + "8b3723a14947e5129f430a929f2301b1" ], "X-Content-Type-Options": [ "nosniff" @@ -142,11 +142,11 @@ "0" ] }, - "Body": "YAySATM6MRIvCi0KGXN3YXJtaW5nOi8vY2hyb21pdW0tc3dhcm0SEDY4ZjZjZDg0YWI5Yzc5MTA=" + "Body": "YAyCAfEGCu4GCjAKEmdvdF92OF9yZXZpc2lvbl9jcBIaGhhyZWZzL2hlYWRzLzEyLjUuMjI3QHsjMX0KNAoWZ290X3dlYnJ0Y19yZXZpc2lvbl9jcBIaGhhyZWZzL2hlYWRzL21haW5AeyM0MjA1OX0KLwoPZ290X3JldmlzaW9uX2NwEhwaGnJlZnMvaGVhZHMvbWFpbkB7IzEyODcwODR9CkAKEmdvdF9hbmdsZV9yZXZpc2lvbhIqGihlMjI5YWZhZGExZDJhZjAxMmI3ZWM1NTM5NWQxMGY1M2YxZWJmZTYwCjQKDmNsYW5nX3JldmlzaW9uEiIaIGxsdm1vcmctMTktaW5pdC04MDkxLWdhYjAzN2M0Zi0xCj8KEWdvdF9kYXduX3JldmlzaW9uEioaKGZiOTdkMDRjMGMyZTIzMDdkYzExYTlkOWRlNGVhYjYwN2FmMTExZjkKHwoPZ2l0X2NhY2hlX2Vwb2NoEgwaCjE3MTIxNDU3NDcKOgoMZ290X3JldmlzaW9uEioaKDI3ZGVhNjFlODUxMjc2MThmMzBhOTJkNTFmN2ZlOWJjZDk5MDhlZTEKngEKIiRyZWNpcGVfZW5naW5lL21pbG8vYmxhbWVsaXN0X3BpbnMSeDJ2CnQqcgowCgJpZBIqGigyN2RlYTYxZTg1MTI3NjE4ZjMwYTkyZDUxZjdmZTliY2Q5OTA4ZWUxChkKB3Byb2plY3QSDhoMY2hyb21pdW0vc3JjCiMKBGhvc3QSGxoZY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbQpGChhnb3Rfc3dpZnRzaGFkZXJfcmV2aXNpb24SKhooNjJjNTljNDFlMTk0YzI4OGMwNjczOTc4OGJiMGFhZDNjODZiMTliZgo9Cg9nb3RfdjhfcmV2aXNpb24SKhooMTViOTc1NjQ4NGQ1YmRhOThiYTI3M2FlMTNmOGRiNTgyMDBkYjRkYgpBChFtaXJyb3JlZF9idWlsZGVycxIsMioKKBomdHJ5c2VydmVyLmNocm9taXVtLm1hYzptYWMtY2xvYmJlci1yZWwKQQoTZ290X3dlYnJ0Y19yZXZpc2lvbhIqGigzNTJiZmUzYzQ0YzNiYWYxZjE2YTE4ZjkxMmI4YjE2MmNhNTgxYzU0Cg8KCWlzX2NhY2hlZBICIAGSATM6MRIvCi0KGXN3YXJtaW5nOi8vY2hyb21pdW0tc3dhcm0SEDY4ZjZjZDg0YWI5Yzc5MTA=" } }, { - "ID": "77ef8e5b5952b6b3", + "ID": "31e7181b04c82462", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -158,7 +158,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -169,7 +169,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CMHkp7eLoqi4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CMHkp7eLoqi4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -179,19 +179,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "56" + "981" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:19 GMT" + "Thu, 18 Apr 2024 02:18:37 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "7871eea9f351ce9f5ed18d41c5129708" + "6aee3fc56fc56913f4ac9b362f6682ee" ], "X-Content-Type-Options": [ "nosniff" @@ -200,11 +200,11 @@ "0" ] }, - "Body": "YAySATM6MRIvCi0KGXN3YXJtaW5nOi8vY2hyb21pdW0tc3dhcm0SEDY4ZjVlZWY3YWQ3MmQ0MTA=" + "Body": "YAyCAZkHCpYHCp4BCiIkcmVjaXBlX2VuZ2luZS9taWxvL2JsYW1lbGlzdF9waW5zEngydgp0KnIKIwoEaG9zdBIbGhljaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tCjAKAmlkEioaKDk3ZDVmOWQ3MThiYTA4NjYwYWRhM2NjZDMyZjJkNTI3MzBlNDRlNTAKGQoHcHJvamVjdBIOGgxjaHJvbWl1bS9zcmMKDwoJaXNfY2FjaGVkEgIgAQpBChNnb3Rfd2VicnRjX3JldmlzaW9uEioaKDM1MmJmZTNjNDRjM2JhZjFmMTZhMThmOTEyYjhiMTYyY2E1ODFjNTQKRgoYZ290X3N3aWZ0c2hhZGVyX3JldmlzaW9uEioaKDYyYzU5YzQxZTE5NGMyODhjMDY3Mzk3ODhiYjBhYWQzYzg2YjE5YmYKPAoRbWlycm9yZWRfYnVpbGRlcnMSJzIlCiMaIXRyeXNlcnZlci5jaHJvbWl1bTp3aW4zMi1vZmZpY2lhbAphChFjaHJvbWl1bS50YXNra2lsbBJMKkoKHgoYcHJvY2Vzc2VzX2tpbGxlZF9ieV9uYW1lEgIyAAooChtudW1fcHJvY2Vzc2VzX2tpbGxlZF9ieV9waWQSCREAAAAAAAAAAApAChJnb3RfYW5nbGVfcmV2aXNpb24SKhooZTIyOWFmYWRhMWQyYWYwMTJiN2VjNTUzOTVkMTBmNTNmMWViZmU2MAowChJnb3RfdjhfcmV2aXNpb25fY3ASGhoYcmVmcy9oZWFkcy8xMi41LjIyN0B7IzF9Cj0KD2dvdF92OF9yZXZpc2lvbhIqGigxNWI5NzU2NDg0ZDViZGE5OGJhMjczYWUxM2Y4ZGI1ODIwMGRiNGRiCh8KD2dpdF9jYWNoZV9lcG9jaBIMGgoxNzEyNzU4MDkzCi8KD2dvdF9yZXZpc2lvbl9jcBIcGhpyZWZzL2hlYWRzL21haW5AeyMxMjg3MDcwfQo0ChZnb3Rfd2VicnRjX3JldmlzaW9uX2NwEhoaGHJlZnMvaGVhZHMvbWFpbkB7IzQyMDU5fQo/ChFnb3RfZGF3bl9yZXZpc2lvbhIqGihmYjk3ZDA0YzBjMmUyMzA3ZGMxMWE5ZDlkZTRlYWI2MDdhZjExMWY5CjoKDGdvdF9yZXZpc2lvbhIqGig5N2Q1ZjlkNzE4YmEwODY2MGFkYTNjY2QzMmYyZDUyNzMwZTQ0ZTUwkgEzOjESLwotChlzd2FybWluZzovL2Nocm9taXVtLXN3YXJtEhA2OGY1ZWVmN2FkNzJkNDEw" } }, { - "ID": "575bc97631dd051f", + "ID": "f99e2c837f0043be", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -216,7 +216,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -227,7 +227,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CJGtwtOcl6a4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CJGtwtOcl6a4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -237,19 +237,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "56" + "817" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:19 GMT" + "Thu, 18 Apr 2024 02:18:37 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "c0a2ca7d4fb188c8eed71f9b9dc43a9e" + "baa930769dec25746cd5afdd7dfca6d9" ], "X-Content-Type-Options": [ "nosniff" @@ -258,11 +258,11 @@ "0" ] }, - "Body": "YAySATM6MRIvCi0KGXN3YXJtaW5nOi8vY2hyb21pdW0tc3dhcm0SEDY4ZjY3NDY4OGE1YjJhMTA=" + "Body": "YAyCAfUFCvIFCj8KEWdvdF9kYXduX3JldmlzaW9uEioaKGZiOTdkMDRjMGMyZTIzMDdkYzExYTlkOWRlNGVhYjYwN2FmMTExZjkKNAoWZ290X3dlYnJ0Y19yZXZpc2lvbl9jcBIaGhhyZWZzL2hlYWRzL21haW5AeyM0MjA1OX0KMAoSZ290X3Y4X3JldmlzaW9uX2NwEhoaGHJlZnMvaGVhZHMvMTIuNS4yMjdAeyMxfQqeAQoiJHJlY2lwZV9lbmdpbmUvbWlsby9ibGFtZWxpc3RfcGlucxJ4MnYKdCpyChkKB3Byb2plY3QSDhoMY2hyb21pdW0vc3JjCiMKBGhvc3QSGxoZY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbQowCgJpZBIqGigwMWU5NDJjYzBiY2RmYmM5YzViZDhiOWUzOWY5OWM0NjJiZWJkZDYzCkYKGGdvdF9zd2lmdHNoYWRlcl9yZXZpc2lvbhIqGig2MmM1OWM0MWUxOTRjMjg4YzA2NzM5Nzg4YmIwYWFkM2M4NmIxOWJmCj0KD2dvdF92OF9yZXZpc2lvbhIqGigxNWI5NzU2NDg0ZDViZGE5OGJhMjczYWUxM2Y4ZGI1ODIwMGRiNGRiCg8KCWlzX2NhY2hlZBICIAAKHAoPZ2l0X2NhY2hlX2Vwb2NoEgkRAABAigSH2UEKLwoPZ290X3JldmlzaW9uX2NwEhwaGnJlZnMvaGVhZHMvbWFpbkB7IzEyODcwNzl9CkAKEmdvdF9hbmdsZV9yZXZpc2lvbhIqGihlMjI5YWZhZGExZDJhZjAxMmI3ZWM1NTM5NWQxMGY1M2YxZWJmZTYwCkEKE2dvdF93ZWJydGNfcmV2aXNpb24SKhooMzUyYmZlM2M0NGMzYmFmMWYxNmExOGY5MTJiOGIxNjJjYTU4MWM1NAo6Cgxnb3RfcmV2aXNpb24SKhooMDFlOTQyY2MwYmNkZmJjOWM1YmQ4YjllMzlmOTljNDYyYmViZGQ2M5IBMzoxEi8KLQoZc3dhcm1pbmc6Ly9jaHJvbWl1bS1zd2FybRIQNjhmNjc0Njg4YTViMmExMA==" } }, { - "ID": "cb745954d56b9e97", + "ID": "879168f50bfb830b", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -274,7 +274,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -285,7 +285,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CJGhsIrtxKS4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CJGhsIrtxKS4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -295,19 +295,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "57" + "1248" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:19 GMT" + "Thu, 18 Apr 2024 02:18:37 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "028b589f4bcdfe50bad00c1708425484" + "817f20d2673ced5584f6d91c96d114ca" ], "X-Content-Type-Options": [ "nosniff" @@ -316,11 +316,11 @@ "0" ] }, - "Body": "YAySATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OGY2ZGQ5NTk1NWRjZDEw" + "Body": "YAyCAaMJCqAJCjQKFmdvdF93ZWJydGNfcmV2aXNpb25fY3ASGhoYcmVmcy9oZWFkcy9tYWluQHsjNDIwNTl9Cg8KCWlzX2NhY2hlZBICIAEKLwoPZ290X3JldmlzaW9uX2NwEhwaGnJlZnMvaGVhZHMvbWFpbkB7IzEyODcwODh9Cj0KD2dvdF92OF9yZXZpc2lvbhIqGigxNWI5NzU2NDg0ZDViZGE5OGJhMjczYWUxM2Y4ZGI1ODIwMGRiNGRiCkcKGWdvdF9zcmNfaW50ZXJuYWxfcmV2aXNpb24SKhooZjUwZjMyYWUwMjA4YmViMTMwMmZlYzIyNTgyYWI2YzhkMzZiYTVlYgpGChhnb3Rfc3dpZnRzaGFkZXJfcmV2aXNpb24SKhooNjJjNTljNDFlMTk0YzI4OGMwNjczOTc4OGJiMGFhZDNjODZiMTliZgrWAQo4c3dhcm1faGFzaGVzX3JlZnMvaGVhZHMvbWFpbihhdCl7IzEyODcwODh9X3dpdGhvdXRfcGF0Y2gSmQEqlgEKkwEKSXBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGVfYW5kcm9pZF9jbGFua190cmljaHJvbWVfY2hyb21lX2dvb2dsZV82NF8zMl9idW5kbGUSRhpEOGQ4MWMyMzQ4MTU0OTkzMzRmMTEzMDM5OTFlNjZhNzM4NGE2Njg1OTc0ODg0YWNiZmYyZjc3YmJiN2FlM2VjYS84MTAKQQoTZ290X3dlYnJ0Y19yZXZpc2lvbhIqGigzNTJiZmUzYzQ0YzNiYWYxZjE2YTE4ZjkxMmI4YjE2MmNhNTgxYzU0CoYBChFidWlsZF9hcmNoaXZlX3VybBJxGm9nczovL2Nocm9tZS10ZXN0LWJ1aWxkcy9vZmZpY2lhbC1ieS1jb21taXQvYW5kcm9pZF9hcm02NF9oaWdoX2VuZC1idWlsZGVyLXBlcmYtcGdvL2Z1bGwtYnVpbGQtbGludXhfMTI4NzA4OC56aXAKPwoRZ290X2Rhd25fcmV2aXNpb24SKhooZmI5N2QwNGMwYzJlMjMwN2RjMTFhOWQ5ZGU0ZWFiNjA3YWYxMTFmOQowChJnb3RfdjhfcmV2aXNpb25fY3ASGhoYcmVmcy9oZWFkcy8xMi41LjIyN0B7IzF9CkAKEmdvdF9hbmdsZV9yZXZpc2lvbhIqGihlMjI5YWZhZGExZDJhZjAxMmI3ZWM1NTM5NWQxMGY1M2YxZWJmZTYwCh8KD2dpdF9jYWNoZV9lcG9jaBIMGgoxNzEyODY5NTY0CjoKDGdvdF9yZXZpc2lvbhIqGihhNzYzNjc5MTc3M2RmYmFjOWFlOWI2YzJlZTlmMGVjZDVlODJmNTllCp4BCiIkcmVjaXBlX2VuZ2luZS9taWxvL2JsYW1lbGlzdF9waW5zEngydgp0KnIKMAoCaWQSKhooYTc2MzY3OTE3NzNkZmJhYzlhZTliNmMyZWU5ZjBlY2Q1ZTgyZjU5ZQoZCgdwcm9qZWN0Eg4aDGNocm9taXVtL3NyYwojCgRob3N0EhsaGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb22SATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OGY2ZGQ5NTk1NWRjZDEw" } }, { - "ID": "cbe1237ad144b459", + "ID": "08a3f89714927599", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -332,7 +332,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -343,7 +343,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CNGq8p6v56a4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CNGq8p6v56a4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -353,19 +353,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "57" + "1231" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:19 GMT" + "Thu, 18 Apr 2024 02:18:38 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "58a31d4bda977eb87c56e8e16dd56c9b" + "66961a7b4eab1d3afc84e4cb2d1382a4" ], "X-Content-Type-Options": [ "nosniff" @@ -374,11 +374,11 @@ "0" ] }, - "Body": "YAySATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OGY2NGM1N2I2NjVjMjEw" + "Body": "YAyCAZIJCo8JCh8KD2dpdF9jYWNoZV9lcG9jaBIMGgoxNjg2ODUzMTQ2CkEKE2dvdF93ZWJydGNfcmV2aXNpb24SKhooMzUyYmZlM2M0NGMzYmFmMWYxNmExOGY5MTJiOGIxNjJjYTU4MWM1NApHChlnb3Rfc3JjX2ludGVybmFsX3JldmlzaW9uEioaKGY1MGYzMmFlMDIwOGJlYjEzMDJmZWMyMjU4MmFiNmM4ZDM2YmE1ZWIKNAoOY2xhbmdfcmV2aXNpb24SIhogbGx2bW9yZy0xOS1pbml0LTgwOTEtZ2FiMDM3YzRmLTEKngEKIiRyZWNpcGVfZW5naW5lL21pbG8vYmxhbWVsaXN0X3BpbnMSeDJ2CnQqcgoZCgdwcm9qZWN0Eg4aDGNocm9taXVtL3NyYwojCgRob3N0EhsaGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20KMAoCaWQSKhooYzdlMDA3MmU5NjgzODc0NDQ0ODMwYTdlYzFmMWQxY2I4NzRmZmU0OQo0ChZnb3Rfd2VicnRjX3JldmlzaW9uX2NwEhoaGHJlZnMvaGVhZHMvbWFpbkB7IzQyMDU5fQo9Cg9nb3RfdjhfcmV2aXNpb24SKhooMTViOTc1NjQ4NGQ1YmRhOThiYTI3M2FlMTNmOGRiNTgyMDBkYjRkYgowChJnb3RfdjhfcmV2aXNpb25fY3ASGhoYcmVmcy9oZWFkcy8xMi41LjIyN0B7IzF9CnUKEWJ1aWxkX2FyY2hpdmVfdXJsEmAaXmdzOi8vY2hyb21lLXRlc3QtYnVpbGRzL29mZmljaWFsLWJ5LWNvbW1pdC9tYWMtYXJtLWJ1aWxkZXItcGVyZi1wZ28vZnVsbC1idWlsZC1tYWNfMTI4NzA3Ni56aXAKoQEKOHN3YXJtX2hhc2hlc19yZWZzL2hlYWRzL21haW4oYXQpeyMxMjg3MDc2fV93aXRob3V0X3BhdGNoEmUqYwphChZwZXJmb3JtYW5jZV90ZXN0X3N1aXRlEkcaRTAwMDRjMTdiOTVmODgyZWNkMTFlOTc2ZWEzNTVmODU0N2JlMDg5OTczOTEzY2Y1YzI2OGFmMzY0ZjAxNGJiYWQvMTIxNQo6Cgxnb3RfcmV2aXNpb24SKhooYzdlMDA3MmU5NjgzODc0NDQ0ODMwYTdlYzFmMWQxY2I4NzRmZmU0OQo/ChFnb3RfZGF3bl9yZXZpc2lvbhIqGihmYjk3ZDA0YzBjMmUyMzA3ZGMxMWE5ZDlkZTRlYWI2MDdhZjExMWY5Ci8KD2dvdF9yZXZpc2lvbl9jcBIcGhpyZWZzL2hlYWRzL21haW5AeyMxMjg3MDc2fQpGChhnb3Rfc3dpZnRzaGFkZXJfcmV2aXNpb24SKhooNjJjNTljNDFlMTk0YzI4OGMwNjczOTc4OGJiMGFhZDNjODZiMTliZgpAChJnb3RfYW5nbGVfcmV2aXNpb24SKhooZTIyOWFmYWRhMWQyYWYwMTJiN2VjNTUzOTVkMTBmNTNmMWViZmU2MAoPCglpc19jYWNoZWQSAiABkgE0OjISMAouChpzd2FybWluZzovL2Nocm9tZS1zd2FybWluZxIQNjhmNjRjNTdiNjY1YzIxMA==" } }, { - "ID": "9c3f6b774b1d6ed1", + "ID": "47d3fd9698c5af81", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -390,7 +390,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -401,7 +401,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CPHLhLvggqS4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CPHLhLvggqS4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -411,19 +411,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "57" + "811" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:19 GMT" + "Thu, 18 Apr 2024 02:18:38 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "71c7706ff33d42f5b6b4defb88fe5289" + "b82fac36e8d9535a438e383206dd126e" ], "X-Content-Type-Options": [ "nosniff" @@ -432,11 +432,11 @@ "0" ] }, - "Body": "YAySATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OGY2ZmVhMzMyM2YzNTEw" + "Body": "YAyCAe4FCusFCj8KEWdvdF9kYXduX3JldmlzaW9uEioaKGZiOTdkMDRjMGMyZTIzMDdkYzExYTlkOWRlNGVhYjYwN2FmMTExZjkKPQoPZ290X3Y4X3JldmlzaW9uEioaKDE1Yjk3NTY0ODRkNWJkYTk4YmEyNzNhZTEzZjhkYjU4MjAwZGI0ZGIKOgoMZ290X3JldmlzaW9uEioaKGE0OTJkYzQyNzM5MDA2OTllMTIwOTg2ZWJiNGRmMTI3ZDdkNWYwMzQKQAoSZ290X2FuZ2xlX3JldmlzaW9uEioaKGUyMjlhZmFkYTFkMmFmMDEyYjdlYzU1Mzk1ZDEwZjUzZjFlYmZlNjAKLwoPZ290X3JldmlzaW9uX2NwEhwaGnJlZnMvaGVhZHMvbWFpbkB7IzEyODcwOTB9Ch8KD2dpdF9jYWNoZV9lcG9jaBIMGgoxNzEyNjcwNTk5CjQKFmdvdF93ZWJydGNfcmV2aXNpb25fY3ASGhoYcmVmcy9oZWFkcy9tYWluQHsjNDIwNTl9CkEKE2dvdF93ZWJydGNfcmV2aXNpb24SKhooMzUyYmZlM2M0NGMzYmFmMWYxNmExOGY5MTJiOGIxNjJjYTU4MWM1NApMCgt0ZXN0X3N0YXR1cxI9KjsKOQoscGVyZm9ybWFuY2VfdGVzdF9zdWl0ZSBvbiBBTUQgR1BVIG9uIFdpbmRvd3MSCRoHU3VjY2VzcwpGChhnb3Rfc3dpZnRzaGFkZXJfcmV2aXNpb24SKhooNjJjNTljNDFlMTk0YzI4OGMwNjczOTc4OGJiMGFhZDNjODZiMTliZgoPCglpc19jYWNoZWQSAiABCjAKEmdvdF92OF9yZXZpc2lvbl9jcBIaGhhyZWZzL2hlYWRzLzEyLjUuMjI3QHsjMX0KRwoZZ290X3NyY19pbnRlcm5hbF9yZXZpc2lvbhIqGihmNTBmMzJhZTAyMDhiZWIxMzAyZmVjMjI1ODJhYjZjOGQzNmJhNWVikgE0OjISMAouChpzd2FybWluZzovL2Nocm9tZS1zd2FybWluZxIQNjhmNmZlYTMzMjNmMzUxMA==" } }, { - "ID": "62b38cfb10deaf95", + "ID": "49a682b83678241a", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -448,7 +448,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -459,7 +459,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CNGTtKed3qS4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CNGTtKed3qS4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -469,19 +469,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "57" + "827" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:19 GMT" + "Thu, 18 Apr 2024 02:18:38 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "877f57be49b8a2388f77f1da3f9df01c" + "d9bb25620feff598757e7d6d25f1eec9" ], "X-Content-Type-Options": [ "nosniff" @@ -490,11 +490,11 @@ "0" ] }, - "Body": "YBSSATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OGY2ZDBlNjlhNmQ3MDEw" + "Body": "YBSCAf4FCvsFCjAKEmdvdF92OF9yZXZpc2lvbl9jcBIaGhhyZWZzL2hlYWRzLzEyLjUuMjI3QHsjMX0KXAoLdGVzdF9zdGF0dXMSTSpLCkkKPHBlcmZvcm1hbmNlX3dlYnZpZXdfdGVzdF9zdWl0ZSBvbiBBbmRyb2lkIGRldmljZSB3ZW1ibGV5XzJHQhIJGgdGYWlsdXJlCj0KD2dvdF92OF9yZXZpc2lvbhIqGigxNWI5NzU2NDg0ZDViZGE5OGJhMjczYWUxM2Y4ZGI1ODIwMGRiNGRiCh8KD2dpdF9jYWNoZV9lcG9jaBIMGgoxNzEyNTYwMjY0Ci8KD2dvdF9yZXZpc2lvbl9jcBIcGhpyZWZzL2hlYWRzL21haW5AeyMxMjg3MDgyfQoPCglpc19jYWNoZWQSAiABCkcKGWdvdF9zcmNfaW50ZXJuYWxfcmV2aXNpb24SKhooZjUwZjMyYWUwMjA4YmViMTMwMmZlYzIyNTgyYWI2YzhkMzZiYTVlYgo0ChZnb3Rfd2VicnRjX3JldmlzaW9uX2NwEhoaGHJlZnMvaGVhZHMvbWFpbkB7IzQyMDU5fQo6Cgxnb3RfcmV2aXNpb24SKhooOTllODgzMmRiZTBjNzZlMmE4ODMxNWRkNDU4MGNjNjJkYzY3ZDI3NApGChhnb3Rfc3dpZnRzaGFkZXJfcmV2aXNpb24SKhooNjJjNTljNDFlMTk0YzI4OGMwNjczOTc4OGJiMGFhZDNjODZiMTliZgo/ChFnb3RfZGF3bl9yZXZpc2lvbhIqGihmYjk3ZDA0YzBjMmUyMzA3ZGMxMWE5ZDlkZTRlYWI2MDdhZjExMWY5CkAKEmdvdF9hbmdsZV9yZXZpc2lvbhIqGihlMjI5YWZhZGExZDJhZjAxMmI3ZWM1NTM5NWQxMGY1M2YxZWJmZTYwCkEKE2dvdF93ZWJydGNfcmV2aXNpb24SKhooMzUyYmZlM2M0NGMzYmFmMWYxNmExOGY5MTJiOGIxNjJjYTU4MWM1NJIBNDoyEjAKLgoac3dhcm1pbmc6Ly9jaHJvbWUtc3dhcm1pbmcSEDY4ZjZkMGU2OWE2ZDcwMTA=" } }, { - "ID": "ffc7d69898b4716f", + "ID": "fe497616bad19045", "Request": { "Method": "POST", "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", @@ -506,7 +506,7 @@ "gzip" ], "Content-Length": [ - "46" + "65" ], "User-Agent": [ "pRPC Client 1.4" @@ -517,7 +517,7 @@ }, "MediaType": "application/prpc", "BodyParts": [ - "CLH468nugaW4eaoGIQofCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZA==" + "CLH468nugaW4eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" ] }, "Response": { @@ -527,19 +527,19 @@ "ProtoMinor": 1, "Header": { "Content-Length": [ - "57" + "867" ], "Content-Type": [ "application/prpc; encoding=binary" ], "Date": [ - "Mon, 15 Apr 2024 05:51:19 GMT" + "Thu, 18 Apr 2024 02:18:38 GMT" ], "Server": [ "Google Frontend" ], "X-Cloud-Trace-Context": [ - "c0aad0705d769e96993cd522a4716a45" + "4b591a93bf334cb0074f6361e75b7480" ], "X-Content-Type-Options": [ "nosniff" @@ -548,7 +548,7 @@ "0" ] }, - "Body": "YCSSATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OGY2YmYxNjZjYTU4ODEw" + "Body": "YCSCAaYGCqMGCj8KEWdvdF9kYXduX3JldmlzaW9uEioaKGZiOTdkMDRjMGMyZTIzMDdkYzExYTlkOWRlNGVhYjYwN2FmMTExZjkKLwoPZ290X3JldmlzaW9uX2NwEhwaGnJlZnMvaGVhZHMvbWFpbkB7IzEyODcwODF9Cg8KCWlzX2NhY2hlZBICIAEKRgoYZ290X3N3aWZ0c2hhZGVyX3JldmlzaW9uEioaKDYyYzU5YzQxZTE5NGMyODhjMDY3Mzk3ODhiYjBhYWQzYzg2YjE5YmYKNAoWZ290X3dlYnJ0Y19yZXZpc2lvbl9jcBIaGhhyZWZzL2hlYWRzL21haW5AeyM0MjA1OX0KMAoSZ290X3Y4X3JldmlzaW9uX2NwEhoaGHJlZnMvaGVhZHMvMTIuNS4yMjdAeyMxfQqDAQoLdGVzdF9zdGF0dXMSdCpyCnAKY3BlcmZvcm1hbmNlX3Rlc3Rfc3VpdGVfYW5kcm9pZF9jbGFua190cmljaHJvbWVfY2hyb21lX2dvb2dsZV82NF8zMl9idW5kbGUgb24gQW5kcm9pZCBkZXZpY2UgUGl4ZWwgNhIJGgdGYWlsdXJlCh8KD2dpdF9jYWNoZV9lcG9jaBIMGgoxNzEyOTI0MDk3Cj0KD2dvdF92OF9yZXZpc2lvbhIqGigxNWI5NzU2NDg0ZDViZGE5OGJhMjczYWUxM2Y4ZGI1ODIwMGRiNGRiCkEKE2dvdF93ZWJydGNfcmV2aXNpb24SKhooMzUyYmZlM2M0NGMzYmFmMWYxNmExOGY5MTJiOGIxNjJjYTU4MWM1NApHChlnb3Rfc3JjX2ludGVybmFsX3JldmlzaW9uEioaKGY1MGYzMmFlMDIwOGJlYjEzMDJmZWMyMjU4MmFiNmM4ZDM2YmE1ZWIKOgoMZ290X3JldmlzaW9uEioaKGZmYjVhYzZmMmIwMTE2MGIyZTBmZTZlMDQ3Y2I3MDQ3NWNiZDFiZmIKQAoSZ290X2FuZ2xlX3JldmlzaW9uEioaKGUyMjlhZmFkYTFkMmFmMDEyYjdlYzU1Mzk1ZDEwZjUzZjFlYmZlNjCSATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OGY2YmYxNjZjYTU4ODEw" } } ]
diff --git a/perf/go/perfresults/testdata/LoadPerfResults_InvalidBuildID.json b/perf/go/perfresults/testdata/LoadPerfResults_InvalidBuildID.json new file mode 100644 index 0000000..ecdb06d --- /dev/null +++ b/perf/go/perfresults/testdata/LoadPerfResults_InvalidBuildID.json
@@ -0,0 +1,97 @@ +{ + "Initial": null, + "Version": "0.2", + "Converter": { + "ClearHeaders": [ + "^X-Goog-.*Encryption-Key$" + ], + "RemoveRequestHeaders": [ + "^Authorization$", + "^Proxy-Authorization$", + "^Connection$", + "^Content-Type$", + "^Date$", + "^Host$", + "^Transfer-Encoding$", + "^Via$", + "^X-Forwarded-.*$", + "^X-Cloud-Trace-Context$", + "^X-Goog-Api-Client$", + "^X-Goog-Gcs-Idempotency-Token$", + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "RemoveResponseHeaders": [ + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "ClearParams": null, + "RemoveParams": null + }, + "Entries": [ + { + "ID": "de4043f96385ccbe", + "Request": { + "Method": "POST", + "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "62" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "CKqfv8m7GaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "text/plain" + ], + "Date": [ + "Tue, 23 Apr 2024 17:45:37 GMT" + ], + "Server": [ + "Google Frontend" + ], + "Vary": [ + "Accept-Encoding" + ], + "X-Cloud-Trace-Context": [ + "61937745f01add7dc2fd4df51b897e6d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "5" + ] + }, + "Body": "H4sIAAAAAAAEAxzKwQ2AIBAEwL9VbCjAAnzZCpFVSJTVO5D2TZz3GJ9Ob0wwurptRFXDrl4TZAjdaUuOGtJ6SMfJedMVkET/a44vcdOu4l5U0YS3cKC06QMAAP//AwDSwDpIXQAAAA==" + } + } + ] +} \ No newline at end of file
diff --git a/perf/go/perfresults/testdata/LoadPerfResults_NoChildRuns.json b/perf/go/perfresults/testdata/LoadPerfResults_NoChildRuns.json new file mode 100644 index 0000000..054cf3e --- /dev/null +++ b/perf/go/perfresults/testdata/LoadPerfResults_NoChildRuns.json
@@ -0,0 +1,219 @@ +{ + "Initial": null, + "Version": "0.2", + "Converter": { + "ClearHeaders": [ + "^X-Goog-.*Encryption-Key$" + ], + "RemoveRequestHeaders": [ + "^Authorization$", + "^Proxy-Authorization$", + "^Connection$", + "^Content-Type$", + "^Date$", + "^Host$", + "^Transfer-Encoding$", + "^Via$", + "^X-Forwarded-.*$", + "^X-Cloud-Trace-Context$", + "^X-Goog-Api-Client$", + "^X-Goog-Gcs-Idempotency-Token$", + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "RemoveResponseHeaders": [ + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "ClearParams": null, + "RemoveParams": null + }, + "Entries": [ + { + "ID": "d8bbaf837aaf1235", + "Request": { + "Method": "POST", + "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "65" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "CKH/q8iemO62eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Content-Length": [ + "732" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:45:46 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "ecea01404452d47cfbe7f4016626ddec" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "YAyCAZ8FCpwFCkEKE2dvdF93ZWJydGNfcmV2aXNpb24SKhooMTVmNDBlYzJmYzRiNjRkZTM5MWJhZmY5MGY2MzE4OTM3YWYwMjBiYgo6Cgxnb3RfcmV2aXNpb24SKhooYzg0NWVhMTgxNzYzOTgwMmU1MjgxNWIwYTQwMTM5MWVhNWQ3MjI4MgofCg9naXRfY2FjaGVfZXBvY2gSDBoKMTcxMzg3NTg2MApHChlnb3Rfc3JjX2ludGVybmFsX3JldmlzaW9uEioaKGE5NjEwYzlhNDc3YTFlZjAyYmRiZmQ5MDIxZGI0MmU0YjlhZjlkNmIKDwoJaXNfY2FjaGVkEgIgAQovChJnb3RfdjhfcmV2aXNpb25fY3ASGRoXcmVmcy9oZWFkcy8xMi42LjcxQHsjMX0KNAoWZ290X3dlYnJ0Y19yZXZpc2lvbl9jcBIaGhhyZWZzL2hlYWRzL21haW5AeyM0MjE0MX0KRgoYZ290X3N3aWZ0c2hhZGVyX3JldmlzaW9uEioaKDlhZWM0Yjk2OTI5MWYwYTIxOGI1MzdmNDRmOGExMzg3Y2Y0OTQzMTYKLwoPZ290X3JldmlzaW9uX2NwEhwaGnJlZnMvaGVhZHMvbWFpbkB7IzEyOTExMjh9CkAKEmdvdF9hbmdsZV9yZXZpc2lvbhIqGig2ZmU4YTM5OWRkN2ZkNWRkN2ZlMmQ4ZTRlYWU4MWE1YjVmNTg2YWE5Cj8KEWdvdF9kYXduX3JldmlzaW9uEioaKDEyMzg1NDJiZWEwODk1MTQzZmRjODllYzk0MDM5ZWYyOWY5NGEwNTQKPQoPZ290X3Y4X3JldmlzaW9uEioaKGVlN2ZlMmY2YTExNmQ3MzE3MzFlNzQzNWNiMzc3ZDQ1ODVhNzE1NjaSATQ6MhIwCi4KGnN3YXJtaW5nOi8vY2hyb21lLXN3YXJtaW5nEhA2OTI0NzNlNGM5YjhkNDEw" + } + }, + { + "ID": "2efbfef4111b7f94", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/GetResult", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "18" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "ChA2OTI0NzNlNGM5YjhkNDEw" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "2547" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:45:46 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "46b0277a043a0e3af8d72ad24752d861" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "ChA2OTI0NzNlNGM5YjhkNDEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSEAoLYnVpbGRlcmxlc3MSATES9QEKBmNhY2hlcxJLYnVpbGRlcl84ZTBhMjViMzkyNzY3MGZjNmI3YjJiYTEzNmUzZWRkNzdkMWRjMGQ5Y2FlYjNkNDg1NGNiMTVkZmM4YWRkODBjX3YyEktjaXBkX2NhY2hlX2Y3ZjYxZjgyODRjZDBhOWU1YjBlYWRlYTg2ODZjYjU5NzU3ZGI4OTNjODEwYzJhYTY2Njk4NzkxNDk3YzRhMjISTGNpcGRfY2xpZW50Xzk0ZDA3NTExNGNjYjZkNjRhYzBkMzU3ZWNiNDAyODlkNTQwNTNkN2UwMzY0NGRkNzI5NGZkMjg5NjI5YzZjZTASA2dpdBIcCg1jaXBkX3BsYXRmb3JtEgtsaW51eC1hbWQ2NBIKCgVjb3JlcxIBOBI1CgNjcHUSA3g4NhIGeDg2LTY0EhR4ODYtNjQtQnJvYWR3ZWxsX0dDRRILeDg2LTY0LWF2eDISFQoQZGlzcGxheV9hdHRhY2hlZBIBMBIICgNnY2USATESHwoDZ2NwEhhnb29nbGUuY29tOmNocm9tZWNvbXB1dGUSCwoDZ3B1EgRub25lEikKAmlkEiNyZXN1bHQtcHJvY2Vzc29yLXBlcmYtamFtbXktMTAtcHdmeRIqCgVpbWFnZRIhY2hyb21lLWphbW15LTI0MDQxOTAwLWUxNzE2NzFjYjdmEhIKDWluc2lkZV9kb2NrZXISATASGgoGa2VybmVsEhA2LjUuMC0yMS1nZW5lcmljEggKA2t2bRIBMRIVCgZsb2NhbGUSC2VuX1VTLlVURi04Eh0KDG1hY2hpbmVfdHlwZRINbjEtc3RhbmRhcmQtOBI8CgJvcxIFTGludXgSBlVidW50dRIJVWJ1bnR1LTIyEgxVYnVudHUtMjIuMDQSDlVidW50dS0yMi4wNC4zEhsKBHBvb2wSE2x1Y2kuY2hyb21lLnBlcmYuY2kSGAoKcHVwcGV0X2VudhIKcHJvZHVjdGlvbhIkCgZweXRob24SATMSAzMuOBISMy44LjEwK2Nocm9taXVtLjIzEh4KDnNlcnZlcl92ZXJzaW9uEgw3NjExLTBlNjE0YjgSCAoDc3NkEgEwEikKBHpvbmUSAnVzEgd1cy13ZXN0Egh1cy13ZXN0MRIKdXMtd2VzdDEtYhojcmVzdWx0LXByb2Nlc3Nvci1wZXJmLWphbW15LTEwLXB3ZnkiCwjli5+xBhDYxaZFKkBlOTU4YTZhOTZmYmE4Y2Q5OTUzYjE0NmVjM2Q0MGFjYTQ4M2ZmODQzNGUxODgyOWM3NWQ1NzQ3YjBhYzM2ZDQxMhhnb29nbGUuY29tOmNocm9tZWNvbXB1dGVCDAizuZ+xBhD42Lm9AVILCKWvn7EGEMjn9hBluJafRIIBDAizuZ+xBhD42Lm9AZIBDDc2MTEtMGU2MTRiOJoBDAilr5+xBhDQj5GeAqABcLIBBKvqGD66AURiYi04NzQ5ODUyNzk0MDI4NzUyODAxLWNocm9tZS9jaS9hbmRyb2lkLXBpeGVsMi1wcm9jZXNzb3ItcGVyZi0yOTE4NcIBHGF1dGhlbnRpY2F0ZWQ6cHJvamVjdDpjaHJvbWXCAUBidWlsZF9hZGRyZXNzOmx1Y2kuY2hyb21lLmNpL2FuZHJvaWQtcGl4ZWwyLXByb2Nlc3Nvci1wZXJmLzI5MTg1wgEcYnVpbGRidWNrZXRfYnVja2V0OmNocm9tZS9jacIBKGJ1aWxkYnVja2V0X2J1aWxkX2lkOjg3NDk4NTI3OTQwMjg3NTI4MDHCAS9idWlsZGJ1Y2tldF9ob3N0bmFtZTpjci1idWlsZGJ1Y2tldC5hcHBzcG90LmNvbcIBHWJ1aWxkYnVja2V0X3RlbXBsYXRlX2NhbmFyeTowwgElYnVpbGRlcjphbmRyb2lkLXBpeGVsMi1wcm9jZXNzb3ItcGVyZsIBDWJ1aWxkZXJsZXNzOjHCAWlidWlsZHNldDpjb21taXQvZ2l0aWxlcy9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYy8rL2M4NDVlYTE4MTc2Mzk4MDJlNTI4MTViMGE0MDEzOTFlYTVkNzIyODLCAVJjYWNoZXM6YnVpbGRlcl84ZTBhMjViMzkyNzY3MGZjNmI3YjJiYTEzNmUzZWRkNzdkMWRjMGQ5Y2FlYjNkNDg1NGNiMTVkZmM4YWRkODBjX3YywgEHY29yZXM6OMIBCmNwdTp4ODYtNjTCARtnaXRpbGVzX3JlZjpyZWZzL2hlYWRzL21haW7CARNsdWNpX3Byb2plY3Q6Y2hyb21lwgEPb3M6VWJ1bnR1LTIyLjA0wgEmcGFyZW50X2J1aWxkZXJuYW1lOmFuZHJvaWQtcGl4ZWwyLXBlcmbCARhwYXJlbnRfYnVpbGRudW1iZXI6Mzg1NzfCARhwb29sOmx1Y2kuY2hyb21lLnBlcmYuY2nCAQtwcmlvcml0eTozMMIBN3JiZTpwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2XCAQ9yZWFsbTpjaHJvbWU6Y2nCAStzY2hlZHVsZXJfaW52b2NhdGlvbl9pZDo4OTE1MjgyODU1OTc4MTc4ODY0wgE1c2NoZWR1bGVyX2pvYl9pZDpjaHJvbWUvYW5kcm9pZC1waXhlbDItcHJvY2Vzc29yLXBlcmbCAVBzZXJ2aWNlX2FjY291bnQ6Y2hyb21lLWNpLWJ1aWxkZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBBXNzZDowwgEbc3dhcm1pbmcucG9vbC50ZW1wbGF0ZTpza2lwwgE+c3dhcm1pbmcucG9vbC52ZXJzaW9uOjJhMTcwNmQzZWFjODE0OGRmZDA0NWU2OGQ5NTg3YzAyNDYyZTc3NGbCAQl1c2VyOm5vbmXCARl1c2VyX2FnZW50Omx1Y2ktc2NoZWR1bGVywgERdXNlcl9hZ2VudDpyZWNpcGXaAacBCkwKHGluZnJhL3Rvb2xzL2NpcGQvbGludXgtYW1kNjQSLFBqbVEtbml1NUh5bWpEUFd2SWZRMmp0eUlPU2RIc0lKNjNQVTdHbDRNTGtDElcKJGluZnJhL3Rvb2xzL2x1Y2kvYmJhZ2VudC9saW51eC1hbWQ2NBIsYkZ6MjhMS0tkejBtRjhNU1daWWtOSVZkZjhMVVFlRVBlcThGWWJ4NnRoWUMaAS7iARA2OTI0NzNlNGM5YjhkNDEx" + } + }, + { + "ID": "3ad09827e7545721", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/ListTasks", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "65" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "COgHGgsIpa+fsQYQyOf2ECIMCLO5n7EGEPjYub0BKAo6H3BhcmVudF90YXNrX2lkOjY5MjQ3M2U0YzliOGQ0MTE=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "14" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:45:46 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "8345c82426fdf9e77e60eab9a163c01d" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "GgwIyuefsQYQ4Jak5QI=" + } + } + ] +} \ No newline at end of file
diff --git a/perf/go/perfresults/testdata/LoadPerfResults_ValidFullResults.json b/perf/go/perfresults/testdata/LoadPerfResults_ValidFullResults.json new file mode 100644 index 0000000..feafdf9 --- /dev/null +++ b/perf/go/perfresults/testdata/LoadPerfResults_ValidFullResults.json
@@ -0,0 +1,475 @@ +{ + "Initial": null, + "Version": "0.2", + "Converter": { + "ClearHeaders": [ + "^X-Goog-.*Encryption-Key$" + ], + "RemoveRequestHeaders": [ + "^Authorization$", + "^Proxy-Authorization$", + "^Connection$", + "^Content-Type$", + "^Date$", + "^Host$", + "^Transfer-Encoding$", + "^Via$", + "^X-Forwarded-.*$", + "^X-Cloud-Trace-Context$", + "^X-Goog-Api-Client$", + "^X-Goog-Gcs-Idempotency-Token$", + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "RemoveResponseHeaders": [ + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "ClearParams": null, + "RemoveParams": null + }, + "Entries": [ + { + "ID": "d835c5285b5c5af9", + "Request": { + "Method": "POST", + "URL": "https://cr-buildbucket.appspot.com:443/prpc/buildbucket.v2.Builds/GetBuild", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "65" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "COHksZv+tPe2eaoGNAoyCgZzdGF0dXMKFWluZnJhLmJhY2tlbmQudGFzay5pZAoRb3V0cHV0LnByb3BlcnRpZXM=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Content-Length": [ + "788" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:46:40 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "a681adf3fbb0360454d8401b7c42ccc8" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "YAyCAdcFCtQFCkEKE2dvdF93ZWJydGNfcmV2aXNpb24SKhooMTVmNDBlYzJmYzRiNjRkZTM5MWJhZmY5MGY2MzE4OTM3YWYwMjBiYgpGChhnb3Rfc3dpZnRzaGFkZXJfcmV2aXNpb24SKhooOWFlYzRiOTY5MjkxZjBhMjE4YjUzN2Y0NGY4YTEzODdjZjQ5NDMxNgo6Cgxnb3RfcmV2aXNpb24SKhooOTU4ZDI0ODk4ZDE4YzNmY2QzY2VmZGI3Yzk5NGIzOTY3MjI2MTgxMwovCg9nb3RfcmV2aXNpb25fY3ASHBoacmVmcy9oZWFkcy9tYWluQHsjMTI5MTA0MH0KPQoPZ290X3Y4X3JldmlzaW9uEioaKDI4MDBlMzE5MGQ3MWExMjFmZDFjY2VmMTg3OTc0MzU3YzEyOTU2ZDMKNgoLdGVzdF9zdGF0dXMSJyolCiMKFnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGUSCRoHU3VjY2VzcwofCg9naXRfY2FjaGVfZXBvY2gSDBoKMTcxMzYzODk3MApAChJnb3RfYW5nbGVfcmV2aXNpb24SKhooMjkwNWE2YTZlMjk5OTEwYWE5ZjQ3MmRjMTFjMDZmNmIyMjU2MWYwOQo/ChFnb3RfZGF3bl9yZXZpc2lvbhIqGihiYzk5MzU2YjFkZTAyOTYwNDNhZWJhYjc5Yjk0NTFkMDI1YzI3M2M1CjQKFmdvdF93ZWJydGNfcmV2aXNpb25fY3ASGhoYcmVmcy9oZWFkcy9tYWluQHsjNDIxNDF9Ci8KEmdvdF92OF9yZXZpc2lvbl9jcBIZGhdyZWZzL2hlYWRzLzEyLjYuNjhAeyMxfQpHChlnb3Rfc3JjX2ludGVybmFsX3JldmlzaW9uEioaKGE5NjEwYzlhNDc3YTFlZjAyYmRiZmQ5MDIxZGI0MmU0YjlhZjlkNmIKDwoJaXNfY2FjaGVkEgIgAZIBNDoyEjAKLgoac3dhcm1pbmc6Ly9jaHJvbWUtc3dhcm1pbmcSEDY5MjIyNTg0MDJlNTQ5MTA=" + } + }, + { + "ID": "adce38bc25347382", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/GetResult", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "18" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "ChA2OTIyMjU4NDAyZTU0OTEw" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "2550" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:46:42 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "5cba69856b7eacee27708ad1a57cc325" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "ChA2OTIyMjU4NDAyZTU0OTEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSJAoHYnVpbGRlchIZbWFjLW0xX21pbmlfMjAyMC1wZXJmLXBnbxL1AQoGY2FjaGVzEktidWlsZGVyX2I1OTlhNzY5NDM0MDljYTU4ZmZiNzc1YzMyNDY3YzBmMmFkZWJlZmE4YWU3NGJhN2RhNWNlOWEwZjNhNmJmYjBfdjISS2NpcGRfY2FjaGVfZjdmNjFmODI4NGNkMGE5ZTViMGVhZGVhODY4NmNiNTk3NTdkYjg5M2M4MTBjMmFhNjY2OTg3OTE0OTdjNGEyMhJMY2lwZF9jbGllbnRfOTRkMDc1MTE0Y2NiNmQ2NGFjMGQzNTdlY2I0MDI4OWQ1NDA1M2Q3ZTAzNjQ0ZGQ3Mjk0ZmQyODk2MjljNmNlMBIDZ2l0EhwKDWNpcGRfcGxhdGZvcm0SC2xpbnV4LWFtZDY0EgoKBWNvcmVzEgE0EjUKA2NwdRIDeDg2EgZ4ODYtNjQSFHg4Ni02NC1Ccm9hZHdlbGxfR0NFEgt4ODYtNjQtYXZ4MhIVChBkaXNwbGF5X2F0dGFjaGVkEgEwEggKA2djZRIBMRIfCgNnY3ASGGdvb2dsZS5jb206Y2hyb21lY29tcHV0ZRILCgNncHUSBG5vbmUSNQoCaWQSL2x1Y2ktY2hyb21lLWNpLW1hYy1tMS1taW5pLTIwMjAtcGdvLXBlcmYtMC1tMTNiEioKBWltYWdlEiFjaHJvbWUtamFtbXktMjQwNDE2MDAtNTZjYjI3NTA5ODESEgoNaW5zaWRlX2RvY2tlchIBMBIaCgZrZXJuZWwSEDYuNS4wLTIxLWdlbmVyaWMSCAoDa3ZtEgExEhUKBmxvY2FsZRILZW5fVVMuVVRGLTgSHQoMbWFjaGluZV90eXBlEg1uMS1zdGFuZGFyZC00EjwKAm9zEgVMaW51eBIGVWJ1bnR1EglVYnVudHUtMjISDFVidW50dS0yMi4wNBIOVWJ1bnR1LTIyLjA0LjMSGwoEcG9vbBITbHVjaS5jaHJvbWUucGVyZi5jaRIYCgpwdXBwZXRfZW52Egpwcm9kdWN0aW9uEiQKBnB5dGhvbhIBMxIDMy44EhIzLjguMTArY2hyb21pdW0uMjMSHgoOc2VydmVyX3ZlcnNpb24SDDc2MTEtMGU2MTRiOBIICgNzc2QSATASMgoEem9uZRICdXMSCnVzLWNlbnRyYWwSC3VzLWNlbnRyYWwxEg11cy1jZW50cmFsMS1iGi9sdWNpLWNocm9tZS1jaS1tYWMtbTEtbWluaS0yMDIwLXBnby1wZXJmLTAtbTEzYiILCK3ym7EGENjVx1QqQGU5NThhNmE5NmZiYThjZDk5NTNiMTQ2ZWMzZDQwYWNhNDgzZmY4NDM0ZTE4ODI5Yzc1ZDU3NDdiMGFjMzZkNDEyGGdvb2dsZS5jb206Y2hyb21lY29tcHV0ZUILCNWOnbEGEMDA5WlSCwiCgZ2xBhCg2vILZahN1USCAQsI1Y6dsQYQwMDlaZIBDDc2MTEtMGU2MTRiOJoBDAiCgZ2xBhCQmITVAaABcLIBBAs+0z26AT9iYi04NzQ5ODkzMzY0MTk1NTUzODg5LWNocm9tZS9jaS9tYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdvLTU2OTHCARxhdXRoZW50aWNhdGVkOnByb2plY3Q6Y2hyb21lwgE7YnVpbGRfYWRkcmVzczpsdWNpLmNocm9tZS5jaS9tYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdvLzU2OTHCARxidWlsZGJ1Y2tldF9idWNrZXQ6Y2hyb21lL2NpwgEoYnVpbGRidWNrZXRfYnVpbGRfaWQ6ODc0OTg5MzM2NDE5NTU1Mzg4OcIBL2J1aWxkYnVja2V0X2hvc3RuYW1lOmNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29twgEdYnVpbGRidWNrZXRfdGVtcGxhdGVfY2FuYXJ5OjDCASFidWlsZGVyOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CAWlidWlsZHNldDpjb21taXQvZ2l0aWxlcy9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYy8rLzk1OGQyNDg5OGQxOGMzZmNkM2NlZmRiN2M5OTRiMzk2NzIyNjE4MTPCAVJjYWNoZXM6YnVpbGRlcl9iNTk5YTc2OTQzNDA5Y2E1OGZmYjc3NWMzMjQ2N2MwZjJhZGViZWZhOGFlNzRiYTdkYTVjZTlhMGYzYTZiZmIwX3YywgEKY3B1Ong4Ni02NMIBG2dpdGlsZXNfcmVmOnJlZnMvaGVhZHMvbWFpbsIBE2x1Y2lfcHJvamVjdDpjaHJvbWXCAQ9vczpVYnVudHUtMjIuMDTCAStwYXJlbnRfYnVpbGRlcm5hbWU6bWFjLWFybS1idWlsZGVyLXBlcmYtcGdvwgEXcGFyZW50X2J1aWxkbnVtYmVyOjU5MjDCARhwb29sOmx1Y2kuY2hyb21lLnBlcmYuY2nCAQtwcmlvcml0eTozMMIBN3JiZTpwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2XCAQ9yZWFsbTpjaHJvbWU6Y2nCAStzY2hlZHVsZXJfaW52b2NhdGlvbl9pZDo4OTE1MzIzNDI2MDg3MjM5MzQ0wgExc2NoZWR1bGVyX2pvYl9pZDpjaHJvbWUvbWFjLW0xX21pbmlfMjAyMC1wZXJmLXBnb8IBUHNlcnZpY2VfYWNjb3VudDpjaHJvbWUtY2ktYnVpbGRlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgEbc3dhcm1pbmcucG9vbC50ZW1wbGF0ZTpza2lwwgE+c3dhcm1pbmcucG9vbC52ZXJzaW9uOjJhMTcwNmQzZWFjODE0OGRmZDA0NWU2OGQ5NTg3YzAyNDYyZTc3NGbCAQl1c2VyOm5vbmXCARl1c2VyX2FnZW50Omx1Y2ktc2NoZWR1bGVywgERdXNlcl9hZ2VudDpyZWNpcGXaAacBCkwKHGluZnJhL3Rvb2xzL2NpcGQvbGludXgtYW1kNjQSLFBqbVEtbml1NUh5bWpEUFd2SWZRMmp0eUlPU2RIc0lKNjNQVTdHbDRNTGtDElcKJGluZnJhL3Rvb2xzL2x1Y2kvYmJhZ2VudC9saW51eC1hbWQ2NBIsYkZ6MjhMS0tkejBtRjhNU1daWWtOSVZkZjhMVVFlRVBlcThGWWJ4NnRoWUMaAS7iARA2OTIyMjU4NDAyZTU0OTEx" + } + }, + { + "ID": "bcde8494c55d0fa2", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/ListTasks", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "64" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "COgHGgsIgoGdsQYQoNryCyILCNWOnbEGEMDA5WkoCjofcGFyZW50X3Rhc2tfaWQ6NjkyMjI1ODQwMmU1NDkxMQ==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "11910" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:46:45 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "05e8a11948d9b73599ce3e9bf1a21a29" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "EpwXChA2OTIyMmU0OTBlYjRiZjEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSJQoGY2FjaGVzEht0YXNrX3RlbXBsYXRlX3ZweXRob25fY2FjaGUSGgoNY2lwZF9wbGF0Zm9ybRIJbWFjLWFybTY0EgoKBWNvcmVzEgE4EjYKA2NwdRIDYXJtEgZhcm0tNjQSBWFybTY0Eghhcm02NC02NBIRYXJtNjQtNjQtQXBwbGVfTTESFQoQZGlzcGxheV9hdHRhY2hlZBIBMRISCglkdXRfc3RhdGUSBXJlYWR5EggKA2djZRIBMBIWCgNncHUSBWFwcGxlEghhcHBsZTptMRIKCgVoaWRwaRIBMBIPCgJpZBIJbWFjLTM2LWg3EhIKDWluc2lkZV9kb2NrZXISATASFwoJbWFjX21vZGVsEgpNYWNtaW5pOSwxEhwKDG1hY2hpbmVfdHlwZRIMbjEtaGlnaGNwdS04EjoKAm9zEgNNYWMSBk1hYy0xMxIITWFjLTEzLjMSCk1hYy0xMy4zLjESEU1hYy0xMy4zLjEtMjJFMjYxEh0KBHBvb2wSFWNocm9tZS50ZXN0cy5wZXJmLXBnbxIYCgpwdXBwZXRfZW52Egpwcm9kdWN0aW9uEhgKBnB5dGhvbhIBMxIDMy44EgYzLjguMTASHgoOc2VydmVyX3ZlcnNpb24SDDc2MTEtMGU2MTRiOBIICgNzc2QSATESEgoJdWZzX3N0YXRlEgVyZWFkeRIWCgh1ZnNfem9uZRIKWk9ORV9JQUQ5NxIvCgR6b25lEgJ1cxIGdXMtaWFkEgt1cy1pYWQtZ29sbxIOdXMtaWFkLWdvbG8taDcaCW1hYy0zNi1oNyILCJTum7EGEJCusmIqQGU5NThhNmE5NmZiYThjZDk5NTNiMTQ2ZWMzZDQwYWNhNDgzZmY4NDM0ZTE4ODI5Yzc1ZDU3NDdiMGFjMzZkNDEyEWNocm9tZS1pbmZyYS1sb2dzQgwIzoadsQYQkPTVkQJSDAjAhZ2xBhCgtsPsAmV03/JCggEMCM6GnbEGEJD01ZECigF8CjNwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2USRQpAYjY5Y2E5ZTNhMzkyZWFhYTYwNmM0MzkyOGFjNDNiYThiNWYwZGE5MWRiNWNmMjY3MTI2YzBlZGQ0MjBiYzEwMRC9A5IBDDc2MTEtMGU2MTRiOJoBDAjBhZ2xBhDIjtS+AaABcLIBBPONKj26AURwZXJmb3JtYW5jZV90ZXN0X3N1aXRlL01hYy83Njg5ODFhOTM2L21hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ28vNTY5McIBU2F1dGhlbnRpY2F0ZWQ6dXNlcjpjaHJvbWUtY2ktYnVpbGRlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgE3Ym90bmFtZTpsdWNpLWNocm9tZS1jaS1tYWMtbTEtbWluaS0yMDIwLXBnby1wZXJmLTAtbTEzYsIBCWJ1Y2tldDpjacIBG2J1aWxkX2lzX2V4cGVyaW1lbnRhbDpmYWxzZcIBG2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBJWJ1aWxkZXJuYW1lOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CARBidWlsZG51bWJlcjo1NjkxwgEHY3B1OmFybcIBSmRhdGE6NzY4OTgxYTkzNmZjNjM4OWFmNzk2YzAwYTM1NTRkMzUxMGFjZTQyMDQwMDVmNDQ3ODk3ZmI4ZmEwMjhlZjA2Ni8xMjE1wgEMaWQ6bWFjLTM2LWg3wgEUbWFjX21vZGVsOk1hY21pbmk5LDHCARtuYW1lOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGXCAQ1uaW5qYV90YXJnZXQ6wgEGb3M6TWFjwgEfcGFyZW50X3Rhc2tfaWQ6NjkyMjI1ODQwMmU1NDkxMcIBGnBvb2w6Y2hyb21lLnRlc3RzLnBlcmYtcGdvwgELcHJpb3JpdHk6MjXCARBwcm9qZWN0OmNocm9taXVtwgEKcHVycG9zZTpDScIBE3B1cnBvc2U6cG9zdC1jb21taXTCATdyYmU6cHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlwgEPcmVhbG06Y2hyb21lOmNpwgFMc2VydmljZV9hY2NvdW50OmNocm9tZS10ZXN0ZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBB3NoYXJkOjPCAS1zcGVjX25hbWU6Y2hyb21lLmNpOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CASZzdGVwbmFtZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlIG9uIE1hY8IBG3N3YXJtaW5nLnBvb2wudGVtcGxhdGU6cHJvZMIBPnN3YXJtaW5nLnBvb2wudmVyc2lvbjoyYTE3MDZkM2VhYzgxNDhkZmQwNDVlNjhkOTU4N2MwMjQ2MmU3NzRmwgEPdGVzdF9pZF9wcmVmaXg6wgEhdGVzdF9zdWl0ZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlwgEJdXNlcjpub25lwgEld2F0ZXJmYWxsX2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBL3dhdGVyZmFsbF9idWlsZGVybmFtZTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdv2gHgBQpKChppbmZyYS90b29scy9jaXBkL21hYy1hcm02NBIsWDNDZWp5dkhJelEtYWY2SFpqVmVRbjlIbU1lRkZndnpiMkcxZklfMWVOVUMSaAofaW5mcmEvdG9vbHMvbHVjaS1hdXRoL21hYy1hcm02NBIsX1hIcERKSUp6SExjNW56UEU3NjFIZnE3bFI5emxvZnp3RUZJSEJTeWlSMEMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEnEKKGluZnJhL3Rvb2xzL2x1Y2kvbG9nZG9nL2J1dGxlci9tYWMtYXJtNjQSLDFJQkljZEpNMFAwN0N2VXJvNjkxandOeHFBeHhkaWhVNnA2WXlfV1FWOEFDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJsCiNpbmZyYS90b29scy9sdWNpL3ZweXRob24zL21hYy1hcm02NBIsZVJlb1pxc2pQbEFyTHYzSU90bzBkYUx3QlY1dEJ1WVpoTkxnVXh0UXVRWUMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEmIKGWluZnJhL3Rvb2xzL3JkYi9tYWMtYXJtNjQSLHgxMDVTYklxQnAxLXVSMl81R3BEZXJvaE5Fa01pY3hBZE0tSlJrVDdkUXdDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJtCiRpbmZyYS90b29scy9yZXN1bHRfYWRhcHRlci9tYWMtYXJtNjQSLFdCNzdBRDkzMUJ2YTFfTnA4WktuOWVmbDVJOFIxZGd6c0F4bE1JMTRNaWNDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJ0CiJpbmZyYS8zcHAvdG9vbHMvY3B5dGhvbjMvbWFjLWFybTY0EiwzV2loNjhkWnY0WFZQa2xjMEhxZnF1Y3dOWUEzZHlLQ1N2Yjd2am9uNGhRQxogLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMvY3B5dGhvbjPiARA2OTIyMmU0OTBlYjRiZjEx8gFTChJyZXN1bHRzLmFwaS5jci5kZXYSPWludm9jYXRpb25zL3Rhc2stY2hyb21lLXN3YXJtaW5nLmFwcHNwb3QuY29tLTY5MjIyZTQ5MGViNGJmMTESnBcKEDY5MjIyZTQ3Nzk3ZTNhMTASGwoKYm90X2NvbmZpZxINYm90X2NvbmZpZy5weRIlCgZjYWNoZXMSG3Rhc2tfdGVtcGxhdGVfdnB5dGhvbl9jYWNoZRIaCg1jaXBkX3BsYXRmb3JtEgltYWMtYXJtNjQSCgoFY29yZXMSATgSNgoDY3B1EgNhcm0SBmFybS02NBIFYXJtNjQSCGFybTY0LTY0EhFhcm02NC02NC1BcHBsZV9NMRIVChBkaXNwbGF5X2F0dGFjaGVkEgExEhIKCWR1dF9zdGF0ZRIFcmVhZHkSCAoDZ2NlEgEwEhYKA2dwdRIFYXBwbGUSCGFwcGxlOm0xEgoKBWhpZHBpEgEwEg8KAmlkEgltYWMtMzQtaDcSEgoNaW5zaWRlX2RvY2tlchIBMBIXCgltYWNfbW9kZWwSCk1hY21pbmk5LDESHAoMbWFjaGluZV90eXBlEgxuMS1oaWdoY3B1LTgSOgoCb3MSA01hYxIGTWFjLTEzEghNYWMtMTMuMxIKTWFjLTEzLjMuMRIRTWFjLTEzLjMuMS0yMkUyNjESHQoEcG9vbBIVY2hyb21lLnRlc3RzLnBlcmYtcGdvEhgKCnB1cHBldF9lbnYSCnByb2R1Y3Rpb24SGAoGcHl0aG9uEgEzEgMzLjgSBjMuOC4xMBIeCg5zZXJ2ZXJfdmVyc2lvbhIMNzYxMS0wZTYxNGI4EggKA3NzZBIBMRISCgl1ZnNfc3RhdGUSBXJlYWR5EhYKCHVmc196b25lEgpaT05FX0lBRDk3Ei8KBHpvbmUSAnVzEgZ1cy1pYWQSC3VzLWlhZC1nb2xvEg51cy1pYWQtZ29sby1oNxoJbWFjLTM0LWg3IgwI1a+csQYQ0MLq0QEqQGU5NThhNmE5NmZiYThjZDk5NTNiMTQ2ZWMzZDQwYWNhNDgzZmY4NDM0ZTE4ODI5Yzc1ZDU3NDdiMGFjMzZkNDEyEWNocm9tZS1pbmZyYS1sb2dzQgwIz4adsQYQqMCTmwNSDAjAhZ2xBhCwpeiMAWWcLfZCggEMCM+GnbEGEKjAk5sDigF8CjNwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2USRQpAZmIwYjcwYmRhOWEwMGMyY2M1MDU2OTk3YzNmZGJlZjAzMTJmMDA3NjYyODAzN2E5YjVmY2E0NDIzMmU5NGEwMhC9A5IBDDc2MTEtMGU2MTRiOJoBCwjBhZ2xBhCo0dIboAFwsgEEPJYsPboBRHBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGUvTWFjLzc2ODk4MWE5MzYvbWFjLW0xX21pbmlfMjAyMC1wZXJmLXBnby81NjkxwgFTYXV0aGVudGljYXRlZDp1c2VyOmNocm9tZS1jaS1idWlsZGVyQGNob3BzLXNlcnZpY2UtYWNjb3VudHMuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb23CATdib3RuYW1lOmx1Y2ktY2hyb21lLWNpLW1hYy1tMS1taW5pLTIwMjAtcGdvLXBlcmYtMC1tMTNiwgEJYnVja2V0OmNpwgEbYnVpbGRfaXNfZXhwZXJpbWVudGFsOmZhbHNlwgEbYnVpbGRlcl9ncm91cDpjaHJvbWl1bS5wZXJmwgElYnVpbGRlcm5hbWU6bWFjLW0xX21pbmlfMjAyMC1wZXJmLXBnb8IBEGJ1aWxkbnVtYmVyOjU2OTHCAQdjcHU6YXJtwgFKZGF0YTo3Njg5ODFhOTM2ZmM2Mzg5YWY3OTZjMDBhMzU1NGQzNTEwYWNlNDIwNDAwNWY0NDc4OTdmYjhmYTAyOGVmMDY2LzEyMTXCAQxpZDptYWMtMzQtaDfCARRtYWNfbW9kZWw6TWFjbWluaTksMcIBG25hbWU6cGVyZm9ybWFuY2VfdGVzdF9zdWl0ZcIBDW5pbmphX3RhcmdldDrCAQZvczpNYWPCAR9wYXJlbnRfdGFza19pZDo2OTIyMjU4NDAyZTU0OTExwgEacG9vbDpjaHJvbWUudGVzdHMucGVyZi1wZ2/CAQtwcmlvcml0eToyNcIBEHByb2plY3Q6Y2hyb21pdW3CAQpwdXJwb3NlOkNJwgETcHVycG9zZTpwb3N0LWNvbW1pdMIBN3JiZTpwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2XCAQ9yZWFsbTpjaHJvbWU6Y2nCAUxzZXJ2aWNlX2FjY291bnQ6Y2hyb21lLXRlc3RlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgEHc2hhcmQ6MsIBLXNwZWNfbmFtZTpjaHJvbWUuY2k6bWFjLW0xX21pbmlfMjAyMC1wZXJmLXBnb8IBJnN0ZXBuYW1lOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGUgb24gTWFjwgEbc3dhcm1pbmcucG9vbC50ZW1wbGF0ZTpwcm9kwgE+c3dhcm1pbmcucG9vbC52ZXJzaW9uOjJhMTcwNmQzZWFjODE0OGRmZDA0NWU2OGQ5NTg3YzAyNDYyZTc3NGbCAQ90ZXN0X2lkX3ByZWZpeDrCASF0ZXN0X3N1aXRlOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGXCAQl1c2VyOm5vbmXCASV3YXRlcmZhbGxfYnVpbGRlcl9ncm91cDpjaHJvbWl1bS5wZXJmwgEvd2F0ZXJmYWxsX2J1aWxkZXJuYW1lOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/aAeAFCkoKGmluZnJhL3Rvb2xzL2NpcGQvbWFjLWFybTY0EixYM0Nlanl2SEl6US1hZjZIWmpWZVFuOUhtTWVGRmd2emIyRzFmSV8xZU5VQxJoCh9pbmZyYS90b29scy9sdWNpLWF1dGgvbWFjLWFybTY0EixfWEhwREpJSnpITGM1bnpQRTc2MUhmcTdsUjl6bG9mendFRklIQlN5aVIwQxoXLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMScQooaW5mcmEvdG9vbHMvbHVjaS9sb2dkb2cvYnV0bGVyL21hYy1hcm02NBIsMUlCSWNkSk0wUDA3Q3ZVcm82OTFqd054cUF4eGRpaFU2cDZZeV9XUVY4QUMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEmwKI2luZnJhL3Rvb2xzL2x1Y2kvdnB5dGhvbjMvbWFjLWFybTY0EixlUmVvWnFzalBsQXJMdjNJT3RvMGRhTHdCVjV0QnVZWmhOTGdVeHRRdVFZQxoXLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMSYgoZaW5mcmEvdG9vbHMvcmRiL21hYy1hcm02NBIseDEwNVNiSXFCcDEtdVIyXzVHcERlcm9oTkVrTWljeEFkTS1KUmtUN2RRd0MaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEm0KJGluZnJhL3Rvb2xzL3Jlc3VsdF9hZGFwdGVyL21hYy1hcm02NBIsV0I3N0FEOTMxQnZhMV9OcDhaS245ZWZsNUk4UjFkZ3pzQXhsTUkxNE1pY0MaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEnQKImluZnJhLzNwcC90b29scy9jcHl0aG9uMy9tYWMtYXJtNjQSLDNXaWg2OGRadjRYVlBrbGMwSHFmcXVjd05ZQTNkeUtDU3ZiN3Zqb240aFFDGiAudGFza190ZW1wbGF0ZV9wYWNrYWdlcy9jcHl0aG9uM+IBEDY5MjIyZTQ3Nzk3ZTNhMTHyAVMKEnJlc3VsdHMuYXBpLmNyLmRldhI9aW52b2NhdGlvbnMvdGFzay1jaHJvbWUtc3dhcm1pbmcuYXBwc3BvdC5jb20tNjkyMjJlNDc3OTdlM2ExMRKZFwoQNjkyMjJlNDNjNmMxYmExMBIbCgpib3RfY29uZmlnEg1ib3RfY29uZmlnLnB5EiUKBmNhY2hlcxIbdGFza190ZW1wbGF0ZV92cHl0aG9uX2NhY2hlEhoKDWNpcGRfcGxhdGZvcm0SCW1hYy1hcm02NBIKCgVjb3JlcxIBOBI2CgNjcHUSA2FybRIGYXJtLTY0EgVhcm02NBIIYXJtNjQtNjQSEWFybTY0LTY0LUFwcGxlX00xEhUKEGRpc3BsYXlfYXR0YWNoZWQSATESEgoJZHV0X3N0YXRlEgVyZWFkeRIICgNnY2USATASFgoDZ3B1EgVhcHBsZRIIYXBwbGU6bTESCgoFaGlkcGkSATASDwoCaWQSCW1hYy0zMy1oNxISCg1pbnNpZGVfZG9ja2VyEgEwEhcKCW1hY19tb2RlbBIKTWFjbWluaTksMRIcCgxtYWNoaW5lX3R5cGUSDG4xLWhpZ2hjcHUtOBI6CgJvcxIDTWFjEgZNYWMtMTMSCE1hYy0xMy4zEgpNYWMtMTMuMy4xEhFNYWMtMTMuMy4xLTIyRTI2MRIdCgRwb29sEhVjaHJvbWUudGVzdHMucGVyZi1wZ28SGAoKcHVwcGV0X2VudhIKcHJvZHVjdGlvbhIYCgZweXRob24SATMSAzMuOBIGMy44LjEwEh4KDnNlcnZlcl92ZXJzaW9uEgw3NjExLTBlNjE0YjgSCAoDc3NkEgExEhIKCXVmc19zdGF0ZRIFcmVhZHkSFgoIdWZzX3pvbmUSClpPTkVfSUFEOTcSLwoEem9uZRICdXMSBnVzLWlhZBILdXMtaWFkLWdvbG8SDnVzLWlhZC1nb2xvLWg3GgltYWMtMzMtaDciCwiVtZyxBhDwkKQhKkBlOTU4YTZhOTZmYmE4Y2Q5OTUzYjE0NmVjM2Q0MGFjYTQ4M2ZmODQzNGUxODgyOWM3NWQ1NzQ3YjBhYzM2ZDQxMhFjaHJvbWUtaW5mcmEtbG9nc0ILCJ6OnbEGEKCfkSRSCwi/hZ2xBhCA7sFpZYxAiUSCAQsIno6dsQYQoJ+RJIoBfAozcHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlEkUKQGU3YTFkZWUyNjE4NzM0NjQzNWQ3MTUyYmEyOGMxMzJmYmNjNThiODlhYjQ5MTIwZGFhOTgwYjA1OGUyYmU2ODkQowSSAQw3NjExLTBlNjE0YjiaAQwIwIWdsQYQuKPmrQGgAXCyAQRYVak+ugFEcGVyZm9ybWFuY2VfdGVzdF9zdWl0ZS9NYWMvNzY4OTgxYTkzNi9tYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdvLzU2OTHCAVNhdXRoZW50aWNhdGVkOnVzZXI6Y2hyb21lLWNpLWJ1aWxkZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBN2JvdG5hbWU6bHVjaS1jaHJvbWUtY2ktbWFjLW0xLW1pbmktMjAyMC1wZ28tcGVyZi0wLW0xM2LCAQlidWNrZXQ6Y2nCARtidWlsZF9pc19leHBlcmltZW50YWw6ZmFsc2XCARtidWlsZGVyX2dyb3VwOmNocm9taXVtLnBlcmbCASVidWlsZGVybmFtZTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdvwgEQYnVpbGRudW1iZXI6NTY5McIBB2NwdTphcm3CAUpkYXRhOjc2ODk4MWE5MzZmYzYzODlhZjc5NmMwMGEzNTU0ZDM1MTBhY2U0MjA0MDA1ZjQ0Nzg5N2ZiOGZhMDI4ZWYwNjYvMTIxNcIBDGlkOm1hYy0zMy1oN8IBFG1hY19tb2RlbDpNYWNtaW5pOSwxwgEbbmFtZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlwgENbmluamFfdGFyZ2V0OsIBBm9zOk1hY8IBH3BhcmVudF90YXNrX2lkOjY5MjIyNTg0MDJlNTQ5MTHCARpwb29sOmNocm9tZS50ZXN0cy5wZXJmLXBnb8IBC3ByaW9yaXR5OjI1wgEQcHJvamVjdDpjaHJvbWl1bcIBCnB1cnBvc2U6Q0nCARNwdXJwb3NlOnBvc3QtY29tbWl0wgE3cmJlOnByb2plY3RzL2Nocm9tZS1zd2FybWluZy9pbnN0YW5jZXMvZGVmYXVsdF9pbnN0YW5jZcIBD3JlYWxtOmNocm9tZTpjacIBTHNlcnZpY2VfYWNjb3VudDpjaHJvbWUtdGVzdGVyQGNob3BzLXNlcnZpY2UtYWNjb3VudHMuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb23CAQdzaGFyZDoxwgEtc3BlY19uYW1lOmNocm9tZS5jaTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdvwgEmc3RlcG5hbWU6cGVyZm9ybWFuY2VfdGVzdF9zdWl0ZSBvbiBNYWPCARtzd2FybWluZy5wb29sLnRlbXBsYXRlOnByb2TCAT5zd2FybWluZy5wb29sLnZlcnNpb246MmExNzA2ZDNlYWM4MTQ4ZGZkMDQ1ZTY4ZDk1ODdjMDI0NjJlNzc0ZsIBD3Rlc3RfaWRfcHJlZml4OsIBIXRlc3Rfc3VpdGU6cGVyZm9ybWFuY2VfdGVzdF9zdWl0ZcIBCXVzZXI6bm9uZcIBJXdhdGVyZmFsbF9idWlsZGVyX2dyb3VwOmNocm9taXVtLnBlcmbCAS93YXRlcmZhbGxfYnVpbGRlcm5hbWU6bWFjLW0xX21pbmlfMjAyMC1wZXJmLXBnb9oB4AUKSgoaaW5mcmEvdG9vbHMvY2lwZC9tYWMtYXJtNjQSLFgzQ2VqeXZISXpRLWFmNkhaalZlUW45SG1NZUZGZ3Z6YjJHMWZJXzFlTlVDEmgKH2luZnJhL3Rvb2xzL2x1Y2ktYXV0aC9tYWMtYXJtNjQSLF9YSHBESklKekhMYzVuelBFNzYxSGZxN2xSOXpsb2Z6d0VGSUhCU3lpUjBDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJxCihpbmZyYS90b29scy9sdWNpL2xvZ2RvZy9idXRsZXIvbWFjLWFybTY0EiwxSUJJY2RKTTBQMDdDdlVybzY5MWp3TnhxQXh4ZGloVTZwNll5X1dRVjhBQxoXLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMSbAojaW5mcmEvdG9vbHMvbHVjaS92cHl0aG9uMy9tYWMtYXJtNjQSLGVSZW9acXNqUGxBckx2M0lPdG8wZGFMd0JWNXRCdVlaaE5MZ1V4dFF1UVlDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJiChlpbmZyYS90b29scy9yZGIvbWFjLWFybTY0Eix4MTA1U2JJcUJwMS11UjJfNUdwRGVyb2hORWtNaWN4QWRNLUpSa1Q3ZFF3QxoXLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMSbQokaW5mcmEvdG9vbHMvcmVzdWx0X2FkYXB0ZXIvbWFjLWFybTY0EixXQjc3QUQ5MzFCdmExX05wOFpLbjllZmw1SThSMWRnenNBeGxNSTE0TWljQxoXLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMSdAoiaW5mcmEvM3BwL3Rvb2xzL2NweXRob24zL21hYy1hcm02NBIsM1dpaDY4ZFp2NFhWUGtsYzBIcWZxdWN3TllBM2R5S0NTdmI3dmpvbjRoUUMaIC50YXNrX3RlbXBsYXRlX3BhY2thZ2VzL2NweXRob24z4gEQNjkyMjJlNDNjNmMxYmExMfIBUwoScmVzdWx0cy5hcGkuY3IuZGV2Ej1pbnZvY2F0aW9ucy90YXNrLWNocm9tZS1zd2FybWluZy5hcHBzcG90LmNvbS02OTIyMmU0M2M2YzFiYTExEpwXChA2OTIyMmU0MGNlNDgxZTEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSJQoGY2FjaGVzEht0YXNrX3RlbXBsYXRlX3ZweXRob25fY2FjaGUSGgoNY2lwZF9wbGF0Zm9ybRIJbWFjLWFybTY0EgoKBWNvcmVzEgE4EjYKA2NwdRIDYXJtEgZhcm0tNjQSBWFybTY0Eghhcm02NC02NBIRYXJtNjQtNjQtQXBwbGVfTTESFQoQZGlzcGxheV9hdHRhY2hlZBIBMRISCglkdXRfc3RhdGUSBXJlYWR5EggKA2djZRIBMBIWCgNncHUSBWFwcGxlEghhcHBsZTptMRIKCgVoaWRwaRIBMBIPCgJpZBIJbWFjLTM3LWg3EhIKDWluc2lkZV9kb2NrZXISATASFwoJbWFjX21vZGVsEgpNYWNtaW5pOSwxEhwKDG1hY2hpbmVfdHlwZRIMbjEtaGlnaGNwdS04EjoKAm9zEgNNYWMSBk1hYy0xMxIITWFjLTEzLjMSCk1hYy0xMy4zLjESEU1hYy0xMy4zLjEtMjJFMjYxEh0KBHBvb2wSFWNocm9tZS50ZXN0cy5wZXJmLXBnbxIYCgpwdXBwZXRfZW52Egpwcm9kdWN0aW9uEhgKBnB5dGhvbhIBMxIDMy44EgYzLjguMTASHgoOc2VydmVyX3ZlcnNpb24SDDc2MTEtMGU2MTRiOBIICgNzc2QSATESEgoJdWZzX3N0YXRlEgVyZWFkeRIWCgh1ZnNfem9uZRIKWk9ORV9JQUQ5NxIvCgR6b25lEgJ1cxIGdXMtaWFkEgt1cy1pYWQtZ29sbxIOdXMtaWFkLWdvbG8taDcaCW1hYy0zNy1oNyILCNWEnbEGEPj97B0qQGU5NThhNmE5NmZiYThjZDk5NTNiMTQ2ZWMzZDQwYWNhNDgzZmY4NDM0ZTE4ODI5Yzc1ZDU3NDdiMGFjMzZkNDEyEWNocm9tZS1pbmZyYS1sb2dzQgwIzIadsQYQwJT60wJSDAi+hZ2xBhCQ0dewAmVIfPFCggEMCMyGnbEGEMCU+tMCigF8CjNwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2USRQpAN2ZlMjc5ZGE3ZWNlNDk4MzkyZDVhOTJjMDlmNmVkMzQ1NDUxMTQzODY4NzZiMTljZDlmYzMwZTczNzAyZDM3ZBC9A5IBDDc2MTEtMGU2MTRiOJoBDAi/hZ2xBhCow4OmAaABcLIBBFjGKj26AURwZXJmb3JtYW5jZV90ZXN0X3N1aXRlL01hYy83Njg5ODFhOTM2L21hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ28vNTY5McIBU2F1dGhlbnRpY2F0ZWQ6dXNlcjpjaHJvbWUtY2ktYnVpbGRlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgE3Ym90bmFtZTpsdWNpLWNocm9tZS1jaS1tYWMtbTEtbWluaS0yMDIwLXBnby1wZXJmLTAtbTEzYsIBCWJ1Y2tldDpjacIBG2J1aWxkX2lzX2V4cGVyaW1lbnRhbDpmYWxzZcIBG2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBJWJ1aWxkZXJuYW1lOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CARBidWlsZG51bWJlcjo1NjkxwgEHY3B1OmFybcIBSmRhdGE6NzY4OTgxYTkzNmZjNjM4OWFmNzk2YzAwYTM1NTRkMzUxMGFjZTQyMDQwMDVmNDQ3ODk3ZmI4ZmEwMjhlZjA2Ni8xMjE1wgEMaWQ6bWFjLTM3LWg3wgEUbWFjX21vZGVsOk1hY21pbmk5LDHCARtuYW1lOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGXCAQ1uaW5qYV90YXJnZXQ6wgEGb3M6TWFjwgEfcGFyZW50X3Rhc2tfaWQ6NjkyMjI1ODQwMmU1NDkxMcIBGnBvb2w6Y2hyb21lLnRlc3RzLnBlcmYtcGdvwgELcHJpb3JpdHk6MjXCARBwcm9qZWN0OmNocm9taXVtwgEKcHVycG9zZTpDScIBE3B1cnBvc2U6cG9zdC1jb21taXTCATdyYmU6cHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlwgEPcmVhbG06Y2hyb21lOmNpwgFMc2VydmljZV9hY2NvdW50OmNocm9tZS10ZXN0ZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBB3NoYXJkOjDCAS1zcGVjX25hbWU6Y2hyb21lLmNpOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CASZzdGVwbmFtZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlIG9uIE1hY8IBG3N3YXJtaW5nLnBvb2wudGVtcGxhdGU6cHJvZMIBPnN3YXJtaW5nLnBvb2wudmVyc2lvbjoyYTE3MDZkM2VhYzgxNDhkZmQwNDVlNjhkOTU4N2MwMjQ2MmU3NzRmwgEPdGVzdF9pZF9wcmVmaXg6wgEhdGVzdF9zdWl0ZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlwgEJdXNlcjpub25lwgEld2F0ZXJmYWxsX2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBL3dhdGVyZmFsbF9idWlsZGVybmFtZTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdv2gHgBQpKChppbmZyYS90b29scy9jaXBkL21hYy1hcm02NBIsWDNDZWp5dkhJelEtYWY2SFpqVmVRbjlIbU1lRkZndnpiMkcxZklfMWVOVUMSaAofaW5mcmEvdG9vbHMvbHVjaS1hdXRoL21hYy1hcm02NBIsX1hIcERKSUp6SExjNW56UEU3NjFIZnE3bFI5emxvZnp3RUZJSEJTeWlSMEMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEnEKKGluZnJhL3Rvb2xzL2x1Y2kvbG9nZG9nL2J1dGxlci9tYWMtYXJtNjQSLDFJQkljZEpNMFAwN0N2VXJvNjkxandOeHFBeHhkaWhVNnA2WXlfV1FWOEFDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJsCiNpbmZyYS90b29scy9sdWNpL3ZweXRob24zL21hYy1hcm02NBIsZVJlb1pxc2pQbEFyTHYzSU90bzBkYUx3QlY1dEJ1WVpoTkxnVXh0UXVRWUMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEmIKGWluZnJhL3Rvb2xzL3JkYi9tYWMtYXJtNjQSLHgxMDVTYklxQnAxLXVSMl81R3BEZXJvaE5Fa01pY3hBZE0tSlJrVDdkUXdDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJtCiRpbmZyYS90b29scy9yZXN1bHRfYWRhcHRlci9tYWMtYXJtNjQSLFdCNzdBRDkzMUJ2YTFfTnA4WktuOWVmbDVJOFIxZGd6c0F4bE1JMTRNaWNDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJ0CiJpbmZyYS8zcHAvdG9vbHMvY3B5dGhvbjMvbWFjLWFybTY0EiwzV2loNjhkWnY0WFZQa2xjMEhxZnF1Y3dOWUEzZHlLQ1N2Yjd2am9uNGhRQxogLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMvY3B5dGhvbjPiARA2OTIyMmU0MGNlNDgxZTEx8gFTChJyZXN1bHRzLmFwaS5jci5kZXYSPWludm9jYXRpb25zL3Rhc2stY2hyb21lLXN3YXJtaW5nLmFwcHNwb3QuY29tLTY5MjIyZTQwY2U0ODFlMTEaCwiF6J+xBhCIvqV8" + } + }, + { + "ID": "4d6cae88b10b9f28", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/GetResult", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "18" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "ChA2OTIyMmU0OTBlYjRiZjEw" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "2972" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:46:45 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "e0f2bbb15a7896a6a8a5258640bc6615" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "ChA2OTIyMmU0OTBlYjRiZjEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSJQoGY2FjaGVzEht0YXNrX3RlbXBsYXRlX3ZweXRob25fY2FjaGUSGgoNY2lwZF9wbGF0Zm9ybRIJbWFjLWFybTY0EgoKBWNvcmVzEgE4EjYKA2NwdRIDYXJtEgZhcm0tNjQSBWFybTY0Eghhcm02NC02NBIRYXJtNjQtNjQtQXBwbGVfTTESFQoQZGlzcGxheV9hdHRhY2hlZBIBMRISCglkdXRfc3RhdGUSBXJlYWR5EggKA2djZRIBMBIWCgNncHUSBWFwcGxlEghhcHBsZTptMRIKCgVoaWRwaRIBMBIPCgJpZBIJbWFjLTM2LWg3EhIKDWluc2lkZV9kb2NrZXISATASFwoJbWFjX21vZGVsEgpNYWNtaW5pOSwxEhwKDG1hY2hpbmVfdHlwZRIMbjEtaGlnaGNwdS04EjoKAm9zEgNNYWMSBk1hYy0xMxIITWFjLTEzLjMSCk1hYy0xMy4zLjESEU1hYy0xMy4zLjEtMjJFMjYxEh0KBHBvb2wSFWNocm9tZS50ZXN0cy5wZXJmLXBnbxIYCgpwdXBwZXRfZW52Egpwcm9kdWN0aW9uEhgKBnB5dGhvbhIBMxIDMy44EgYzLjguMTASHgoOc2VydmVyX3ZlcnNpb24SDDc2MTEtMGU2MTRiOBIICgNzc2QSATESEgoJdWZzX3N0YXRlEgVyZWFkeRIWCgh1ZnNfem9uZRIKWk9ORV9JQUQ5NxIvCgR6b25lEgJ1cxIGdXMtaWFkEgt1cy1pYWQtZ29sbxIOdXMtaWFkLWdvbG8taDcaCW1hYy0zNi1oNyILCJTum7EGEJCusmIqQGU5NThhNmE5NmZiYThjZDk5NTNiMTQ2ZWMzZDQwYWNhNDgzZmY4NDM0ZTE4ODI5Yzc1ZDU3NDdiMGFjMzZkNDEyEWNocm9tZS1pbmZyYS1sb2dzQgwIzoadsQYQkPTVkQJSDAjAhZ2xBhCgtsPsAmV03/JCggEMCM6GnbEGEJD01ZECigF8CjNwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2USRQpAYjY5Y2E5ZTNhMzkyZWFhYTYwNmM0MzkyOGFjNDNiYThiNWYwZGE5MWRiNWNmMjY3MTI2YzBlZGQ0MjBiYzEwMRC9A5IBDDc2MTEtMGU2MTRiOJoBDAjBhZ2xBhDIjtS+AaABcLIBBPONKj26AURwZXJmb3JtYW5jZV90ZXN0X3N1aXRlL01hYy83Njg5ODFhOTM2L21hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ28vNTY5McIBU2F1dGhlbnRpY2F0ZWQ6dXNlcjpjaHJvbWUtY2ktYnVpbGRlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgE3Ym90bmFtZTpsdWNpLWNocm9tZS1jaS1tYWMtbTEtbWluaS0yMDIwLXBnby1wZXJmLTAtbTEzYsIBCWJ1Y2tldDpjacIBG2J1aWxkX2lzX2V4cGVyaW1lbnRhbDpmYWxzZcIBG2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBJWJ1aWxkZXJuYW1lOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CARBidWlsZG51bWJlcjo1NjkxwgEHY3B1OmFybcIBSmRhdGE6NzY4OTgxYTkzNmZjNjM4OWFmNzk2YzAwYTM1NTRkMzUxMGFjZTQyMDQwMDVmNDQ3ODk3ZmI4ZmEwMjhlZjA2Ni8xMjE1wgEMaWQ6bWFjLTM2LWg3wgEUbWFjX21vZGVsOk1hY21pbmk5LDHCARtuYW1lOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGXCAQ1uaW5qYV90YXJnZXQ6wgEGb3M6TWFjwgEfcGFyZW50X3Rhc2tfaWQ6NjkyMjI1ODQwMmU1NDkxMcIBGnBvb2w6Y2hyb21lLnRlc3RzLnBlcmYtcGdvwgELcHJpb3JpdHk6MjXCARBwcm9qZWN0OmNocm9taXVtwgEKcHVycG9zZTpDScIBE3B1cnBvc2U6cG9zdC1jb21taXTCATdyYmU6cHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlwgEPcmVhbG06Y2hyb21lOmNpwgFMc2VydmljZV9hY2NvdW50OmNocm9tZS10ZXN0ZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBB3NoYXJkOjPCAS1zcGVjX25hbWU6Y2hyb21lLmNpOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CASZzdGVwbmFtZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlIG9uIE1hY8IBG3N3YXJtaW5nLnBvb2wudGVtcGxhdGU6cHJvZMIBPnN3YXJtaW5nLnBvb2wudmVyc2lvbjoyYTE3MDZkM2VhYzgxNDhkZmQwNDVlNjhkOTU4N2MwMjQ2MmU3NzRmwgEPdGVzdF9pZF9wcmVmaXg6wgEhdGVzdF9zdWl0ZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlwgEJdXNlcjpub25lwgEld2F0ZXJmYWxsX2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBL3dhdGVyZmFsbF9idWlsZGVybmFtZTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdv2gHgBQpKChppbmZyYS90b29scy9jaXBkL21hYy1hcm02NBIsWDNDZWp5dkhJelEtYWY2SFpqVmVRbjlIbU1lRkZndnpiMkcxZklfMWVOVUMSaAofaW5mcmEvdG9vbHMvbHVjaS1hdXRoL21hYy1hcm02NBIsX1hIcERKSUp6SExjNW56UEU3NjFIZnE3bFI5emxvZnp3RUZJSEJTeWlSMEMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEnEKKGluZnJhL3Rvb2xzL2x1Y2kvbG9nZG9nL2J1dGxlci9tYWMtYXJtNjQSLDFJQkljZEpNMFAwN0N2VXJvNjkxandOeHFBeHhkaWhVNnA2WXlfV1FWOEFDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJsCiNpbmZyYS90b29scy9sdWNpL3ZweXRob24zL21hYy1hcm02NBIsZVJlb1pxc2pQbEFyTHYzSU90bzBkYUx3QlY1dEJ1WVpoTkxnVXh0UXVRWUMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEmIKGWluZnJhL3Rvb2xzL3JkYi9tYWMtYXJtNjQSLHgxMDVTYklxQnAxLXVSMl81R3BEZXJvaE5Fa01pY3hBZE0tSlJrVDdkUXdDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJtCiRpbmZyYS90b29scy9yZXN1bHRfYWRhcHRlci9tYWMtYXJtNjQSLFdCNzdBRDkzMUJ2YTFfTnA4WktuOWVmbDVJOFIxZGd6c0F4bE1JMTRNaWNDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJ0CiJpbmZyYS8zcHAvdG9vbHMvY3B5dGhvbjMvbWFjLWFybTY0EiwzV2loNjhkWnY0WFZQa2xjMEhxZnF1Y3dOWUEzZHlLQ1N2Yjd2am9uNGhRQxogLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMvY3B5dGhvbjPiARA2OTIyMmU0OTBlYjRiZjEx8gFTChJyZXN1bHRzLmFwaS5jci5kZXYSPWludm9jYXRpb25zL3Rhc2stY2hyb21lLXN3YXJtaW5nLmFwcHNwb3QuY29tLTY5MjIyZTQ5MGViNGJmMTE=" + } + }, + { + "ID": "d4c19ccb1dca4c95", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/GetResult", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "18" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "ChA2OTIyMmU0Nzc5N2UzYTEw" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "2972" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:46:51 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "a88b8bdac2e75edae2d08b9d49f64040" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "ChA2OTIyMmU0Nzc5N2UzYTEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSJQoGY2FjaGVzEht0YXNrX3RlbXBsYXRlX3ZweXRob25fY2FjaGUSGgoNY2lwZF9wbGF0Zm9ybRIJbWFjLWFybTY0EgoKBWNvcmVzEgE4EjYKA2NwdRIDYXJtEgZhcm0tNjQSBWFybTY0Eghhcm02NC02NBIRYXJtNjQtNjQtQXBwbGVfTTESFQoQZGlzcGxheV9hdHRhY2hlZBIBMRISCglkdXRfc3RhdGUSBXJlYWR5EggKA2djZRIBMBIWCgNncHUSBWFwcGxlEghhcHBsZTptMRIKCgVoaWRwaRIBMBIPCgJpZBIJbWFjLTM0LWg3EhIKDWluc2lkZV9kb2NrZXISATASFwoJbWFjX21vZGVsEgpNYWNtaW5pOSwxEhwKDG1hY2hpbmVfdHlwZRIMbjEtaGlnaGNwdS04EjoKAm9zEgNNYWMSBk1hYy0xMxIITWFjLTEzLjMSCk1hYy0xMy4zLjESEU1hYy0xMy4zLjEtMjJFMjYxEh0KBHBvb2wSFWNocm9tZS50ZXN0cy5wZXJmLXBnbxIYCgpwdXBwZXRfZW52Egpwcm9kdWN0aW9uEhgKBnB5dGhvbhIBMxIDMy44EgYzLjguMTASHgoOc2VydmVyX3ZlcnNpb24SDDc2MTEtMGU2MTRiOBIICgNzc2QSATESEgoJdWZzX3N0YXRlEgVyZWFkeRIWCgh1ZnNfem9uZRIKWk9ORV9JQUQ5NxIvCgR6b25lEgJ1cxIGdXMtaWFkEgt1cy1pYWQtZ29sbxIOdXMtaWFkLWdvbG8taDcaCW1hYy0zNC1oNyIMCNWvnLEGENDC6tEBKkBlOTU4YTZhOTZmYmE4Y2Q5OTUzYjE0NmVjM2Q0MGFjYTQ4M2ZmODQzNGUxODgyOWM3NWQ1NzQ3YjBhYzM2ZDQxMhFjaHJvbWUtaW5mcmEtbG9nc0IMCM+GnbEGEKjAk5sDUgwIwIWdsQYQsKXojAFlnC32QoIBDAjPhp2xBhCowJObA4oBfAozcHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlEkUKQGZiMGI3MGJkYTlhMDBjMmNjNTA1Njk5N2MzZmRiZWYwMzEyZjAwNzY2MjgwMzdhOWI1ZmNhNDQyMzJlOTRhMDIQvQOSAQw3NjExLTBlNjE0YjiaAQsIwYWdsQYQqNHSG6ABcLIBBDyWLD26AURwZXJmb3JtYW5jZV90ZXN0X3N1aXRlL01hYy83Njg5ODFhOTM2L21hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ28vNTY5McIBU2F1dGhlbnRpY2F0ZWQ6dXNlcjpjaHJvbWUtY2ktYnVpbGRlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgE3Ym90bmFtZTpsdWNpLWNocm9tZS1jaS1tYWMtbTEtbWluaS0yMDIwLXBnby1wZXJmLTAtbTEzYsIBCWJ1Y2tldDpjacIBG2J1aWxkX2lzX2V4cGVyaW1lbnRhbDpmYWxzZcIBG2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBJWJ1aWxkZXJuYW1lOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CARBidWlsZG51bWJlcjo1NjkxwgEHY3B1OmFybcIBSmRhdGE6NzY4OTgxYTkzNmZjNjM4OWFmNzk2YzAwYTM1NTRkMzUxMGFjZTQyMDQwMDVmNDQ3ODk3ZmI4ZmEwMjhlZjA2Ni8xMjE1wgEMaWQ6bWFjLTM0LWg3wgEUbWFjX21vZGVsOk1hY21pbmk5LDHCARtuYW1lOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGXCAQ1uaW5qYV90YXJnZXQ6wgEGb3M6TWFjwgEfcGFyZW50X3Rhc2tfaWQ6NjkyMjI1ODQwMmU1NDkxMcIBGnBvb2w6Y2hyb21lLnRlc3RzLnBlcmYtcGdvwgELcHJpb3JpdHk6MjXCARBwcm9qZWN0OmNocm9taXVtwgEKcHVycG9zZTpDScIBE3B1cnBvc2U6cG9zdC1jb21taXTCATdyYmU6cHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlwgEPcmVhbG06Y2hyb21lOmNpwgFMc2VydmljZV9hY2NvdW50OmNocm9tZS10ZXN0ZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBB3NoYXJkOjLCAS1zcGVjX25hbWU6Y2hyb21lLmNpOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CASZzdGVwbmFtZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlIG9uIE1hY8IBG3N3YXJtaW5nLnBvb2wudGVtcGxhdGU6cHJvZMIBPnN3YXJtaW5nLnBvb2wudmVyc2lvbjoyYTE3MDZkM2VhYzgxNDhkZmQwNDVlNjhkOTU4N2MwMjQ2MmU3NzRmwgEPdGVzdF9pZF9wcmVmaXg6wgEhdGVzdF9zdWl0ZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlwgEJdXNlcjpub25lwgEld2F0ZXJmYWxsX2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBL3dhdGVyZmFsbF9idWlsZGVybmFtZTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdv2gHgBQpKChppbmZyYS90b29scy9jaXBkL21hYy1hcm02NBIsWDNDZWp5dkhJelEtYWY2SFpqVmVRbjlIbU1lRkZndnpiMkcxZklfMWVOVUMSaAofaW5mcmEvdG9vbHMvbHVjaS1hdXRoL21hYy1hcm02NBIsX1hIcERKSUp6SExjNW56UEU3NjFIZnE3bFI5emxvZnp3RUZJSEJTeWlSMEMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEnEKKGluZnJhL3Rvb2xzL2x1Y2kvbG9nZG9nL2J1dGxlci9tYWMtYXJtNjQSLDFJQkljZEpNMFAwN0N2VXJvNjkxandOeHFBeHhkaWhVNnA2WXlfV1FWOEFDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJsCiNpbmZyYS90b29scy9sdWNpL3ZweXRob24zL21hYy1hcm02NBIsZVJlb1pxc2pQbEFyTHYzSU90bzBkYUx3QlY1dEJ1WVpoTkxnVXh0UXVRWUMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEmIKGWluZnJhL3Rvb2xzL3JkYi9tYWMtYXJtNjQSLHgxMDVTYklxQnAxLXVSMl81R3BEZXJvaE5Fa01pY3hBZE0tSlJrVDdkUXdDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJtCiRpbmZyYS90b29scy9yZXN1bHRfYWRhcHRlci9tYWMtYXJtNjQSLFdCNzdBRDkzMUJ2YTFfTnA4WktuOWVmbDVJOFIxZGd6c0F4bE1JMTRNaWNDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJ0CiJpbmZyYS8zcHAvdG9vbHMvY3B5dGhvbjMvbWFjLWFybTY0EiwzV2loNjhkWnY0WFZQa2xjMEhxZnF1Y3dOWUEzZHlLQ1N2Yjd2am9uNGhRQxogLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMvY3B5dGhvbjPiARA2OTIyMmU0Nzc5N2UzYTEx8gFTChJyZXN1bHRzLmFwaS5jci5kZXYSPWludm9jYXRpb25zL3Rhc2stY2hyb21lLXN3YXJtaW5nLmFwcHNwb3QuY29tLTY5MjIyZTQ3Nzk3ZTNhMTE=" + } + }, + { + "ID": "3ff526990612caf6", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/GetResult", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "18" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "ChA2OTIyMmU0M2M2YzFiYTEw" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "2969" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:46:59 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "15900a756860deed83f64c346f9dccc0" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "ChA2OTIyMmU0M2M2YzFiYTEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSJQoGY2FjaGVzEht0YXNrX3RlbXBsYXRlX3ZweXRob25fY2FjaGUSGgoNY2lwZF9wbGF0Zm9ybRIJbWFjLWFybTY0EgoKBWNvcmVzEgE4EjYKA2NwdRIDYXJtEgZhcm0tNjQSBWFybTY0Eghhcm02NC02NBIRYXJtNjQtNjQtQXBwbGVfTTESFQoQZGlzcGxheV9hdHRhY2hlZBIBMRISCglkdXRfc3RhdGUSBXJlYWR5EggKA2djZRIBMBIWCgNncHUSBWFwcGxlEghhcHBsZTptMRIKCgVoaWRwaRIBMBIPCgJpZBIJbWFjLTMzLWg3EhIKDWluc2lkZV9kb2NrZXISATASFwoJbWFjX21vZGVsEgpNYWNtaW5pOSwxEhwKDG1hY2hpbmVfdHlwZRIMbjEtaGlnaGNwdS04EjoKAm9zEgNNYWMSBk1hYy0xMxIITWFjLTEzLjMSCk1hYy0xMy4zLjESEU1hYy0xMy4zLjEtMjJFMjYxEh0KBHBvb2wSFWNocm9tZS50ZXN0cy5wZXJmLXBnbxIYCgpwdXBwZXRfZW52Egpwcm9kdWN0aW9uEhgKBnB5dGhvbhIBMxIDMy44EgYzLjguMTASHgoOc2VydmVyX3ZlcnNpb24SDDc2MTEtMGU2MTRiOBIICgNzc2QSATESEgoJdWZzX3N0YXRlEgVyZWFkeRIWCgh1ZnNfem9uZRIKWk9ORV9JQUQ5NxIvCgR6b25lEgJ1cxIGdXMtaWFkEgt1cy1pYWQtZ29sbxIOdXMtaWFkLWdvbG8taDcaCW1hYy0zMy1oNyILCJW1nLEGEPCQpCEqQGU5NThhNmE5NmZiYThjZDk5NTNiMTQ2ZWMzZDQwYWNhNDgzZmY4NDM0ZTE4ODI5Yzc1ZDU3NDdiMGFjMzZkNDEyEWNocm9tZS1pbmZyYS1sb2dzQgsIno6dsQYQoJ+RJFILCL+FnbEGEIDuwWlljECJRIIBCwiejp2xBhCgn5EkigF8CjNwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2USRQpAZTdhMWRlZTI2MTg3MzQ2NDM1ZDcxNTJiYTI4YzEzMmZiY2M1OGI4OWFiNDkxMjBkYWE5ODBiMDU4ZTJiZTY4ORCjBJIBDDc2MTEtMGU2MTRiOJoBDAjAhZ2xBhC4o+atAaABcLIBBFhVqT66AURwZXJmb3JtYW5jZV90ZXN0X3N1aXRlL01hYy83Njg5ODFhOTM2L21hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ28vNTY5McIBU2F1dGhlbnRpY2F0ZWQ6dXNlcjpjaHJvbWUtY2ktYnVpbGRlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgE3Ym90bmFtZTpsdWNpLWNocm9tZS1jaS1tYWMtbTEtbWluaS0yMDIwLXBnby1wZXJmLTAtbTEzYsIBCWJ1Y2tldDpjacIBG2J1aWxkX2lzX2V4cGVyaW1lbnRhbDpmYWxzZcIBG2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBJWJ1aWxkZXJuYW1lOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CARBidWlsZG51bWJlcjo1NjkxwgEHY3B1OmFybcIBSmRhdGE6NzY4OTgxYTkzNmZjNjM4OWFmNzk2YzAwYTM1NTRkMzUxMGFjZTQyMDQwMDVmNDQ3ODk3ZmI4ZmEwMjhlZjA2Ni8xMjE1wgEMaWQ6bWFjLTMzLWg3wgEUbWFjX21vZGVsOk1hY21pbmk5LDHCARtuYW1lOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGXCAQ1uaW5qYV90YXJnZXQ6wgEGb3M6TWFjwgEfcGFyZW50X3Rhc2tfaWQ6NjkyMjI1ODQwMmU1NDkxMcIBGnBvb2w6Y2hyb21lLnRlc3RzLnBlcmYtcGdvwgELcHJpb3JpdHk6MjXCARBwcm9qZWN0OmNocm9taXVtwgEKcHVycG9zZTpDScIBE3B1cnBvc2U6cG9zdC1jb21taXTCATdyYmU6cHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlwgEPcmVhbG06Y2hyb21lOmNpwgFMc2VydmljZV9hY2NvdW50OmNocm9tZS10ZXN0ZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBB3NoYXJkOjHCAS1zcGVjX25hbWU6Y2hyb21lLmNpOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CASZzdGVwbmFtZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlIG9uIE1hY8IBG3N3YXJtaW5nLnBvb2wudGVtcGxhdGU6cHJvZMIBPnN3YXJtaW5nLnBvb2wudmVyc2lvbjoyYTE3MDZkM2VhYzgxNDhkZmQwNDVlNjhkOTU4N2MwMjQ2MmU3NzRmwgEPdGVzdF9pZF9wcmVmaXg6wgEhdGVzdF9zdWl0ZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlwgEJdXNlcjpub25lwgEld2F0ZXJmYWxsX2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBL3dhdGVyZmFsbF9idWlsZGVybmFtZTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdv2gHgBQpKChppbmZyYS90b29scy9jaXBkL21hYy1hcm02NBIsWDNDZWp5dkhJelEtYWY2SFpqVmVRbjlIbU1lRkZndnpiMkcxZklfMWVOVUMSaAofaW5mcmEvdG9vbHMvbHVjaS1hdXRoL21hYy1hcm02NBIsX1hIcERKSUp6SExjNW56UEU3NjFIZnE3bFI5emxvZnp3RUZJSEJTeWlSMEMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEnEKKGluZnJhL3Rvb2xzL2x1Y2kvbG9nZG9nL2J1dGxlci9tYWMtYXJtNjQSLDFJQkljZEpNMFAwN0N2VXJvNjkxandOeHFBeHhkaWhVNnA2WXlfV1FWOEFDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJsCiNpbmZyYS90b29scy9sdWNpL3ZweXRob24zL21hYy1hcm02NBIsZVJlb1pxc2pQbEFyTHYzSU90bzBkYUx3QlY1dEJ1WVpoTkxnVXh0UXVRWUMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEmIKGWluZnJhL3Rvb2xzL3JkYi9tYWMtYXJtNjQSLHgxMDVTYklxQnAxLXVSMl81R3BEZXJvaE5Fa01pY3hBZE0tSlJrVDdkUXdDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJtCiRpbmZyYS90b29scy9yZXN1bHRfYWRhcHRlci9tYWMtYXJtNjQSLFdCNzdBRDkzMUJ2YTFfTnA4WktuOWVmbDVJOFIxZGd6c0F4bE1JMTRNaWNDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJ0CiJpbmZyYS8zcHAvdG9vbHMvY3B5dGhvbjMvbWFjLWFybTY0EiwzV2loNjhkWnY0WFZQa2xjMEhxZnF1Y3dOWUEzZHlLQ1N2Yjd2am9uNGhRQxogLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMvY3B5dGhvbjPiARA2OTIyMmU0M2M2YzFiYTEx8gFTChJyZXN1bHRzLmFwaS5jci5kZXYSPWludm9jYXRpb25zL3Rhc2stY2hyb21lLXN3YXJtaW5nLmFwcHNwb3QuY29tLTY5MjIyZTQzYzZjMWJhMTE=" + } + }, + { + "ID": "8c3de5b1f684edba", + "Request": { + "Method": "POST", + "URL": "https://chrome-swarming.appspot.com/prpc/swarming.v2.Tasks/GetResult", + "Header": { + "Accept": [ + "application/prpc; encoding=binary" + ], + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "18" + ], + "User-Agent": [ + "pRPC Client 1.4" + ], + "X-Prpc-Grpc-Timeout": [ + "90000000u" + ] + }, + "MediaType": "application/prpc", + "BodyParts": [ + "ChA2OTIyMmU0MGNlNDgxZTEw" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Access-Control-Expose-Headers": [ + "X-Prpc-Grpc-Code" + ], + "Cache-Control": [ + "no-cache" + ], + "Content-Length": [ + "2972" + ], + "Content-Type": [ + "application/prpc; encoding=binary" + ], + "Date": [ + "Tue, 23 Apr 2024 17:46:59 GMT" + ], + "Server": [ + "Google Frontend" + ], + "X-Cloud-Trace-Context": [ + "e35026ab8ff8e800cff45f86e0de254f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Prpc-Grpc-Code": [ + "0" + ] + }, + "Body": "ChA2OTIyMmU0MGNlNDgxZTEwEhsKCmJvdF9jb25maWcSDWJvdF9jb25maWcucHkSJQoGY2FjaGVzEht0YXNrX3RlbXBsYXRlX3ZweXRob25fY2FjaGUSGgoNY2lwZF9wbGF0Zm9ybRIJbWFjLWFybTY0EgoKBWNvcmVzEgE4EjYKA2NwdRIDYXJtEgZhcm0tNjQSBWFybTY0Eghhcm02NC02NBIRYXJtNjQtNjQtQXBwbGVfTTESFQoQZGlzcGxheV9hdHRhY2hlZBIBMRISCglkdXRfc3RhdGUSBXJlYWR5EggKA2djZRIBMBIWCgNncHUSBWFwcGxlEghhcHBsZTptMRIKCgVoaWRwaRIBMBIPCgJpZBIJbWFjLTM3LWg3EhIKDWluc2lkZV9kb2NrZXISATASFwoJbWFjX21vZGVsEgpNYWNtaW5pOSwxEhwKDG1hY2hpbmVfdHlwZRIMbjEtaGlnaGNwdS04EjoKAm9zEgNNYWMSBk1hYy0xMxIITWFjLTEzLjMSCk1hYy0xMy4zLjESEU1hYy0xMy4zLjEtMjJFMjYxEh0KBHBvb2wSFWNocm9tZS50ZXN0cy5wZXJmLXBnbxIYCgpwdXBwZXRfZW52Egpwcm9kdWN0aW9uEhgKBnB5dGhvbhIBMxIDMy44EgYzLjguMTASHgoOc2VydmVyX3ZlcnNpb24SDDc2MTEtMGU2MTRiOBIICgNzc2QSATESEgoJdWZzX3N0YXRlEgVyZWFkeRIWCgh1ZnNfem9uZRIKWk9ORV9JQUQ5NxIvCgR6b25lEgJ1cxIGdXMtaWFkEgt1cy1pYWQtZ29sbxIOdXMtaWFkLWdvbG8taDcaCW1hYy0zNy1oNyILCNWEnbEGEPj97B0qQGU5NThhNmE5NmZiYThjZDk5NTNiMTQ2ZWMzZDQwYWNhNDgzZmY4NDM0ZTE4ODI5Yzc1ZDU3NDdiMGFjMzZkNDEyEWNocm9tZS1pbmZyYS1sb2dzQgwIzIadsQYQwJT60wJSDAi+hZ2xBhCQ0dewAmVIfPFCggEMCMyGnbEGEMCU+tMCigF8CjNwcm9qZWN0cy9jaHJvbWUtc3dhcm1pbmcvaW5zdGFuY2VzL2RlZmF1bHRfaW5zdGFuY2USRQpAN2ZlMjc5ZGE3ZWNlNDk4MzkyZDVhOTJjMDlmNmVkMzQ1NDUxMTQzODY4NzZiMTljZDlmYzMwZTczNzAyZDM3ZBC9A5IBDDc2MTEtMGU2MTRiOJoBDAi/hZ2xBhCow4OmAaABcLIBBFjGKj26AURwZXJmb3JtYW5jZV90ZXN0X3N1aXRlL01hYy83Njg5ODFhOTM2L21hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ28vNTY5McIBU2F1dGhlbnRpY2F0ZWQ6dXNlcjpjaHJvbWUtY2ktYnVpbGRlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlhbS5nc2VydmljZWFjY291bnQuY29twgE3Ym90bmFtZTpsdWNpLWNocm9tZS1jaS1tYWMtbTEtbWluaS0yMDIwLXBnby1wZXJmLTAtbTEzYsIBCWJ1Y2tldDpjacIBG2J1aWxkX2lzX2V4cGVyaW1lbnRhbDpmYWxzZcIBG2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBJWJ1aWxkZXJuYW1lOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CARBidWlsZG51bWJlcjo1NjkxwgEHY3B1OmFybcIBSmRhdGE6NzY4OTgxYTkzNmZjNjM4OWFmNzk2YzAwYTM1NTRkMzUxMGFjZTQyMDQwMDVmNDQ3ODk3ZmI4ZmEwMjhlZjA2Ni8xMjE1wgEMaWQ6bWFjLTM3LWg3wgEUbWFjX21vZGVsOk1hY21pbmk5LDHCARtuYW1lOnBlcmZvcm1hbmNlX3Rlc3Rfc3VpdGXCAQ1uaW5qYV90YXJnZXQ6wgEGb3M6TWFjwgEfcGFyZW50X3Rhc2tfaWQ6NjkyMjI1ODQwMmU1NDkxMcIBGnBvb2w6Y2hyb21lLnRlc3RzLnBlcmYtcGdvwgELcHJpb3JpdHk6MjXCARBwcm9qZWN0OmNocm9taXVtwgEKcHVycG9zZTpDScIBE3B1cnBvc2U6cG9zdC1jb21taXTCATdyYmU6cHJvamVjdHMvY2hyb21lLXN3YXJtaW5nL2luc3RhbmNlcy9kZWZhdWx0X2luc3RhbmNlwgEPcmVhbG06Y2hyb21lOmNpwgFMc2VydmljZV9hY2NvdW50OmNocm9tZS10ZXN0ZXJAY2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbcIBB3NoYXJkOjDCAS1zcGVjX25hbWU6Y2hyb21lLmNpOm1hYy1tMV9taW5pXzIwMjAtcGVyZi1wZ2/CASZzdGVwbmFtZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlIG9uIE1hY8IBG3N3YXJtaW5nLnBvb2wudGVtcGxhdGU6cHJvZMIBPnN3YXJtaW5nLnBvb2wudmVyc2lvbjoyYTE3MDZkM2VhYzgxNDhkZmQwNDVlNjhkOTU4N2MwMjQ2MmU3NzRmwgEPdGVzdF9pZF9wcmVmaXg6wgEhdGVzdF9zdWl0ZTpwZXJmb3JtYW5jZV90ZXN0X3N1aXRlwgEJdXNlcjpub25lwgEld2F0ZXJmYWxsX2J1aWxkZXJfZ3JvdXA6Y2hyb21pdW0ucGVyZsIBL3dhdGVyZmFsbF9idWlsZGVybmFtZTptYWMtbTFfbWluaV8yMDIwLXBlcmYtcGdv2gHgBQpKChppbmZyYS90b29scy9jaXBkL21hYy1hcm02NBIsWDNDZWp5dkhJelEtYWY2SFpqVmVRbjlIbU1lRkZndnpiMkcxZklfMWVOVUMSaAofaW5mcmEvdG9vbHMvbHVjaS1hdXRoL21hYy1hcm02NBIsX1hIcERKSUp6SExjNW56UEU3NjFIZnE3bFI5emxvZnp3RUZJSEJTeWlSMEMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEnEKKGluZnJhL3Rvb2xzL2x1Y2kvbG9nZG9nL2J1dGxlci9tYWMtYXJtNjQSLDFJQkljZEpNMFAwN0N2VXJvNjkxandOeHFBeHhkaWhVNnA2WXlfV1FWOEFDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJsCiNpbmZyYS90b29scy9sdWNpL3ZweXRob24zL21hYy1hcm02NBIsZVJlb1pxc2pQbEFyTHYzSU90bzBkYUx3QlY1dEJ1WVpoTkxnVXh0UXVRWUMaFy50YXNrX3RlbXBsYXRlX3BhY2thZ2VzEmIKGWluZnJhL3Rvb2xzL3JkYi9tYWMtYXJtNjQSLHgxMDVTYklxQnAxLXVSMl81R3BEZXJvaE5Fa01pY3hBZE0tSlJrVDdkUXdDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJtCiRpbmZyYS90b29scy9yZXN1bHRfYWRhcHRlci9tYWMtYXJtNjQSLFdCNzdBRDkzMUJ2YTFfTnA4WktuOWVmbDVJOFIxZGd6c0F4bE1JMTRNaWNDGhcudGFza190ZW1wbGF0ZV9wYWNrYWdlcxJ0CiJpbmZyYS8zcHAvdG9vbHMvY3B5dGhvbjMvbWFjLWFybTY0EiwzV2loNjhkWnY0WFZQa2xjMEhxZnF1Y3dOWUEzZHlLQ1N2Yjd2am9uNGhRQxogLnRhc2tfdGVtcGxhdGVfcGFja2FnZXMvY3B5dGhvbjPiARA2OTIyMmU0MGNlNDgxZTEx8gFTChJyZXN1bHRzLmFwaS5jci5kZXYSPWludm9jYXRpb25zL3Rhc2stY2hyb21lLXN3YXJtaW5nLmFwcHNwb3QuY29tLTY5MjIyZTQwY2U0ODFlMTE=" + } + } + ] +} \ No newline at end of file
diff --git a/perf/go/perfresults/testdata/LoadPerfResults_ValidFullResults.rpc b/perf/go/perfresults/testdata/LoadPerfResults_ValidFullResults.rpc new file mode 100644 index 0000000..d99a2f9 --- /dev/null +++ b/perf/go/perfresults/testdata/LoadPerfResults_ValidFullResults.rpc Binary files differ