
Engflow Artifacts
- 31 installs
- 32.4k repo stars
- Updated July 30, 2026
- cockroachdb/cockroach
Downloads test logs, artifacts, and outputs.zip from EngFlow CI invocations to investigate CockroachDB test failures.
About
Uses a bundled script to list failed targets and download per-shard artifacts from EngFlow CI invocations. A developer uses it to pull logs when investigating CockroachDB CI test failures.
- targets/list/download commands over EngFlow invocations
- Requires engflow_auth login to mesolite.cluster.engflow.com
Engflow Artifacts by the numbers
- 31 all-time installs (skills.sh)
- Ranked #1,347 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cockroachdb/cockroach --skill engflow-artifactsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 31 |
|---|---|
| repo stars | ★ 32.4k |
| Last updated | July 30, 2026 |
| Repository | cockroachdb/cockroach ↗ |
What it does
Downloads test logs, artifacts, and outputs.zip from EngFlow CI invocations to investigate CockroachDB test failures.
Files
EngFlow Artifact Download
Download test logs and artifacts from EngFlow CI invocations (mesolite.cluster.engflow.com) using engflow_artifacts.py (co-located in this skill directory).
Prerequisites
The engflow_auth CLI must be installed and authenticated:
# One-time login (opens browser for Google SSO)
engflow_auth login mesolite.cluster.engflow.com
# Verify authentication
engflow_auth export mesolite.cluster.engflow.comQuick Reference
Use run.sh to invoke the script — it manages a local venv with dependencies automatically. The script is at .claude/skills/engflow-artifacts/run.sh:
| Command | Purpose |
|---|---|
targets <ID> | List failed targets in an invocation |
list <ID> --target <LABEL> | List per-shard artifacts for a target |
download <ID> --target <LABEL> --shard N | Download artifacts for a shard |
download <ID> --target <LABEL> --shard N --run M | Download a specific run |
blob <HASH> <SIZE> | Download a specific CAS blob |
url '<FULL_URL>' | Download from a full EngFlow invocation URL |
Typical Investigation Workflow
EF=.claude/skills/engflow-artifacts/run.sh
# 1. Find what failed
./$EF targets daa807a0-3589-40a5-94b5-3440c7490d6a
# 2. List shards for the failed target
./$EF list daa807a0-3589-40a5-94b5-3440c7490d6a \
--target '//pkg/sql/ttl:ttl_test'
# 3. Download the failing shard's logs
./$EF download daa807a0-3589-40a5-94b5-3440c7490d6a \
--target '//pkg/sql/ttl:ttl_test' --shard 100 --outdir /tmp/engflow-test
# 4. Read the test log
cat /tmp/engflow-test/test.log
# 5. Inspect extracted CockroachDB server logs from outputs.zip
ls /tmp/engflow-test/Per-Shard Artifacts
Every shard has:
- test.xml — JUnit XML test results (referenced via CompactDigest: raw 32-byte SHA-256 hash)
- test.log — stdout/stderr from the test run (referenced via bytestream:// URL)
Some shards also have:
- outputs.zip — CockroachDB server logs captured during the test
- manifest — lists files in outputs.zip
How It Works
- `engflow_auth export` provides a JWT token.
- gRPC-web calls via curl to EngFlow's internal
v1alphaResultStore API (GetTarget, GetTargetLabelsByStatus). - Protobuf parsing via
google.protobufwith a reverse-engineered.protoschema (resultstore.proto). Responses are properly deserialized — shard numbers and run numbers come from actual protobuf fields, not byte-pattern heuristics. - CAS blob downloads via curl with the auth token as a cookie.
outputs.zipis auto-extracted after download.
Each test target has multiple shards (parallel test splits) and runs (repeated executions). Use --shard to select a shard and --run to select a run (defaults to run 1). Shard numbers are 1-based and match the testReportShard parameter in EngFlow URLs.
EngFlow's gRPC-web endpoint requires HTTP/2, so the script uses curl (which negotiates HTTP/2 via ALPN) rather than Python HTTP libraries that only speak HTTP/1.1. Dependencies are installed automatically by run.sh.
Extracted outputs.zip Structure
logTestName123456/
test.log # short log
test.{node-id}.roach.{timestamp}.log # full structured log
test-health.log # health channel
test-storage.log # storage channel
test-kv-distribution.log # KV distribution channelURL Structure
Invocation page: https://mesolite.cluster.engflow.com/invocations/default/{INVOCATION_ID}
With filters: ?testReportRun=1&testReportShard={N}&testReportAttempt=1&treeFilterStatus=failed#targets-{BASE64_TARGET}
Tips
- Blob hashes are SHA-256. Sizes are in bytes.
- Use
listto find which shard hasoutputs.zip(not all shards produce one). - If
engflow_auth exportfails, re-authenticate withengflow_auth login mesolite.cluster.engflow.com. - Default output directory is
/tmp/engflow-artifacts. --allflag ontargetsshows both passed and failed targets.
__pycache__/
.venv/
#!/usr/bin/env python3
# Copyright 2026 The Cockroach Authors.
#
# Use of this software is governed by the CockroachDB Software License
# included in the /LICENSE file.
"""Tests for engflow_artifacts.py using checked-in protobuf response payloads.
Run: python3 -m pytest engflow_artifacts_test.py -v
or: python3 engflow_artifacts_test.py
"""
import json
import os
import sys
import unittest
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from engflow_artifacts import (
parse_labels_response,
parse_target_response,
parse_invocation_url,
_parse_bytestream_uri,
)
TESTDATA = os.path.join(os.path.dirname(os.path.abspath(__file__)), "testdata")
def _load_fixture(name):
with open(os.path.join(TESTDATA, name), "rb") as f:
return f.read()
def _load_golden(name):
with open(os.path.join(TESTDATA, name)) as f:
return json.load(f)
class TestParseLabelsResponse(unittest.TestCase):
"""Tests for GetTargetLabelsByStatus response parsing."""
def test_golden(self):
"""Parse labels_response.bin and compare to golden output."""
data = _load_fixture("labels_response.bin")
labels = parse_labels_response(data)
expected = _load_golden("labels_response.golden.json")
self.assertEqual(labels, expected)
def test_labels_are_sorted_target_strings(self):
data = _load_fixture("labels_response.bin")
labels = parse_labels_response(data)
for label in labels:
self.assertTrue(
label.startswith("//"),
f"Expected Bazel target label, got: {label}",
)
def test_empty_response(self):
labels = parse_labels_response(b"")
self.assertEqual(labels, [])
class TestParseTargetResponse(unittest.TestCase):
"""Tests for GetTarget response parsing."""
def test_oidcccl_golden(self):
"""Parse target_oidcccl.bin (1 shard, 3 runs) against golden."""
data = _load_fixture("target_oidcccl.bin")
actions, (total_shards, total_entries) = parse_target_response(data)
golden = _load_golden("target_oidcccl.golden.json")
self.assertEqual(total_shards, golden["total_shards"])
self.assertEqual(total_entries, golden["total_entries"])
got = {
f"{s},{r}": {k: list(v) for k, v in artifacts.items()}
for (s, r), artifacts in sorted(actions.items())
}
self.assertEqual(got, golden["actions"])
def test_kvserver_golden(self):
"""Parse target_kvserver.bin (48 shards, 3 runs) against golden."""
data = _load_fixture("target_kvserver.bin")
actions, (total_shards, total_entries) = parse_target_response(data)
golden = _load_golden("target_kvserver.golden.json")
self.assertEqual(total_shards, golden["total_shards"])
self.assertEqual(total_entries, golden["total_entries"])
got = {
f"{s},{r}": {k: list(v) for k, v in artifacts.items()}
for (s, r), artifacts in sorted(actions.items())
}
self.assertEqual(got, golden["actions"])
def test_kvserver_shard_count(self):
"""kvserver_test should have 48 unique shards, 3 runs each."""
data = _load_fixture("target_kvserver.bin")
actions, (total_shards, total_entries) = parse_target_response(data)
shard_nums = sorted({s for s, r in actions})
run_nums = sorted({r for s, r in actions})
self.assertEqual(len(shard_nums), 48)
self.assertEqual(shard_nums, list(range(1, 49)))
self.assertEqual(run_nums, [1, 2, 3])
self.assertEqual(len(actions), 144) # 48 * 3
def test_kvserver_shard_20_has_outputs(self):
"""Shard 20 run 1 is the failing shard and should have outputs.zip."""
data = _load_fixture("target_kvserver.bin")
actions, _ = parse_target_response(data)
shard_20 = actions[(20, 1)]
self.assertIn("test.log", shard_20)
self.assertIn("test.xml", shard_20)
self.assertIn("outputs.zip", shard_20)
self.assertIn("manifest", shard_20)
# The test.xml for the failing shard should be notably larger
# than a passing shard's test.xml (contains stack traces).
failing_xml_size = shard_20["test.xml"][1]
passing_xml_size = actions[(1, 1)]["test.xml"][1]
self.assertGreater(failing_xml_size, passing_xml_size * 5)
def test_kvserver_passing_shard_no_outputs(self):
"""A passing shard (e.g. shard 1 run 1) should NOT have outputs.zip."""
data = _load_fixture("target_kvserver.bin")
actions, _ = parse_target_response(data)
shard_1 = actions[(1, 1)]
self.assertIn("test.log", shard_1)
self.assertIn("test.xml", shard_1)
self.assertNotIn("outputs.zip", shard_1)
self.assertNotIn("manifest", shard_1)
def test_oidcccl_single_shard_three_runs(self):
"""oidcccl_test has 1 shard and 3 runs."""
data = _load_fixture("target_oidcccl.bin")
actions, _ = parse_target_response(data)
shard_nums = {s for s, r in actions}
run_nums = {r for s, r in actions}
self.assertEqual(shard_nums, {1})
self.assertEqual(run_nums, {1, 2, 3})
def test_artifact_hashes_are_valid_sha256(self):
"""All artifact hashes should be 64-char hex strings."""
data = _load_fixture("target_oidcccl.bin")
actions, _ = parse_target_response(data)
for (shard, run), artifacts in actions.items():
for name, (blob_hash, size) in artifacts.items():
self.assertEqual(
len(blob_hash), 64,
f"shard {shard} run {run} {name}: "
f"hash length {len(blob_hash)} != 64",
)
int(blob_hash, 16) # Should not raise.
self.assertGreater(size, 0)
class TestParseInvocationUrl(unittest.TestCase):
"""Tests for EngFlow invocation URL parsing."""
def test_full_url(self):
url = (
"https://mesolite.cluster.engflow.com/invocations/default/"
"0f3c3923-460d-4399-8718-df764fdcf793"
"?testReportRun=1&testReportShard=20&testReportAttempt=1"
"#targets-Ly9wa2cva3Yva3ZzZXJ2ZXI6a3ZzZXJ2ZXJfdGVzdA=="
)
inv_id, target, shard, run, attempt = parse_invocation_url(url)
self.assertEqual(inv_id, "0f3c3923-460d-4399-8718-df764fdcf793")
self.assertEqual(target, "//pkg/kv/kvserver:kvserver_test")
self.assertEqual(shard, 20)
self.assertEqual(run, 1)
self.assertEqual(attempt, 1)
def test_url_without_params(self):
url = (
"https://mesolite.cluster.engflow.com/invocations/default/"
"abc12345-1234-5678-9abc-def012345678"
)
inv_id, target, shard, run, attempt = parse_invocation_url(url)
self.assertEqual(inv_id, "abc12345-1234-5678-9abc-def012345678")
self.assertIsNone(target)
self.assertIsNone(shard)
self.assertIsNone(run)
self.assertIsNone(attempt)
class TestParseBytestreamUri(unittest.TestCase):
"""Tests for bytestream:// URI parsing."""
def test_valid_uri(self):
uri = (
"bytestream://mesolite.cluster.engflow.com/blobs/"
"ef3bac04483976e0dc5b77760c14f3d4cf482159d0cc5d6bd58240bc67fe825f"
"/15787"
)
blob_hash, size = _parse_bytestream_uri(uri)
self.assertEqual(
blob_hash,
"ef3bac04483976e0dc5b77760c14f3d4cf482159d0cc5d6bd58240bc67fe825f",
)
self.assertEqual(size, 15787)
def test_invalid_uri(self):
blob_hash, size = _parse_bytestream_uri("not-a-uri")
self.assertIsNone(blob_hash)
self.assertEqual(size, 0)
if __name__ == "__main__":
unittest.main()
#!/usr/bin/env python3
# Copyright 2026 The Cockroach Authors.
#
# Use of this software is governed by the CockroachDB Software License
# included in the /LICENSE file.
"""
EngFlow artifact downloader.
Authentication (in priority order):
1. mTLS certificates: set ENGFLOW_CERT_FILE and ENGFLOW_KEY_FILE env vars
2. JWT from env: set ENGFLOW_TOKEN env var
3. JWT from CLI: uses engflow_auth export (requires prior login)
Usage:
# List all targets and their artifacts for an invocation
python3 engflow_artifacts.py list <invocation_id> --target <target_label>
# Download artifacts for a specific shard
python3 engflow_artifacts.py download <invocation_id> --target <target> --shard N
# Download a specific blob by hash/size
python3 engflow_artifacts.py blob <hash> <size> [--outfile FILE]
# Discover failed targets in an invocation
python3 engflow_artifacts.py targets <invocation_id>
"""
import argparse
import json
import os
import re
import struct
import subprocess
import sys
import tempfile
# Generated from resultstore.proto — the reverse-engineered subset of
# EngFlow's internal ResultStore v1alpha API that we need for artifact
# downloading. See the proto file for field documentation.
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import resultstore_pb2 as pb
ENGFLOW_HOST = "mesolite.cluster.engflow.com"
ENGFLOW_URL = f"https://{ENGFLOW_HOST}"
CAS_API = f"{ENGFLOW_URL}/api/contentaddressablestorage/v1/instances/default/blobs"
GRPC_URL = f"{ENGFLOW_URL}/engflow.resultstore.v1alpha.ResultStore"
# Artifact name mappings from EngFlow's internal names to user-facing names.
_ARTIFACT_NAMES = {
"test.outputs__outputs.zip": "outputs.zip",
"test.outputs_manifest__MANIFEST": "manifest",
}
def get_curl_auth_args():
"""Return curl arguments for EngFlow authentication.
Tries, in order:
1. mTLS — ENGFLOW_CERT_FILE and ENGFLOW_KEY_FILE env vars
2. JWT from env — ENGFLOW_TOKEN env var
3. JWT from CLI — engflow_auth export (interactive login required)
"""
cert = os.environ.get("ENGFLOW_CERT_FILE")
key = os.environ.get("ENGFLOW_KEY_FILE")
if cert and key:
return ["--cert", cert, "--key", key]
token = os.environ.get("ENGFLOW_TOKEN")
if not token:
try:
result = subprocess.run(
["engflow_auth", "export", ENGFLOW_HOST],
capture_output=True, text=True,
)
except FileNotFoundError:
print("Error: engflow_auth not found on PATH.", file=sys.stderr)
print(
"Install engflow_auth, or set ENGFLOW_TOKEN, or configure "
"ENGFLOW_CERT_FILE and ENGFLOW_KEY_FILE.",
file=sys.stderr,
)
sys.exit(1)
if result.returncode != 0:
print(
f"Error: engflow_auth export failed: {result.stderr}",
file=sys.stderr,
)
print(
"Run: engflow_auth login mesolite.cluster.engflow.com",
file=sys.stderr,
)
sys.exit(1)
try:
data = json.loads(result.stdout)
token = data["token"]["access_token"]
except (json.JSONDecodeError, KeyError):
print(
"Error: Failed to parse access token from engflow_auth output.",
file=sys.stderr,
)
print(
"Try running: engflow_auth login mesolite.cluster.engflow.com "
"or set ENGFLOW_TOKEN directly.",
file=sys.stderr,
)
sys.exit(1)
return [
"-H", "x-engflow-auth-method: jwt-v0",
"-H", f"x-engflow-auth-token: {token}",
"-H", f"Cookie: x-engflow-auth={token}",
]
def grpc_call(auth_args, method, proto_bytes):
"""Make a gRPC-web call via curl and return the response protobuf bytes.
EngFlow's gRPC-web endpoint requires HTTP/2 — it serves the web UI HTML
over HTTP/1.1. We use curl because it negotiates HTTP/2 via ALPN, while
Python's requests/urllib only speak HTTP/1.1.
The gRPC-web framing is a 5-byte header (1 byte flags + 4 byte big-endian
length) around each protobuf message. Large responses may span multiple
data frames; a trailer frame (flag 0x80) carries the gRPC status.
"""
frame = struct.pack(">BI", 0, len(proto_bytes)) + proto_bytes
url = f"{GRPC_URL}/{method}"
with tempfile.NamedTemporaryFile(suffix=".bin", delete=False) as tmp:
tmp.write(frame)
tmp_path = tmp.name
try:
result = subprocess.run(
[
"curl", "-s", "--data-binary", f"@{tmp_path}",
"-H", "Content-Type: application/grpc-web+proto",
"-H", "x-grpc-web: 1",
] + auth_args + [url],
capture_output=True,
)
finally:
os.unlink(tmp_path)
data = result.stdout
if result.returncode != 0 or len(data) < 5:
print(f"gRPC call to {method} failed", file=sys.stderr)
if result.stderr:
print(f" curl error: {result.stderr.decode()}", file=sys.stderr)
return b""
# Parse gRPC-web frames. Data frames have flag=0x00; the trailer
# frame has flag=0x80. Large responses may span multiple data frames.
payload = b""
pos = 0
while pos + 5 <= len(data):
flag = data[pos]
frame_len = struct.unpack(">I", data[pos + 1:pos + 5])[0]
if flag == 0x80:
trailer = data[pos + 5:pos + 5 + frame_len].decode(
"utf-8", errors="replace",
)
if "grpc-status: 0" not in trailer and "grpc-status:0" not in trailer:
print(f"gRPC error: {trailer}", file=sys.stderr)
return b""
break
payload += data[pos + 5:pos + 5 + frame_len]
pos += 5 + frame_len
return payload
def download_blob(auth_args, blob_hash, blob_size, outfile):
"""Download a blob from the CAS API via curl."""
url = f"{CAS_API}/{blob_hash}/{blob_size}"
result = subprocess.run(
["curl", "-s"] + auth_args + ["-o", outfile, url],
capture_output=True,
)
if result.returncode != 0:
print(
f" Error downloading blob: {result.stderr.decode()}",
file=sys.stderr,
)
return 0
return os.path.getsize(outfile)
def get_target_labels_by_status(auth_args, instance, invocation_id, status_code):
"""Call GetTargetLabelsByStatus and return target labels.
Status codes: 0x08 = passed, 0x09 = failed.
"""
req = pb.GetTargetLabelsByStatusRequest(
instance=instance,
invocation_id=invocation_id,
status=bytes([status_code]),
limit=100,
)
resp_bytes = grpc_call(
auth_args, "GetTargetLabelsByStatus", req.SerializeToString(),
)
if not resp_bytes:
return []
return parse_labels_response(resp_bytes)
def parse_target_response(resp_bytes):
"""Parse a GetTarget response into test actions keyed by (shard, run).
Returns a dict mapping (shard_number, run_number) to a dict of artifacts:
{(shard, run): {"test.xml": (hash, size), "test.log": (hash, size), ...}}
Also returns (total_shards, total_entries) as a second value.
"""
resp = pb.GetTargetResponse()
resp.ParseFromString(resp_bytes)
collection = resp.target.info.test_suite.test_actions
actions = {}
for action in collection.actions:
shard_artifacts = {}
data = action.data
# test.xml from CompactDigest.
if data.test_xml_digest.size_bytes > 0:
shard_artifacts["test.xml"] = (
data.test_xml_digest.hash.hex(),
data.test_xml_digest.size_bytes,
)
# test.log.
if data.test_log.bytestream_uri:
blob_hash, size = _parse_bytestream_uri(
data.test_log.bytestream_uri,
)
if blob_hash:
shard_artifacts["test.log"] = (blob_hash, size)
# outputs.zip, manifest.
for ref in data.output_files:
name = _ARTIFACT_NAMES.get(ref.name, ref.name)
if ref.bytestream_uri:
blob_hash, size = _parse_bytestream_uri(ref.bytestream_uri)
if blob_hash:
shard_artifacts[name] = (blob_hash, size)
actions[(action.shard, action.run)] = shard_artifacts
return actions, (collection.total_shards, collection.total_entries)
def parse_labels_response(resp_bytes):
"""Parse a GetTargetLabelsByStatus response into a list of target labels."""
resp = pb.GetTargetLabelsByStatusResponse()
resp.ParseFromString(resp_bytes)
return list(resp.labels)
def get_target(auth_args, instance, invocation_id, target_label):
"""Call GetTarget and return parsed test actions. See parse_target_response."""
req = pb.GetTargetRequest(
instance=instance,
invocation_id=invocation_id,
target_label=target_label,
)
resp_bytes = grpc_call(auth_args, "GetTarget", req.SerializeToString())
if not resp_bytes:
return {}, (0, 0)
return parse_target_response(resp_bytes)
def _parse_bytestream_uri(uri):
"""Extract (hash, size) from a bytestream:// URI.
Format: bytestream://host/blobs/<sha256>/<size>
"""
m = re.search(r"/blobs/([0-9a-f]{64})/(\d+)", uri)
if not m:
return None, 0
return m.group(1), int(m.group(2))
def parse_invocation_url(url):
"""Parse an EngFlow invocation URL into components.
Returns (invocation_id, target_label, shard, run, attempt).
"""
inv_match = re.search(r"/invocations/default/([0-9a-f-]+)", url)
if not inv_match:
print(
f"Error: cannot parse invocation ID from URL: {url}",
file=sys.stderr,
)
sys.exit(1)
invocation_id = inv_match.group(1)
target_label = None
frag_match = re.search(r"#targets-([A-Za-z0-9+/=_-]+)", url)
if frag_match:
import base64
try:
target_label = base64.b64decode(
frag_match.group(1) + "=="
).decode("utf-8").strip("\x00")
except Exception:
pass
shard = None
run = None
attempt = None
shard_match = re.search(r"testReportShard=(\d+)", url)
if shard_match:
shard = int(shard_match.group(1))
run_match = re.search(r"testReportRun=(\d+)", url)
if run_match:
run = int(run_match.group(1))
attempt_match = re.search(r"testReportAttempt=(\d+)", url)
if attempt_match:
attempt = int(attempt_match.group(1))
return invocation_id, target_label, shard, run, attempt
def _resolve_args(args, need_shard=False):
"""Extract invocation_id, target_label, shard, run from args or --url."""
if getattr(args, "url", None):
invocation_id, target_label, shard, run, _ = parse_invocation_url(
args.url,
)
if not target_label:
print(
"Error: could not extract target from URL. "
"Use --target to specify it.",
file=sys.stderr,
)
sys.exit(1)
if args.shard is not None:
shard = args.shard
if getattr(args, "run", None) is not None:
run = getattr(args, "run")
else:
invocation_id = args.invocation_id
target_label = args.target
shard = args.shard
run = getattr(args, "run", None)
if run is None:
run = 1
if need_shard and shard is None:
print(
"Error: --shard is required "
"(or provide a URL with testReportShard param)",
file=sys.stderr,
)
sys.exit(1)
return invocation_id, target_label, shard, run
def cmd_targets(args):
"""List targets for an invocation, optionally filtered by status."""
auth_args = get_curl_auth_args()
invocation_id = args.invocation_id
if args.all:
labels = set()
for code in [0x08, 0x09]:
labels.update(
get_target_labels_by_status(
auth_args, "default", invocation_id, code,
),
)
labels = sorted(labels)
print(f"All targets ({len(labels)}):")
else:
labels = get_target_labels_by_status(
auth_args, "default", invocation_id, 0x09,
)
if not labels:
print("No failed targets found. Use --all to list all targets.")
return
print(f"Failed targets ({len(labels)}):")
for label in labels:
print(f" {label}")
def cmd_list(args):
"""List artifacts for a target."""
auth_args = get_curl_auth_args()
invocation_id, target_label, filter_shard, filter_run = _resolve_args(args)
actions, (total_shards, total_entries) = get_target(
auth_args, "default", invocation_id, target_label,
)
if not actions:
print("Error: GetTarget returned empty response", file=sys.stderr)
sys.exit(1)
# Collect unique shard numbers, sorted.
shard_nums = sorted({s for s, r in actions})
run_nums = sorted({r for s, r in actions})
print(f"Target: {target_label}")
print(f"Invocation: {invocation_id}")
print(f"Shards: {len(shard_nums)}, Runs: {len(run_nums)}")
print()
for shard_num in shard_nums:
if filter_shard is not None and shard_num != filter_shard:
continue
for run_num in run_nums:
if filter_shard is not None and run_num != filter_run:
continue
key = (shard_num, run_num)
if key not in actions:
continue
shard_data = actions[key]
header = f"Shard {shard_num}"
if len(run_nums) > 1:
header += f" (run {run_num})"
print(f"{header}:")
for name, (blob_hash, size) in sorted(shard_data.items()):
if size < 1048576:
size_str = f"{size:,}"
else:
size_str = f"{size / 1048576:.1f}MB"
print(f" {name:40s} {blob_hash} ({size_str})")
print()
def _download_shard(auth_args, shard_data, shard, outdir, artifact_names):
"""Download artifacts for a single shard."""
os.makedirs(outdir, exist_ok=True)
for name in artifact_names:
if name not in shard_data:
print(f" {name}: not found in shard {shard}")
continue
blob_hash, size = shard_data[name]
outfile = os.path.join(outdir, name)
print(f" Downloading {name} ({size:,} bytes)...")
downloaded = download_blob(auth_args, blob_hash, size, outfile)
print(f" Saved to {outfile} ({downloaded:,} bytes)")
# Auto-extract outputs.zip.
if "outputs.zip" in artifact_names:
zip_path = os.path.join(outdir, "outputs.zip")
if os.path.exists(zip_path):
print("\n Extracting outputs.zip...")
subprocess.run(
["unzip", "-o", zip_path, "-d", outdir],
capture_output=True,
)
print(f" Extracted to {outdir}/")
def cmd_download(args):
"""Download artifacts for a target shard."""
auth_args = get_curl_auth_args()
invocation_id, target_label, shard, run = _resolve_args(
args, need_shard=True,
)
actions, _ = get_target(
auth_args, "default", invocation_id, target_label,
)
if not actions:
print("Error: GetTarget returned empty response", file=sys.stderr)
sys.exit(1)
key = (shard, run)
if key not in actions:
available = sorted({s for s, r in actions})
print(
f"Error: shard {shard} run {run} not found "
f"(available shards: {available})",
file=sys.stderr,
)
sys.exit(1)
artifact_names = args.artifacts or ["test.log", "test.xml", "outputs.zip"]
outdir = args.outdir or "/tmp/engflow-artifacts"
_download_shard(auth_args, actions[key], shard, outdir, artifact_names)
def cmd_blob(args):
"""Download a specific blob by hash and size."""
auth_args = get_curl_auth_args()
outfile = args.outfile or f"/tmp/engflow-artifacts/{args.hash[:12]}"
os.makedirs(os.path.dirname(outfile), exist_ok=True)
print(f"Downloading blob {args.hash}/{args.size}...")
downloaded = download_blob(auth_args, args.hash, args.size, outfile)
print(f"Saved to {outfile} ({downloaded:,} bytes)")
def cmd_url(args):
"""Download artifacts directly from an EngFlow invocation URL."""
auth_args = get_curl_auth_args()
invocation_id, target_label, shard, run, _ = parse_invocation_url(
args.url,
)
if not target_label:
print(
"Error: could not extract target from URL fragment.",
file=sys.stderr,
)
print(
"Provide a URL with #targets-<base64> fragment.",
file=sys.stderr,
)
sys.exit(1)
if shard is None:
print(
"Error: URL has no testReportShard param. Use --shard.",
file=sys.stderr,
)
sys.exit(1)
if run is None:
run = 1
print(f"Invocation: {invocation_id}")
print(f"Target: {target_label}")
print(f"Shard: {shard}, Run: {run}")
print()
actions, _ = get_target(
auth_args, "default", invocation_id, target_label,
)
if not actions:
print("Error: GetTarget returned empty response", file=sys.stderr)
sys.exit(1)
key = (shard, run)
if key not in actions:
available = sorted({s for s, r in actions})
print(
f"Error: shard {shard} run {run} not found "
f"(available shards: {available})",
file=sys.stderr,
)
sys.exit(1)
outdir = args.outdir or "/tmp/engflow-artifacts"
_download_shard(
auth_args, actions[key], shard, outdir,
["test.log", "test.xml", "outputs.zip"],
)
def main():
parser = argparse.ArgumentParser(description="EngFlow artifact downloader")
subparsers = parser.add_subparsers(dest="command", required=True)
# targets command
targets_parser = subparsers.add_parser(
"targets", help="List targets in an invocation",
)
targets_parser.add_argument("invocation_id", help="Invocation ID")
targets_parser.add_argument(
"--all", action="store_true",
help="Show all targets, not just failed",
)
targets_parser.set_defaults(func=cmd_targets)
# list command
list_parser = subparsers.add_parser(
"list", help="List artifacts for a target",
)
list_parser.add_argument("--url", help="EngFlow invocation URL")
list_parser.add_argument(
"invocation_id", nargs="?", help="Invocation ID",
)
list_parser.add_argument("--target", help="Target label")
list_parser.add_argument(
"--shard", type=int, help="Show only this shard",
)
list_parser.add_argument(
"--run", type=int, help="Show only this run (default: 1)",
)
list_parser.set_defaults(func=cmd_list)
# download command
dl_parser = subparsers.add_parser("download", help="Download artifacts")
dl_parser.add_argument("--url", help="EngFlow invocation URL")
dl_parser.add_argument(
"invocation_id", nargs="?", help="Invocation ID",
)
dl_parser.add_argument("--target", help="Target label")
dl_parser.add_argument("--shard", type=int, help="Shard number")
dl_parser.add_argument(
"--run", type=int, help="Run number (default: 1)",
)
dl_parser.add_argument("--outdir", help="Output directory")
dl_parser.add_argument(
"--artifacts", nargs="+",
choices=["test.log", "test.xml", "outputs.zip", "manifest"],
help="Which artifacts to download",
)
dl_parser.set_defaults(func=cmd_download)
# blob command
blob_parser = subparsers.add_parser(
"blob", help="Download a specific blob",
)
blob_parser.add_argument("hash", help="Blob SHA-256 hash")
blob_parser.add_argument("size", help="Blob size in bytes")
blob_parser.add_argument("--outfile", help="Output file path")
blob_parser.set_defaults(func=cmd_blob)
# url command (convenience)
url_parser = subparsers.add_parser(
"url", help="Download from invocation URL",
)
url_parser.add_argument("url", help="Full EngFlow invocation URL")
url_parser.add_argument("--outdir", help="Output directory")
url_parser.set_defaults(func=cmd_url)
args = parser.parse_args()
args.func(args)
if __name__ == "__main__":
main()
protobuf>=4.21.0
# Copyright 2026 The Cockroach Authors.
#
# Use of this software is governed by the CockroachDB Software License
# included in the /LICENSE file.
#
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: resultstore.proto
# Protobuf Python Version: 5.29.1
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
_runtime_version.Domain.PUBLIC,
5,
29,
1,
'',
'resultstore.proto'
)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11resultstore.proto\x12\x1b\x65ngflow.resultstore.v1alpha\"Q\n\x10GetTargetRequest\x12\x10\n\x08instance\x18\x01 \x01(\t\x12\x15\n\rinvocation_id\x18\x02 \x01(\t\x12\x14\n\x0ctarget_label\x18\x03 \x01(\t\"h\n\x1eGetTargetLabelsByStatusRequest\x12\x10\n\x08instance\x18\x01 \x01(\t\x12\x15\n\rinvocation_id\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x0c\x12\r\n\x05limit\x18\x04 \x01(\r\"1\n\x1fGetTargetLabelsByStatusResponse\x12\x0e\n\x06labels\x18\x01 \x03(\t\"H\n\x11GetTargetResponse\x12\x33\n\x06target\x18\x01 \x01(\x0b\x32#.engflow.resultstore.v1alpha.Target\"?\n\x06Target\x12\x35\n\x04info\x18\x01 \x01(\x0b\x32\'.engflow.resultstore.v1alpha.TargetInfo\"H\n\nTargetInfo\x12:\n\ntest_suite\x18\x02 \x01(\x0b\x32&.engflow.resultstore.v1alpha.TestSuite\"l\n\tTestSuite\x12\x16\n\x0eoverall_status\x18\x01 \x01(\x05\x12G\n\x0ctest_actions\x18\x03 \x01(\x0b\x32\x31.engflow.resultstore.v1alpha.TestActionCollection\"}\n\x14TestActionCollection\x12\x38\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\'.engflow.resultstore.v1alpha.TestAction\x12\x14\n\x0ctotal_shards\x18\x05 \x01(\x05\x12\x15\n\rtotal_entries\x18\x06 \x01(\x05\"c\n\nTestAction\x12\x0b\n\x03run\x18\x01 \x01(\x05\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.engflow.resultstore.v1alpha.TestActionData\x12\r\n\x05shard\x18\x03 \x01(\x05\"\xf2\x01\n\x0eTestActionData\x12\x0f\n\x07\x61ttempt\x18\x01 \x01(\x05\x12\x0e\n\x06status\x18\x02 \x01(\x05\x12\x43\n\x0ftest_xml_digest\x18\x06 \x01(\x0b\x32*.engflow.resultstore.v1alpha.CompactDigest\x12>\n\x0coutput_files\x18\x07 \x03(\x0b\x32(.engflow.resultstore.v1alpha.ArtifactRef\x12:\n\x08test_log\x18\x08 \x01(\x0b\x32(.engflow.resultstore.v1alpha.ArtifactRef\"1\n\rCompactDigest\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x12\n\nsize_bytes\x18\x02 \x01(\x04\"3\n\x0b\x41rtifactRef\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0e\x62ytestream_uri\x18\x66 \x01(\tB!\n\x1f\x63om.engflow.resultstore.v1alphab\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'resultstore_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
_globals['DESCRIPTOR']._loaded_options = None
_globals['DESCRIPTOR']._serialized_options = b'\n\037com.engflow.resultstore.v1alpha'
_globals['_GETTARGETREQUEST']._serialized_start=50
_globals['_GETTARGETREQUEST']._serialized_end=131
_globals['_GETTARGETLABELSBYSTATUSREQUEST']._serialized_start=133
_globals['_GETTARGETLABELSBYSTATUSREQUEST']._serialized_end=237
_globals['_GETTARGETLABELSBYSTATUSRESPONSE']._serialized_start=239
_globals['_GETTARGETLABELSBYSTATUSRESPONSE']._serialized_end=288
_globals['_GETTARGETRESPONSE']._serialized_start=290
_globals['_GETTARGETRESPONSE']._serialized_end=362
_globals['_TARGET']._serialized_start=364
_globals['_TARGET']._serialized_end=427
_globals['_TARGETINFO']._serialized_start=429
_globals['_TARGETINFO']._serialized_end=501
_globals['_TESTSUITE']._serialized_start=503
_globals['_TESTSUITE']._serialized_end=611
_globals['_TESTACTIONCOLLECTION']._serialized_start=613
_globals['_TESTACTIONCOLLECTION']._serialized_end=738
_globals['_TESTACTION']._serialized_start=740
_globals['_TESTACTION']._serialized_end=839
_globals['_TESTACTIONDATA']._serialized_start=842
_globals['_TESTACTIONDATA']._serialized_end=1084
_globals['_COMPACTDIGEST']._serialized_start=1086
_globals['_COMPACTDIGEST']._serialized_end=1135
_globals['_ARTIFACTREF']._serialized_start=1137
_globals['_ARTIFACTREF']._serialized_end=1188
# @@protoc_insertion_point(module_scope)
// Copyright 2026 The Cockroach Authors.
//
// Use of this software is governed by the CockroachDB Software License
// included in the /LICENSE file.
// Reverse-engineered subset of EngFlow's internal ResultStore v1alpha API.
// Only the fields we need for artifact downloading are defined; protobuf
// silently ignores unknown fields during deserialization. Field numbers
// were determined empirically by decoding real GetTarget responses.
syntax = "proto3";
package engflow.resultstore.v1alpha;
option java_package = "com.engflow.resultstore.v1alpha";
// ---- Requests ----
message GetTargetRequest {
string instance = 1;
string invocation_id = 2;
string target_label = 3;
}
message GetTargetLabelsByStatusRequest {
string instance = 1;
string invocation_id = 2;
bytes status = 3;
uint32 limit = 4;
}
// ---- Responses ----
message GetTargetLabelsByStatusResponse {
repeated string labels = 1;
}
message GetTargetResponse {
Target target = 1;
}
message Target {
TargetInfo info = 1;
}
message TargetInfo {
// field 1: TargetMetadata (not needed, ignored)
TestSuite test_suite = 2;
}
message TestSuite {
int32 overall_status = 1; // 9 = FAILED
// field 2: test binary info (not needed)
TestActionCollection test_actions = 3;
}
message TestActionCollection {
// fields 1-3: counters and timing (not needed)
repeated TestAction actions = 4;
int32 total_shards = 5;
int32 total_entries = 6;
}
message TestAction {
int32 run = 1;
TestActionData data = 2;
int32 shard = 3;
}
message TestActionData {
int32 attempt = 1;
int32 status = 2; // 2 = PASSED, 3 = FAILED
// field 3: start_time (epoch seconds)
// field 4: duration
// field 5: CAS URL for test output
CompactDigest test_xml_digest = 6;
repeated ArtifactRef output_files = 7;
ArtifactRef test_log = 8;
}
message CompactDigest {
bytes hash = 1; // 32-byte SHA-256
uint64 size_bytes = 2;
}
message ArtifactRef {
string name = 1;
string bytestream_uri = 102;
}
#!/usr/bin/env bash
# Copyright 2026 The Cockroach Authors.
#
# Use of this software is governed by the CockroachDB Software License
# included in the /LICENSE file.
#
# Wrapper that runs engflow_artifacts.py inside a local venv, creating
# it and installing dependencies on first use.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
VENV_DIR="$SCRIPT_DIR/.venv"
if [ ! -d "$VENV_DIR" ]; then
python3 -m venv "$VENV_DIR"
"$VENV_DIR/bin/pip" install --quiet -r "$SCRIPT_DIR/requirements.txt"
fi
exec "$VENV_DIR/bin/python3" "$SCRIPT_DIR/engflow_artifacts.py" "$@"
&//pkg/ccl/workloadccl:workloadccl_test
//pkg/kv/kvserver:kvserver_test [
"//pkg/ccl/workloadccl:workloadccl_test",
"//pkg/kv/kvserver:kvserver_test"
]
ܤ
ؤ
B@0c8cfd5a741439f0f051ddcff19f197aa813fa7be169c1b284b9b968fc6350d3�� fd
,pkg/kv/kvserver/kvserver_test_/kvserver_test�3
default(
3�6���{�U��<�D��Cgn��� ��X�-��͓��
������"������"F�費*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/ef3bac04483976e0dc5b77760c14f3d4cf482159d0cc5d6bd58240bc67fe825f/157872%
��X�F�P�Z~K��,�[g�?\<��'����?B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/ef3bac04483976e0dc5b77760c14f3d4cf482159d0cc5d6bd58240bc67fe825f/15787"������"S���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/46e2cf0a43c20760ea17e8b1e30e91655f322accd8d3a54486483121a2992915/143392%
����?m�v�YI��N�h�.0&8��)��s4Q�7B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/46e2cf0a43c20760ea17e8b1e30e91655f322accd8d3a54486483121a2992915/14339"�����"=����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/bee7b08be7c78754238d1e9a6abb6a74066ee9260dbbd36d89cf4aa07519e11b/140112%
�z��x�v%H)���{�߳����f��
6.�4B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/bee7b08be7c78754238d1e9a6abb6a74066ee9260dbbd36d89cf4aa07519e11b/14011 "�����"O���D*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/45acc6b17abec25db123a728e266df44d1fe0b81977a891ab6b2e099fdb6e0ef/840192%
>�ݞEeTW�Ö�8���{�»���++�FB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/45acc6b17abec25db123a728e266df44d1fe0b81977a891ab6b2e099fdb6e0ef/84019"������":���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/a76659ce9e8b044e70802b8be7660bad5230a45e1838b0ba50840077a79629ed/500722&
o�g
��b��ϊA�۱@�xl;���iJ-4����B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/a76659ce9e8b044e70802b8be7660bad5230a45e1838b0ba50840077a79629ed/50072"�����"T���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/41d6156a9566c05c8fc34d29cb31b01aca84282bf060e9a9585b34d20bf8dfa3/272492%
֍�])�!Ⴓc%��A���34�����~�Я��cB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/41d6156a9566c05c8fc34d29cb31b01aca84282bf060e9a9585b34d20bf8dfa3/27249
"�����"s����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/4780eb8437ac2fda715264ce6712294103eb78480120483b0791cf4895c47d96/148612%
.~�W�g�|�dכJ��ie}���b�̸w�TB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/4780eb8437ac2fda715264ce6712294103eb78480120483b0791cf4895c47d96/14861"�����"N�ְ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f2283e8da2e996175608201c35bc97b11868ccc80e039e89784cd2b9f04b4ca1/244052%
�u3��q�
�5�'Z�jR��}�㟅ZU/�r�gB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f2283e8da2e996175608201c35bc97b11868ccc80e039e89784cd2b9f04b4ca1/24405"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/d5efd17cce5d2fad744ca144b69f72184dbaadedd947895ed8263f210f5db03b/225282%
���G
�����]�6
k���V�z�� �6�HB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/d5efd17cce5d2fad744ca144b69f72184dbaadedd947895ed8263f210f5db03b/22528"�����"c���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/33a8218e3e920cbe1be0fe71c47761a709228f222832b5f9df7534891a312ecb/287712%
��?���'by$����4<O�XWY�j�`�ȥ8��wB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/33a8218e3e920cbe1be0fe71c47761a709228f222832b5f9df7534891a312ecb/28771"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/edd17798472637557918e06ed6ab1d7196523bfbef92cb330a31d0596c87f6a2/268472%
\<&J
��X�n�p�
�xD��5D��v�J�pB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/edd17798472637557918e06ed6ab1d7196523bfbef92cb330a31d0596c87f6a2/26847"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/081165e1153fdb3f1ac44b0cd56965c28ef3caf2a102bb9e5ee3bdf4a896bdea/260272%
%�������}���
57��%�8�M��j������EB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/081165e1153fdb3f1ac44b0cd56965c28ef3caf2a102bb9e5ee3bdf4a896bdea/26027
"�����"n��O*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/aabd2b5d47b490bfa1495508af4f69fe4baf375054ad2f37cd70bf957c4f6da7/212762%
T7�4�^q��F_q�4_x@��RQx�H��O��\B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/aabd2b5d47b490bfa1495508af4f69fe4baf375054ad2f37cd70bf957c4f6da7/21276"�����" ���ۛ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/c922c9e3640089938e060eb06449dd7b235d7afbec21f4507d6bec09341c258e/152152%
�g}P�� �E
�H�lL��MW�fW�s�1t���@B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/c922c9e3640089938e060eb06449dd7b235d7afbec21f4507d6bec09341c258e/15215"�����">���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f3a4fad1bfbf87d6aa59ae37f26646037a6b0b41b9f523b3838a97b21b70cdec/139962%
�7�p�
@���jx/���=�4g?2�8N��>B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f3a4fad1bfbf87d6aa59ae37f26646037a6b0b41b9f523b3838a97b21b70cdec/13996"�����"f����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/5b2e94c97a2b08f27c4a8004f020b68cbfb7d284bdec0778acb873a821d4d7c9/771532%
Ʉ��0�=���f�ǞD�W�6s�H F���3�\B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/5b2e94c97a2b08f27c4a8004f020b68cbfb7d284bdec0778acb873a821d4d7c9/77153"�����"B����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/9bf331620e9559af229c30163f28e9cfc6f4656a703c9a977950fd4cc4cdec7c/201132%
�(.�J ��
5�/"K����!x��}���A�N�SB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/9bf331620e9559af229c30163f28e9cfc6f4656a703c9a977950fd4cc4cdec7c/20113"�����"=��*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/515f80ad46909c47f4b237ee699d6987a04ee14146d90fe8763c3a6b676d682c/271562&
^u����1�Bv��QE�FM���������5���B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/515f80ad46909c47f4b237ee699d6987a04ee14146d90fe8763c3a6b676d682c/27156"�����"l��dz*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f6504642778bdc687ac0bb7ae279e9a83082f6ab38a59ba1ce3eac4a7cc1e284/197932%
]����=�$T�3���#�\���L��� 5u�]�LB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f6504642778bdc687ac0bb7ae279e9a83082f6ab38a59ba1ce3eac4a7cc1e284/19793"�����"I�ޓ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f587be8b789f1765dd94bb86816860be338b48e8ff3f2afaf106861261b5b4c3/757892%
Oe���lB�3\Pz��8�e�M��&P�vgF�`B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f587be8b789f1765dd94bb86816860be338b48e8ff3f2afaf106861261b5b4c3/75789$"�����"Z���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/972b07200ba646481b023460f0bbb23128fbc046b6c36f901f62ecd81d097b08/487242&
������o`��/d��y[(2�b���0��E��B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/972b07200ba646481b023460f0bbb23128fbc046b6c36f901f62ecd81d097b08/48724 "�����"P���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/5dfe864977d9f815241e48b621a0b9ad3400020829df190647175633be18c29a/390292%
�L}Cq��w�&˘����+m�3e=�K�����1B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/5dfe864977d9f815241e48b621a0b9ad3400020829df190647175633be18c29a/39029#"�����"O����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/b4b273d2524f777d9db4d8e3e58925f29e1d125a7265db29ebdf6ef554cfbcb7/701892&
f�^�
a?�ksq;�o9�N�^�gx#�ƚ��B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/b4b273d2524f777d9db4d8e3e58925f29e1d125a7265db29ebdf6ef554cfbcb7/70189""�����"D��ğ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/0beb958a1398f131c50afb68ee07bb672698a98238a2f859d6877f7f03db8be5/832402%
z��@1�K>��&;Q�rV�}� ���|�$�����GB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/0beb958a1398f131c50afb68ee07bb672698a98238a2f859d6877f7f03db8be5/83240'"������" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/1311d7805eeb963ff623ca82791945e531ac80465d6421217d70dd56994d99b4/1397982%
M�w4�%5�ԏT�:f�Θ��1QT���=�\���5B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/1311d7805eeb963ff623ca82791945e531ac80465d6421217d70dd56994d99b4/139798"�����" ����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/62405510354e1bdd44bcbe2555a691db0b75317ae0bd6eaee0e16a9f32e42b25/508702&
i��
v�K������<���<iA���s�>��:�B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/62405510354e1bdd44bcbe2555a691db0b75317ae0bd6eaee0e16a9f32e42b25/50870"�����"����^*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/73d8970fadcb02538ccce844d5a71b013b0d418520ac2fbb7e34ed34ada3d579/166302%
v@�Y�q�K���M*�͆��%/ԑ���U/�GB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/73d8970fadcb02538ccce844d5a71b013b0d418520ac2fbb7e34ed34ada3d579/16630"�����"c�ɕY*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/54e74364674437b9e415c0856b35f426ccd2e894107af411f6d21bd8e5cb48a9/213432%
E��\� �r�u\��ݕ%+�8�1�p�@���"�`B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/54e74364674437b9e415c0856b35f426ccd2e894107af411f6d21bd8e5cb48a9/21343+"�����"l���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/942db88d38c16616b40b81f7c15cb7a02667930054e342b91d978e220ad226e6/1322682%
ڶsM�,�'� 9�_��#z������XX�u�7B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/942db88d38c16616b40b81f7c15cb7a02667930054e342b91d978e220ad226e6/132268-"�����"����H*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/64657d9e984474c5b0fdf048504dc0ae279f6fe9b88efffd8aed251ebe0555df/281862%
ȴ��6�2r�%w�^|�-�/4kpz�\��
�SB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/64657d9e984474c5b0fdf048504dc0ae279f6fe9b88efffd8aed251ebe0555df/28186"�����"U����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/6f52dea3e9cdd02751fa17ae4044cdd2ee5d612886172fe3aa3d31557b80aca1/157372%
P;��Q����DE�/�M á���*㈵���?B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/6f52dea3e9cdd02751fa17ae4044cdd2ee5d612886172fe3aa3d31557b80aca1/157370"�����" ����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/1c1aa67edb194607f75ae20c2c3315ee787fb9ca2291f11397a8b4a78e85a18f/1298122%
\�`� #�c�K�d{�>����B�]|ЀH�=B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/1c1aa67edb194607f75ae20c2c3315ee787fb9ca2291f11397a8b4a78e85a18f/129812,"�����" ��å�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/e6bac2b8c030252a1785d2a0d58171c052bdb12aa2aaadba487387f5a2574a0f/1623042%
����
����z���H�9���$�*�lB�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/e6bac2b8c030252a1785d2a0d58171c052bdb12aa2aaadba487387f5a2574a0f/162304*"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/4975061ae5aecc5f9a2ab5f44c94bb8eee7e7a0a7f14d3719ee353a615645731/168362%
�sq�A�����-qI�ҙ�[�h6͐��i��DB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/4975061ae5aecc5f9a2ab5f44c94bb8eee7e7a0a7f14d3719ee353a615645731/16836/"�����"3���E*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/7f9ea2d24ed39787235319c1fb30fdb785acde30613b41a59d0ac0b6c555eb40/198652%
g@k�;X��l�S
�S���}ɴ��$PM���aB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/7f9ea2d24ed39787235319c1fb30fdb785acde30613b41a59d0ac0b6c555eb40/19865"�����"b�̨�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/7dedff0f030786ca31b10fc82f92e8204a95d0633e3a82eb12e464410763a9d1/76712%
�t?'3E蚬��,��>>*�]���!�5B�
test.log�ubytestream://mesolite.cluster.engflow.com/blobs/7dedff0f030786ca31b10fc82f92e8204a95d0633e3a82eb12e464410763a9d1/7671"�����"o���R*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/a6d51cfe9d2c88191d3a021e6cf919927ed3b7ad95a9cd0e69adb88fd1f54693/252522%
��-�9��t�(D%ϗ�%,�vJvw
ق�V�+�[B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/a6d51cfe9d2c88191d3a021e6cf919927ed3b7ad95a9cd0e69adb88fd1f54693/25252"�����"^���^*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/fe3898af62182be64c52d432caebfa1e166957c303ab5cfca695ff3d50086126/163382%
p���&����U�1�'>i�U^QG�S���XB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/fe3898af62182be64c52d432caebfa1e166957c303ab5cfca695ff3d50086126/16338"�����"r���J*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/ca9d300919802ac81592889597883dcd78c8d88a24b495f9ca765dc4778de5a6/1842382%
*��Ϻ ����ܛ�ICCD��F/�w�$��S��;B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/ca9d300919802ac81592889597883dcd78c8d88a24b495f9ca765dc4778de5a6/184238"�����"A���w*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/8ddcd7da2fad2aac24a8812c539d5c65a42a0981e837965d14eaa75d2240d6bf/289312%
���B��=���((�~� ;�������`��=�]B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/8ddcd7da2fad2aac24a8812c539d5c65a42a0981e837965d14eaa75d2240d6bf/28931%"�����"y��ʮ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/354b7eab3e70f451dbd66ac117f0c9066c2c6d7f97a9c3f80ef162764bad3564/164102%
�.:��G���
�\[7�JY�n
0J� �z��FB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/354b7eab3e70f451dbd66ac117f0c9066c2c6d7f97a9c3f80ef162764bad3564/16410"�����"g��ކ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/fd57fb73558d0ff45402aaa1ee5f2e790f4894b3fb4a7a8e4511ee16c186a95d/245232&
@1���%w�҃�a�i��1��3\��#�[�|цB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/fd57fb73558d0ff45402aaa1ee5f2e790f4894b3fb4a7a8e4511ee16c186a95d/24523"�����"n���s*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/705b9ebca8c846c8abc0e7acd53c50b65ccf8d7b9db6411a682ce5f4fc8e5e35/231762%
�2�RI���/���v1s%9{�m3�_�g�o��jB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/705b9ebca8c846c8abc0e7acd53c50b65ccf8d7b9db6411a682ce5f4fc8e5e35/23176)"�����"}���~*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/1fc8a3cd69f1274c248e9292c1553caca8f7a4b9a626ad6e9470821aae2add72/380242%
!�S��ث��p�n)���d_դ]���`IwU1wC�vB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/1fc8a3cd69f1274c248e9292c1553caca8f7a4b9a626ad6e9470821aae2add72/38024&"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/ffc194aaf4e914945788086caa059073c3896c9ee889a4bb0466c44ffbf27301/113102%
!Ʉ/�_6�6��>��`���{��:l�S�K�DB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/ffc194aaf4e914945788086caa059073c3896c9ee889a4bb0466c44ffbf27301/11310("�����" ����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/bfb8ad0801e8c797b50e9066f309c21a82a7bb371d8496f5208d869124500733/297502%
f��5�t"�Av���(o7r�QO�E�O��.e��MB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/bfb8ad0801e8c797b50e9066f309c21a82a7bb371d8496f5208d869124500733/29750."�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/8ea5e6ab98287181f1b0a2a7f925c9ae005e43a69593e0517b1423439514187b/793632%
��o�`�����tz�S�7����CH�0!���JB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/8ea5e6ab98287181f1b0a2a7f925c9ae005e43a69593e0517b1423439514187b/79363!"�����"�#���Q*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/2e482b315d460184defad1c28828d03c90f7f499cbd899b57fc39a6dda4cdd95/1216182&
����]��0��?J!�$oyd�� =��?+�4�o��:�
test.outputs__outputs.zip�vbytestream://mesolite.cluster.engflow.com/blobs/76a961d77faa0c17510f21f90d08a2c0d69a087699be716d216185e6489e1ce8/91806:�
test.outputs_manifest__MANIFEST�tbytestream://mesolite.cluster.engflow.com/blobs/7a333cc26325ca1c119d93b5dbef68a50ad5c296a8b8bf3f6b7b4f4dd1806cd3/944B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/2e482b315d460184defad1c28828d03c90f7f499cbd899b57fc39a6dda4cdd95/121618"������"H����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/e55190d773746d70aa4e317b14ab5adaee664cf4cfda00c2f0f07b33dea5706e/129852%
���C��R�ӊ�c�3r�>vٟ=�Xy�rA�7B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/e55190d773746d70aa4e317b14ab5adaee664cf4cfda00c2f0f07b33dea5706e/12985"�����"9����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/e39b12a0a771fcdb6226f89f061308e982f2d6b0e46db83e25472321683cde4e/500812&
>p> �.ϯP�w�����1�/R_A�>/���B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/e39b12a0a771fcdb6226f89f061308e982f2d6b0e46db83e25472321683cde4e/50081"�����"6���t*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/6140e7aed60497fae4f9e2432a227d1cdf8507612fa062a93fc274306c6cb55e/202252%
L7��y����`�Ln�yڪ"������[�-��7��aB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/6140e7aed60497fae4f9e2432a227d1cdf8507612fa062a93fc274306c6cb55e/20225"�����"8����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/025854f67bb1774978c91dd708ddb8aaa5c8cc03fedb3116b4a58c409ecb9637/145562%
�U��j+�}���m�ia����E��q(�< v�4B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/025854f67bb1774978c91dd708ddb8aaa5c8cc03fedb3116b4a58c409ecb9637/14556 "�����"]����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f94965f5b9354e57a37b244b73dbbcae12903faedf3d9606db1e54228c9fa772/134462%
X�ϿQ}��cD��U]d=��)�*�9uת�d�5B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f94965f5b9354e57a37b244b73dbbcae12903faedf3d9606db1e54228c9fa772/13446"�����"_����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/e1c9a7a9d903cbed63acb301bd65e5a5d8fdd7fc4560e55f87d22e57b6873df9/226842%
���yM��j�Y�MP)�0���gЈ�lv�XB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/e1c9a7a9d903cbed63acb301bd65e5a5d8fdd7fc4560e55f87d22e57b6873df9/22684"�����" ���ҡ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/735bb917de8a7f44a4514def39a5b042e764ee8db91920d5e8af8e86f2bbcb8c/172302%
�<��Z��&�J�9���Qk�����y���HB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/735bb917de8a7f44a4514def39a5b042e764ee8db91920d5e8af8e86f2bbcb8c/17230"�����" ��ܩ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/be090f04497aed79ac4e8c53a6015abab53814c69bb4c4a80fc63bd6bed7cbf7/323312%
�z��A�6Aixm���G�K\ �d�b�j�5H�pB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/be090f04497aed79ac4e8c53a6015abab53814c69bb4c4a80fc63bd6bed7cbf7/32331"�����"f�ӽ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/984c5c3ae7ffb638939fb665d261c665a56d94dd772666f83829fb1641070732/1835972%
�������! ����iz4WG_������;B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/984c5c3ae7ffb638939fb665d261c665a56d94dd772666f83829fb1641070732/183597"�����"u��ۛ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/ca2dfa8c95ce3df4fcb0b44e68a6260ace29c0c58687f8479666f7e24d1a7f6b/319512%
��&�a}��E�0Xhg!��:�4����"�uB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/ca2dfa8c95ce3df4fcb0b44e68a6260ace29c0c58687f8479666f7e24d1a7f6b/31951"�����"����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/63da1c1a48c145b939202923ec87291c49f0d42e4159ceaf8f346dc7df0f76f2/154722%
x�4^|��-��T �|��Z����+�5��s�@B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/63da1c1a48c145b939202923ec87291c49f0d42e4159ceaf8f346dc7df0f76f2/15472"�����"z���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/96b8fa9756caf20e9495ef8ba5cfe2f286cb99be88979ca99a1667c8d84e05b8/211552%
B
z+�|��<G`<�i��'�{��ˉO�a��\B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/96b8fa9756caf20e9495ef8ba5cfe2f286cb99be88979ca99a1667c8d84e05b8/21155"�����"@���-*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/7f16182cab01c6d82bed2090f63f0ae9ad20d9ffd19ea734a9cd529b766b73c0/133222%
~bq�#
]���[�Y�Fڀ�L���z
���:�>B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/7f16182cab01c6d82bed2090f63f0ae9ad20d9ffd19ea734a9cd529b766b73c0/13322"�����"9����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f78927c322b85051afb9ea3313604f75c0b2d39ba96a308564abb426af728769/204982%
}��1��b�q������J�[ɗ!�I��
e����SB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f78927c322b85051afb9ea3313604f75c0b2d39ba96a308564abb426af728769/20498"�����"=����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/31a184fdd13b8ab3619225b5d6992bb7fd30087b492405dd806dac35f6c87ed4/276842&
z��B�6���v���.�(�#d7��@��\�B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/31a184fdd13b8ab3619225b5d6992bb7fd30087b492405dd806dac35f6c87ed4/27684"�����"l�䇯*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/cf3c07275e4f2231445b642d399dc3f49c9145c4fd520a9865452dcb9a713b86/708002%
N �$4Yg?y�����5��9�J%�g-�DwH�\B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/cf3c07275e4f2231445b642d399dc3f49c9145c4fd520a9865452dcb9a713b86/70800"�����"g��*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/9e973de2718e98fdf4d436b3e6716801fc50a5d6414857a2ff3f5c4020213fb8/194562%
�d�H&-S��O��4��w�=����V
�j�LB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/9e973de2718e98fdf4d436b3e6716801fc50a5d6414857a2ff3f5c4020213fb8/19456"�����"Q����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/745cb6b39873def486ddea93ad4b133dd7345a7f84d6747213cf74671395d554/481952&
�D�p0�L���3D�b&�G��P�de�+����,���B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/745cb6b39873def486ddea93ad4b133dd7345a7f84d6747213cf74671395d554/48195 "�����"���H*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/2f866cab5aa5a8ede78ab70528712d532508bbe0024a0108e204c5082edfbe2b/164042%
�Az��A������\i�e�y����Y�6���FB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/2f866cab5aa5a8ede78ab70528712d532508bbe0024a0108e204c5082edfbe2b/16404"������" ���ݕ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/c0137fef8570b153aa44e74be16174f3c7afb3acd31a38756a86e6debb06bf0e/1404902%
@x���I˪rG�+,{�\�5`�:�_t��Ѝ�5B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/c0137fef8570b153aa44e74be16174f3c7afb3acd31a38756a86e6debb06bf0e/140490"�����"9�ɕY*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/8aa8c1a3a8f3048b8d3555f739ad5a010cb235191667baedf84ca85518591a66/283452%
���|�Ə�C��)\h<�*�
]�a����6�
j�]B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/8aa8c1a3a8f3048b8d3555f739ad5a010cb235191667baedf84ca85518591a66/28345%"�����"�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/5810dad77400f3971e1dc1b937566f8ff4995bac90bd55cda00acdd207f21f57/179382%
���,�{14?<��o
��D�$1�b%��O��GB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/5810dad77400f3971e1dc1b937566f8ff4995bac90bd55cda00acdd207f21f57/17938"�����"W���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/a79810c304bc5320934232c4b62910d09297e44089b1294158c1299bfd5a3e9d/694582&
!�V�؛�R��/�i,��(L�x�D�S������B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/a79810c304bc5320934232c4b62910d09297e44089b1294158c1299bfd5a3e9d/69458""�����"n����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/b3631352f4d2d2edae8489d8dfbb1099c492260b00490d6e1f92d4ce786a5269/337512%
��ϒ���LU�K�{թ�#�@��6|Ml=�}r�vB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/b3631352f4d2d2edae8489d8dfbb1099c492260b00490d6e1f92d4ce786a5269/33751&"�����"e�ʵ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/5175eb4040939cfd7ebf35180431d32d02b1509a982627ef797ce8d18cf35ad5/271892%
_#�:ij?�E_S
����G��
(H��U��Go�`B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/5175eb4040939cfd7ebf35180431d32d02b1509a982627ef797ce8d18cf35ad5/27189+"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/45be319a8adaae455b1ed5031f41aa95e2eea92f71327fdf0697f1386099cf38/165112%
��1��4#-
�,�
�=
N�-R{)�vU�DB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/45be319a8adaae455b1ed5031f41aa95e2eea92f71327fdf0697f1386099cf38/16511("�����"����W*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/5321bb0d512918c7e58014d25608c5cc0e9060aace27e7268a1ba77660374a2f/266472%
˫�N��r�; �DZ
��V%�������pW��SB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/5321bb0d512918c7e58014d25608c5cc0e9060aace27e7268a1ba77660374a2f/26647"�����"q����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/62e7a5c62c9bbd1601b84d748efcae402b4b250ada9c17eef4cc808ac634cbba/1422202%
��;�H��&�5)\+.#U�;�
�Z���7B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/62e7a5c62c9bbd1601b84d748efcae402b4b250ada9c17eef4cc808ac634cbba/142220-"�����"����R*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/0d107b3e366c3afd497b444adb77c09381793beffb64b1ad36bd137def7a3070/1353952%
��`$���}��;�����|;W��O)-�yj�]�=B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/0d107b3e366c3afd497b444adb77c09381793beffb64b1ad36bd137def7a3070/135395,"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/8096aabc2398eea96de1320fe8a68584d2275aa2c6a8e25507f95269888f2c61/801082%
���
F���J�J�u��{�.l\}��as�<˂`�JB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/8096aabc2398eea96de1320fe8a68584d2275aa2c6a8e25507f95269888f2c61/80108!"�����"����\*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/3b88076b77c89c8a4c77898a84675e0373ef538036eee52ccaf21daead7b42a3/1939232%
t�:�/�%
����c9�xK���Qz�Q����lB�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/3b88076b77c89c8a4c77898a84675e0373ef538036eee52ccaf21daead7b42a3/193923*"�����"���j*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/672fd6c7f4ac9d15e3c8643e7fe975a8e0468b86f3712dc0b8ab653303dc941d/293372%
�a#��}v�.��O�y)��v'h���D�i-��MB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/672fd6c7f4ac9d15e3c8643e7fe975a8e0468b86f3712dc0b8ab653303dc941d/29337."������"G���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/62a29387c2ac56b658c982620383772a3eb4902924a92010963c10c08bf9693a/112762%
)���"�Vuv�Z|�F������OzO��jR(�?B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/62a29387c2ac56b658c982620383772a3eb4902924a92010963c10c08bf9693a/11276"�����"T����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/2382e738ed83ce77079084921599299677c72a0fcb692e2f3ac5fadf51ba42b8/1260592%
K.��d߉\������������lPT<F�ݠ���FB�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/2382e738ed83ce77079084921599299677c72a0fcb692e2f3ac5fadf51ba42b8/126059"�����"V����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/d191a27e87237e824b9c37d7654978b51ba98934b1861aa334580270f34ed91d/273102%
A��
���G��虰���q�@'=p����y��cB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/d191a27e87237e824b9c37d7654978b51ba98934b1861aa334580270f34ed91d/27310
"�����"R����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f27960acc0fd1fb5dc6fe3cad0a40eaf4faf3509afa43234309e7257257b5b1a/250952%
������~�TRvT��CÒ���?����+Vڟ�gB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f27960acc0fd1fb5dc6fe3cad0a40eaf4faf3509afa43234309e7257257b5b1a/25095"�����"{���_*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/23f3a02d81c3c35576a1cf117d358d0f6d6127f3e354456c3bd1e7a7cc72062f/155732%
N���H>(Zwn��p��)���ׅ��!H�4�TB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/23f3a02d81c3c35576a1cf117d358d0f6d6127f3e354456c3bd1e7a7cc72062f/15573"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/9106bb068f066cc49cdec04d18bb4c54df24f877e4a223c78bb1505be6abe425/200092%
�e�;&pF��@>����g�H�)����[B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/9106bb068f066cc49cdec04d18bb4c54df24f877e4a223c78bb1505be6abe425/20009"�����"l����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/fb836d00f1cb36acc4a9f163dabcf6faab49e8391b196ead5f858078f279dad0/289802%
�8.W���;!P]���
M+4�h
ߋ�5Z����wB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/fb836d00f1cb36acc4a9f163dabcf6faab49e8391b196ead5f858078f279dad0/28980"�����" ����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/272dc3db5044a42549f98a2f0a08a6b1960328df4a792197deb6cc663549bdfb/195292%
Nօ���T(�$8>�_f�
�_"�>|�-�EB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/272dc3db5044a42549f98a2f0a08a6b1960328df4a792197deb6cc663549bdfb/19529
"�����"H�ֵ?*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/207bc277a8261392739c20c13660e71087656b7203ce5eb8f21ae32ed45de781/752832%
u�p{��$�"ݽbH/f�Jk�A�Gr�iQZʥz�`B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/207bc277a8261392739c20c13660e71087656b7203ce5eb8f21ae32ed45de781/75283$"�����"R��Ā*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/2f36586694e3175f1b0700f60de7814da1c15ab9979c8066f86fc1593c8c276b/390452%
�!���^э1ܢ�q�bϚZO|��ә�P��l6�1B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/2f36586694e3175f1b0700f60de7814da1c15ab9979c8066f86fc1593c8c276b/39045#"�����"M�ٶh*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/4ba4e62f0147516b94cf1d0f6a43379713bd82ea0b8bf5353415c88bc0612648/850052%
��������=��$���__�_=���-���GB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/4ba4e62f0147516b94cf1d0f6a43379713bd82ea0b8bf5353415c88bc0612648/85005'"�����" ����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/8a5f6098c854e8f24c125d47a07a1a63bb8e713a265bf165251d664c2b3037ff/543322&
cze��{%m����Z�E�&2s�#J'��o7�A�U��B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/8a5f6098c854e8f24c125d47a07a1a63bb8e713a265bf165251d664c2b3037ff/54332"�����"o����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/b4d30ecd77c4a7e8ee192f04e17b76619401e8e16e9b05b7c934ff670a4e3f78/250772&
O��jq.�q#+$I��>_^T�M$0��JÎ�ֆB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/b4d30ecd77c4a7e8ee192f04e17b76619401e8e16e9b05b7c934ff670a4e3f78/25077"�����"M���\*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/66e777efcff6b96095b63c6e897294268e7302353e35ab5760ed578ee7dc4a58/152032%
ͮ����6,���U_@�Z��l��8[_�e�?B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/66e777efcff6b96095b63c6e897294268e7302353e35ab5760ed578ee7dc4a58/152030"�����"f�ؑ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/5bd51f32e3b49d1261da463cc87a551459268096ac7146a08975fb8ba4e2fa90/290252%
�1��L>|Wֱٔl�x���c=�QR����1�jB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/5bd51f32e3b49d1261da463cc87a551459268096ac7146a08975fb8ba4e2fa90/29025)"�����"����_*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/3fab1c67916cac39d412dc31fc62411725d8f6bec0409c3ac57fb0b281bc68bb/175932%
H�6�9�߁� �����!�㳼�[���Z�#�DB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/3fab1c67916cac39d412dc31fc62411725d8f6bec0409c3ac57fb0b281bc68bb/17593/"������"E����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/c1c7016bf7878df74efd02197d2aeebfed35672f78efecc96ac3e51b8e9f0842/164022%
��90A��W�"oZG�K 5Q?*�ǫ�S�V�?B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/c1c7016bf7878df74efd02197d2aeebfed35672f78efecc96ac3e51b8e9f0842/16402"�����"0����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/47ddfcdeb53c7af270f4b03fcef84dc1902530df083e297e1ad5b187f74adda2/209852%
�F��`n�� aU���㟳��Gx�hJ��E=B�h�aB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/47ddfcdeb53c7af270f4b03fcef84dc1902530df083e297e1ad5b187f74adda2/20985"�����"1���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/5a9aeae06707576daca3dde16ef0eaa97c705c658d7ca1b659d42eeba47b2ce6/146982%
���y��`����6���Ҧr�ג�_��4B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/5a9aeae06707576daca3dde16ef0eaa97c705c658d7ca1b659d42eeba47b2ce6/14698 "�����"^����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/c8e6b482a708909729dd7c802674104f731f95757e1514ef7f59f3c99e52ddba/136082%
<|NZ1�i;yTk[�������S��#�����5B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/c8e6b482a708909729dd7c802674104f731f95757e1514ef7f59f3c99e52ddba/13608"�����"m���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/541c44945a1451e0f6dc13bcfb7b414d491e54d0f465d9cab697f5ccae758ed5/251262%
�g-a;zʑͣO�#�i$��;�'{��&fC:��[B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/541c44945a1451e0f6dc13bcfb7b414d491e54d0f465d9cab697f5ccae758ed5/25126"�����"Y���A*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/9c928b7354690bacfdb0907c79bcf2fce44acd5a353a07373f4729455bc75a8f/210252%
_�S�F��3��ցܒ���T�7�4�|P��-�cB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/9c928b7354690bacfdb0907c79bcf2fce44acd5a353a07373f4729455bc75a8f/21025
"�����" ���ʞ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/adaa102f3b6a32a380ff794c3d0810343216efd5890d750e3700c06532bef76d/235302%
����%��[`Rs���x�D�h� �cw�R���]��HB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/adaa102f3b6a32a380ff794c3d0810343216efd5890d750e3700c06532bef76d/23530"�����"h����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/276e6d4deb6a2766397312da5289066bb9bd2d087b3e87e6f4e50086704e7aec/294332%
�5��.��3F��p���7>�̈�N{���2�wB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/276e6d4deb6a2766397312da5289066bb9bd2d087b3e87e6f4e50086704e7aec/29433"�����" ��Ӹ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/1c3638364faa26d547a7a0e29c56270787b5def61fbe544800d291c87df39373/154822%
W:�̔D+����!���ʏ�H���kW�LQ��@B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/1c3638364faa26d547a7a0e29c56270787b5def61fbe544800d291c87df39373/15482"�����" ��Ҙ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/18e2bd6f3a845517f0f1e28ced8154279d3eb3e49501d30192d34936b4a7799a/262942%
,]�Y��W�6b��g�|�a�
`Vl\�����pB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/18e2bd6f3a845517f0f1e28ced8154279d3eb3e49501d30192d34936b4a7799a/26294"�����"r���i*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/24d314291baaf4f4e5e05196c9e9b125205dbd4d47f46478d1787be3f37cf935/1701802%
P��P��f~Ԃ�T/g
>���\x�A�Vx��;B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/24d314291baaf4f4e5e05196c9e9b125205dbd4d47f46478d1787be3f37cf935/170180"�����">���>*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/da798c7334747f6bb2cfc441f412f8b30d10eeab923ac5f3fe5c52ce2816d73a/207732%
�����09~2�|����.�߁��sD��SB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/da798c7334747f6bb2cfc441f412f8b30d10eeab923ac5f3fe5c52ce2816d73a/20773"�����">���F*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/ab431d1d35f58bab7fafa39b614ecc3997f4ab509714732d57202ef8822c28b8/215182&
b<��.�5��E�S���|�~����������B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/ab431d1d35f58bab7fafa39b614ecc3997f4ab509714732d57202ef8822c28b8/21518"�����"d�Ӧu*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/bc0ebdcd6ef41a4c3e8fda493602b7774a6bab545db10f9cee8b202bed31bca4/198542%
��rS����nrr�������#%�+U)0��LB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/bc0ebdcd6ef41a4c3e8fda493602b7774a6bab545db10f9cee8b202bed31bca4/19854"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/f466e00844ba2bcf39030ada60642b5b96ae3cb04cf2dd255a6875252522dd25/433362&
W�RT��0Ìd��wʊ��r�2�����υߎB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/f466e00844ba2bcf39030ada60642b5b96ae3cb04cf2dd255a6875252522dd25/43336"�����"q��*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/9ec38eb949456d2e0ecc821c542217948515ea583d0225d180035292497ba131/172202%
B�,����#6M6$�e $�b^�\��Q/�FB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/9ec38eb949456d2e0ecc821c542217948515ea583d0225d180035292497ba131/17220"�����"U���(*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/4bd74075135c7c6106d6250685398d33aca18e7e06e6b6f7512e47f362086a7f/424972&
Z�݄A���>�Q\�,/�ʆ$�+h��5�������B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/4bd74075135c7c6106d6250685398d33aca18e7e06e6b6f7512e47f362086a7f/42497 "�����" ��ꎨ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/a67e941d275230dba88eb9a8e69a60ac8905740bf4450b6d00be9f8d976b5dcd/202912%
??o���,�
J?�
zC:0�!���s��m��\B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/a67e941d275230dba88eb9a8e69a60ac8905740bf4450b6d00be9f8d976b5dcd/20291"�����":����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/7d16706663b040a8412f36ad86d348ef28ac9d4808e7ba08f3f44c053444c4e5/283182%
%<�*h���2���}9��������������]B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/7d16706663b040a8412f36ad86d348ef28ac9d4808e7ba08f3f44c053444c4e5/28318%"�����"O���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/b9b5216c1f4394aa59bf535a71016f0b22b408df7fa8ac5552c9207ea3fda518/709202&
@��cxpi��ێi��hx��!�ѻ9�|�ᅼR��B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/b9b5216c1f4394aa59bf535a71016f0b22b408df7fa8ac5552c9207ea3fda518/70920""�����"h���**�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/6b9bbaa3eb4731902f31ac7031a97124506140a835e87ad85462c0dc13476aa5/303252&
�O��l)+K��\\�p���+��;MXs
�P�҆B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/6b9bbaa3eb4731902f31ac7031a97124506140a835e87ad85462c0dc13476aa5/30325"�����"I�à�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/97d386898424bb04f99078deeb6406c868d211958a4829ce7cefdc983ad9b22d/751802%
��f:v�<����h��xԭ#�q��L��HP<���`B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/97d386898424bb04f99078deeb6406c868d211958a4829ce7cefdc983ad9b22d/75180$"�����"L���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/e628a9c91ba3a23d35a2aa768298be69aab3efb82cd847b52f1903cf654f4b06/392702%
����_���0��K��ϗ'�r*�o�mB���O�1B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/e628a9c91ba3a23d35a2aa768298be69aab3efb82cd847b52f1903cf654f4b06/39270#"�����"F���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/03654dd2c2b074be12eb775806aa1abbc208f3c5eb19c60d89f84e349f3fd546/822232%
d�k�ɠ٤�I���T�9�� l�
/o�ǒ��1�GB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/03654dd2c2b074be12eb775806aa1abbc208f3c5eb19c60d89f84e349f3fd546/82223'"�����" ����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/31678c2f6271148ee750728e2f74631e1cbe4cd8ac6499039f71c9885e944e3a/161962%
�6�@7�[ύp�
:о��F�Ԇ�n>c��jrZ�DB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/31678c2f6271148ee750728e2f74631e1cbe4cd8ac6499039f71c9885e944e3a/16196("�����"R����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/0ad739572457b89ef85a8fec2c06375011c88fe37b42fdd3e435f4089d294b4f/105652%
�~�`7�Y�� ��GHG�S��G��&RM��?B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/0ad739572457b89ef85a8fec2c06375011c88fe37b42fdd3e435f4089d294b4f/105650"�����"i����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/0693fedcd11540f18753bb270ad009c1132ce4b6e7e1aa309ff787848bfac341/1317862%
}���s~bg0Q�<�6jK���Z�Y�ŭ������7B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/0693fedcd11540f18753bb270ad009c1132ce4b6e7e1aa309ff787848bfac341/131786-"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/ed7c04256fa1ec6d89f709f126400063340a3d1a9ba761443ffc1c627df3efa4/1876562%
�}�l�����QS�ml�at�y�f8�߭7�X��lB�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/ed7c04256fa1ec6d89f709f126400063340a3d1a9ba761443ffc1c627df3efa4/187656*"�����"����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/75d6c9bffe59f85ac955f853d999d7508fbff07e5d4e4ba3ac039c8b24eeff27/286732%
[��ile�W���0���p8B��'�qO�)C�MB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/75d6c9bffe59f85ac955f853d999d7508fbff07e5d4e4ba3ac039c8b24eeff27/28673."�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/d40d8977f8c1f245f18cd73068fb215a1f200f7c02c323f4f114a95477b49742/181962%
�v�`�bԿ�Q7EޣYeD�[h��r:o��DB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/d40d8977f8c1f245f18cd73068fb215a1f200f7c02c323f4f114a95477b49742/18196/"�����":���5*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/710d00363e389e25206ad18ee1f39783c2d1745cff12955b328311441b5e12d1/504492&
�D��^?N�q�bL������z�ͅ3`���B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/710d00363e389e25206ad18ee1f39783c2d1745cff12955b328311441b5e12d1/50449"������"H����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/21c6d13c04721299fb8ce3c304b9ef60202a5cfd83888795f07adb48195f0694/133862%
���"I{���/<W h��:b?_[��y:��7B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/21c6d13c04721299fb8ce3c304b9ef60202a5cfd83888795f07adb48195f0694/13386"�����"M����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/23b445c7bcee4715b982c4a983d4271c60e0320916bbcd8ca29cf2dc9850c383/1414832%
"Y%�{`2��25�ꝴ#v�p)�psD��FB�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/23b445c7bcee4715b982c4a983d4271c60e0320916bbcd8ca29cf2dc9850c383/141483"�����"Q���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/6f570e1bed25b930fed77033046017863bb25727425c8e25a41f6f6cf2fffdb5/247012%
���*�����%͔���V$�U=I�0B��gB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/6f570e1bed25b930fed77033046017863bb25727425c8e25a41f6f6cf2fffdb5/24701"�����"_��þ*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/eb661ffc7d5a58fefd4bc3b620817e32402e73eaded1ad4082e83c97639ce402/211612%
c���^hJ��r�[T��J�Vk�Owx�<�%�XB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/eb661ffc7d5a58fefd4bc3b620817e32402e73eaded1ad4082e83c97639ce402/21161"�����"��ۉ[*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/53dff28c10c2dc2de2b3aafa4f244bcc5b46c2991424b035659450e9e1922d64/211732%
N5N�n�m{cYw�`�k��4�Bk�:"ڬ��TB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/53dff28c10c2dc2de2b3aafa4f244bcc5b46c2991424b035659450e9e1922d64/21173"�����"i����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/3892ac10b24042a82a611b3966009ab2a3e004923479b377673f736ce69524f3/328902%
c��3'��بhoǷ��13&Q��[�ߋ��O���uB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/3892ac10b24042a82a611b3966009ab2a3e004923479b377673f736ce69524f3/32890"�����"A����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/1a4def41da087d6f1e154f48852738df0fce5343b4d5b81c9449111c3772b486/137442%
9`T2���O1
DH,鞑�3Ϝ���ŻȤ�>B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/1a4def41da087d6f1e154f48852738df0fce5343b4d5b81c9449111c3772b486/13744"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/90b4a0255888e619a3e087bc4b1a82cbd5b5dc2f2c19288a60164a4b9651572b/245042%
*�G�sܙ"B���M�V�|:��1_�"�y�EB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/90b4a0255888e619a3e087bc4b1a82cbd5b5dc2f2c19288a60164a4b9651572b/24504
"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/511b15d3a2a9920d91149a1dbfdb6ba18bce673818b889d8b178dcb058cc2897/762882%
��l׃��ݮ$$Ö��I�%�S��D�����i��\B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/511b15d3a2a9920d91149a1dbfdb6ba18bce673818b889d8b178dcb058cc2897/76288"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/51aa457d8edadda49b29beebd86ac00be134baf0f7922639f81c9a57fede7c8d/172702%
��_^mm��f��S�"oT�,x�+8SwQ�o�{�GB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/51aa457d8edadda49b29beebd86ac00be134baf0f7922639f81c9a57fede7c8d/17270"�����"i����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/325ab7d9463bb4ca07b0c7e0e2ba069a5b2830d4877c23d634c4282d01d4f13f/391032%
(D�|��*�
���ۨY� �~�b͋mN�$3p�i�vB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/325ab7d9463bb4ca07b0c7e0e2ba069a5b2830d4877c23d634c4282d01d4f13f/39103&"�����"`���*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/0774a447440d197e973e6e3e0bc9f5f26a4cc7375a37b157c7b8ef85558fa99b/269072%
�`S�"�,?LyM��L� �ѷ0%9�QaD��`B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/0774a447440d197e973e6e3e0bc9f5f26a4cc7375a37b157c7b8ef85558fa99b/26907+"�����"k�Ҋ�*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/9703b8c09ef3e5405932dbff94af4ef85e0b17829d9f27d8d1868b38f8ab7fc7/296882%
1h���f�ȷ�k{Qg�S�P���â����,HN���jB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/9703b8c09ef3e5405932dbff94af4ef85e0b17829d9f27d8d1868b38f8ab7fc7/29688)"������" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/0485e1c2597979640679cab09a430f6d0fed62b02dc2bbb6ca578e86017e2813/1416892%
K ��wd�B��UO�p?�I���3X�v>:h���5B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/0485e1c2597979640679cab09a430f6d0fed62b02dc2bbb6ca578e86017e2813/141689"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/04a5d2065b8ec76662546d277f02900d5519cc331eabb170bd0080ec6091399b/1378972%
��N<�sJM����i�� ��LoK�0��=B�
test.log�wbytestream://mesolite.cluster.engflow.com/blobs/04a5d2065b8ec76662546d277f02900d5519cc331eabb170bd0080ec6091399b/137897,"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/85b67ea8a4465991559bda562c1ab8368fba9efe60a1ab5b5bf2a384e59880cf/232582%
��N���z�qW��'�������Tp�ߣj)ą��SB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/85b67ea8a4465991559bda562c1ab8368fba9efe60a1ab5b5bf2a384e59880cf/23258"�����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/9f0223b5e0f5f816f53abd25a9f0a9e7ff439a32dea6fb4d52b5f151c3696d50/799132%
q��b��t�)�������q}����e$}����JB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/9f0223b5e0f5f816f53abd25a9f0a9e7ff439a32dea6fb4d52b5f151c3696d50/79913!(00�(
�
�
B@afd624680cb07bb7d1c8c4e6dde8579e29004332a57e6662582c6097f9aad046� db
*pkg/ccl/oidcccl/oidcccl_test_/oidcccl_test�3
default(
�
��]��Ho'�b���7]�������͐�����"������"���'*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/a12db14ad3dff929718e665b318cc17643e27ba79d9fc03c9bdcfd9c91c86d46/245142%
n��Ζ�鴋y�rs�ئp0�b��0����dB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/a12db14ad3dff929718e665b318cc17643e27ba79d9fc03c9bdcfd9c91c86d46/24514"������"����=*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/4f86e7b768c60676d6fd0fb4c8a34dd278474fe384c9e4fc37e485f84c29f729/241992%
5�N�G����t��ot`�Rc�p���2�6���dB�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/4f86e7b768c60676d6fd0fb4c8a34dd278474fe384c9e4fc37e485f84c29f729/24199"����" �����*�https://mesolite.cluster.engflow.com/api/contentaddressablestorage/v1/instances/default/blobs/4f03afd0d92ac4cbd8fa2e47a3f838a072e901c2d294be701b9a2c49aa360fc9/257272%
<[hl�w8編�3�zR�'W��1�ϐ(�>`I�y:�
test.outputs__outputs.zip�vbytestream://mesolite.cluster.engflow.com/blobs/aa2d56e158efdd61e548f90120c1150fa3359260b44a4c5baa31f5d251681ea7/98356:�
test.outputs_manifest__MANIFEST�tbytestream://mesolite.cluster.engflow.com/blobs/b2a05b87ef096f9adf4f8ce52b52ab6fdfadea6087fdcb7c3109808b8ffed2f0/969B�
test.log�vbytestream://mesolite.cluster.engflow.com/blobs/4f03afd0d92ac4cbd8fa2e47a3f838a072e901c2d294be701b9a2c49aa360fc9/257270({
"total_shards": 0,
"total_entries": 3,
"actions": {
"1,1": {
"test.xml": [
"6e1ef7a3ce969ae9b48b79c27273efd8a6701630c562e51ddf30ebd17fae7f12",
12886
],
"test.log": [
"a12db14ad3dff929718e665b318cc17643e27ba79d9fc03c9bdcfd9c91c86d46",
24514
]
},
"1,2": {
"test.xml": [
"35a44eb147ae998c8274139d17bc6f7460d75263f070b992f80432e436d31dfa",
12887
],
"test.log": [
"4f86e7b768c60676d6fd0fb4c8a34dd278474fe384c9e4fc37e485f84c29f729",
24199
]
},
"1,3": {
"test.xml": [
"3c5b686c967738e7b7a8008f33b57a52c12757e4cc31a60fcf9028c03e60490f",
15529
],
"test.log": [
"4f03afd0d92ac4cbd8fa2e47a3f838a072e901c2d294be701b9a2c49aa360fc9",
25727
],
"outputs.zip": [
"aa2d56e158efdd61e548f90120c1150fa3359260b44a4c5baa31f5d251681ea7",
98356
],
"manifest": [
"b2a05b87ef096f9adf4f8ce52b52ab6fdfadea6087fdcb7c3109808b8ffed2f0",
969
]
}
}
}