[fuchsia] Move common setup code from recipes to fuchsia recipe_module.

Change-Id: I40fdcbcfc1f15c2be9fde353aea88bbdcf8fb8af
Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/377874
Commit-Queue: Ina Huh <ihuh@google.com>
Reviewed-by: Oliver Newman <olivernewman@google.com>
diff --git a/recipe_modules/fuchsia/__init__.py b/recipe_modules/fuchsia/__init__.py
index 8742e8b..8638360 100644
--- a/recipe_modules/fuchsia/__init__.py
+++ b/recipe_modules/fuchsia/__init__.py
@@ -1,4 +1,10 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
 DEPS = [
+    'fuchsia/build_input_resolver',
+    'fuchsia/spec',
     'fuchsia/status_check',
     'recipe_engine/buildbucket',
     'recipe_engine/properties',
diff --git a/recipe_modules/fuchsia/api.py b/recipe_modules/fuchsia/api.py
index 2dd676e..17d1a8a 100644
--- a/recipe_modules/fuchsia/api.py
+++ b/recipe_modules/fuchsia/api.py
@@ -1,10 +1,57 @@
 # Copyright 2018 The Fuchsia Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
+from google.protobuf import text_format
+
 from recipe_engine import recipe_api
 
+from PB.infra.fuchsia import Fuchsia
+
 
 class FuchsiaApi(recipe_api.RecipeApi):
   """APIs for checking out, building, and testing Fuchsia."""
 
-  pass
+  def setup_with_spec(self, spec_remote, spec_revision=None):
+    """Runs the steps required before checking out Fuchsia code from a spec.
+
+    These steps include resolving the build input gitiles commit and loading
+    the specified spec.
+
+    Returns the spec and spec_revision.
+    """
+    # Resolve the build input to always contain a Gitiles commit.
+    self.m.build_input_resolver.resolve(
+        default_project_url='https://fuchsia.googlesource.com/fuchsia')
+    bb_input = self.m.buildbucket.build_input
+    commit_remote = 'https://%s/%s' % (bb_input.gitiles_commit.host,
+                                       bb_input.gitiles_commit.project)
+    if commit_remote == spec_remote:
+      # If there was no parent build, then spec_revision may not have been
+      # resolved, so use the revision that we resolved immediately above.
+      if spec_revision == 'HEAD':
+        spec_revision = bb_input.gitiles_commit.id
+      # Otherwise the spec_revision was specified by the parent, and we want all
+      # accesses to that remote to use that revision. In this case,
+      # build_input_resolver.resolve() is unnecessary since we overwrite the
+      # revision, but we only use it to pre-populate the gitiles_commit of the
+      # build input and to keep the conditional logic simpler.
+      else:
+        bb_input.gitiles_commit.id = spec_revision
+
+    with self.m.step.nest('load spec') as presentation:
+      try:
+        spec, spec_revision = self.m.spec.get_spec_revision(
+            spec_remote=spec_remote,
+            Type=Fuchsia,
+            spec_revision=spec_revision,
+        )
+      except self.m.spec.ParseError as e:
+        raise self.m.step.StepFailure('failed to parse spec: %s' % str(e))
+
+      presentation.logs['textproto'] = text_format.MessageToString(spec).split(
+          '\n')
+      # The artifacts tool relies on this output property.
+      # This design has been fragile. Please don't add more dependencies on any
+      # additional output properties.
+      presentation.properties['gcs_bucket'] = spec.gcs_bucket
+      return spec, spec_revision
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/basic.json b/recipe_modules/fuchsia/examples/fuchsia.expected/basic.json
deleted file mode 100644
index b6042b6..0000000
--- a/recipe_modules/fuchsia/examples/fuchsia.expected/basic.json
+++ /dev/null
@@ -1,5 +0,0 @@
-[
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/default.json b/recipe_modules/fuchsia/examples/fuchsia.expected/default.json
new file mode 100644
index 0000000..1d7d984
--- /dev/null
+++ b/recipe_modules/fuchsia/examples/fuchsia.expected/default.json
@@ -0,0 +1,97 @@
+[
+  {
+    "cmd": [],
+    "name": "load spec",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
+      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@build {@@@",
+      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@test {@@@",
+      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-infra\"@@@",
+      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
+      "@@@STEP_LOG_LINE@textproto@@@@",
+      "@@@STEP_LOG_END@textproto@@@",
+      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"fuchsia-infra\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec.ensure build_init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/build_init",
+      "-ensure-file",
+      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "load spec.ensure build_init.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/build_init/build_init",
+      "-spec_remote",
+      "https://fuchsia.googlesource.com/integration",
+      "-spec_path",
+      "infra/config/generated/project/specs/ci/builder.textproto",
+      "-spec_ref",
+      "HEAD"
+    ],
+    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
+    "infra_step": true,
+    "name": "load spec.build_init",
+    "stdin": "CNDsgNmu8bWSfBIWCgdwcm9qZWN0EgJjaRoHYnVpbGRlciIvdXNlcjpsdWNpLXNjaGVkdWxlckBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20yBgi5wqLYBXpjEmEKGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20SB3Byb2plY3QaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
+    "timeout": 600,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/setup_with_spec_revision.json b/recipe_modules/fuchsia/examples/fuchsia.expected/setup_with_spec_revision.json
new file mode 100644
index 0000000..ba2a251
--- /dev/null
+++ b/recipe_modules/fuchsia/examples/fuchsia.expected/setup_with_spec_revision.json
@@ -0,0 +1,97 @@
+[
+  {
+    "cmd": [],
+    "name": "load spec",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
+      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@build {@@@",
+      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@test {@@@",
+      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-infra\"@@@",
+      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
+      "@@@STEP_LOG_LINE@textproto@@@@",
+      "@@@STEP_LOG_END@textproto@@@",
+      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"fuchsia-infra\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec.ensure build_init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/build_init",
+      "-ensure-file",
+      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "load spec.ensure build_init.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/build_init/build_init",
+      "-spec_remote",
+      "https://fuchsia.googlesource.com/integration",
+      "-spec_path",
+      "infra/config/generated/project/specs/ci/builder.textproto",
+      "-spec_ref",
+      "deadbeef"
+    ],
+    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
+    "infra_step": true,
+    "name": "load spec.build_init",
+    "stdin": "CNDsgNmu8bWSfBIWCgdwcm9qZWN0EgJjaRoHYnVpbGRlciIvdXNlcjpsdWNpLXNjaGVkdWxlckBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20yBgi5wqLYBXpjEmEKGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20SB3Byb2plY3QaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
+    "timeout": 600,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipes/fuchsia/build.expected/spec_parse_error.json b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_parse_error.json
similarity index 77%
rename from recipes/fuchsia/build.expected/spec_parse_error.json
rename to recipe_modules/fuchsia/examples/fuchsia.expected/spec_parse_error.json
index d2e0147..3338c41 100644
--- a/recipes/fuchsia/build.expected/spec_parse_error.json
+++ b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_parse_error.json
@@ -1,16 +1,8 @@
 [
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_FAILURE@@@"
     ]
   },
@@ -55,14 +47,14 @@
       "-spec_remote",
       "https://fuchsia.googlesource.com/integration",
       "-spec_path",
-      "infra/config/generated/garnet/specs/ci/builder.textproto",
+      "infra/config/generated/project/specs/ci/builder.textproto",
       "-spec_ref",
       "HEAD"
     ],
     "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
     "infra_step": true,
     "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIVCgZnYXJuZXQSAmNpGgdidWlsZGVyIi91c2VyOmx1Y2ktc2NoZWR1bGVyQGFwcHNwb3QuZ3NlcnZpY2VhY2NvdW50LmNvbTIGCLnCotgFemESXwoYZnVjaHNpYS5nb29nbGVzb3VyY2UuY29tEgZnYXJuZXQaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
+    "stdin": "CNDsgNmu8bWSfBIWCgdwcm9qZWN0EgJjaRoHYnVpbGRlciIvdXNlcjpsdWNpLXNjaGVkdWxlckBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20yBgi5wqLYBXpjEmEKGWNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20SB3Byb2plY3QaKDJkNzI1MTBlNDQ3YWI2MGE5NzI4YWVlYTIzNjJkOGJlMmNiZDc3ODkiEXJlZnMvaGVhZHMvbWFzdGVykgEEEgIgHg==",
     "timeout": 600,
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq.json b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq.json
new file mode 100644
index 0000000..fa8eac0
--- /dev/null
+++ b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq.json
@@ -0,0 +1,196 @@
+[
+  {
+    "cmd": [],
+    "name": "ensure gerrit"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gerrit",
+      "-ensure-file",
+      "infra/tools/luci/gerrit/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gerrit.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
+      "change-detail",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"123456\"}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "get_gerrit_details",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "ensure gitiles"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gitiles",
+      "-ensure-file",
+      "infra/tools/luci/gitiles/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gitiles.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gitiles/gitiles",
+      "refs",
+      "-json-output",
+      "/path/to/tmp/json",
+      "https://fuchsia.googlesource.com/integration",
+      "refs/heads"
+    ],
+    "infra_step": true,
+    "name": "refs",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
+      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@build {@@@",
+      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@test {@@@",
+      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
+      "@@@STEP_LOG_LINE@textproto@@@@",
+      "@@@STEP_LOG_END@textproto@@@",
+      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec.ensure build_init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/build_init",
+      "-ensure-file",
+      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "load spec.ensure build_init.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/build_init/build_init",
+      "-spec_remote",
+      "https://fuchsia.googlesource.com/integration",
+      "-spec_path",
+      "infra/config/generated/project/specs/try/builder.textproto",
+      "-spec_ref",
+      "deadbeef"
+    ],
+    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
+    "infra_step": true,
+    "name": "load spec.build_init",
+    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp8EkQKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCGRlYWRiZWVmIhFyZWZzL2hlYWRzL21hc3Rlcho0Ch9mdWNoc2lhLXJldmlldy5nb29nbGVzb3VyY2UuY29tEgtpbnRlZ3JhdGlvbhjAxAcgB5IBBBICIB6aARgKD2NxX2V4cGVyaW1lbnRhbBIFZmFsc2U=",
+    "timeout": 600,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq_with_spec_revision.json b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq_with_spec_revision.json
new file mode 100644
index 0000000..e4ef057
--- /dev/null
+++ b/recipe_modules/fuchsia/examples/fuchsia.expected/spec_remote_cq_with_spec_revision.json
@@ -0,0 +1,196 @@
+[
+  {
+    "cmd": [],
+    "name": "ensure gerrit"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gerrit",
+      "-ensure-file",
+      "infra/tools/luci/gerrit/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gerrit.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
+      "change-detail",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"123456\"}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "get_gerrit_details",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "ensure gitiles"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gitiles",
+      "-ensure-file",
+      "infra/tools/luci/gitiles/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure gitiles.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gitiles/gitiles",
+      "refs",
+      "-json-output",
+      "/path/to/tmp/json",
+      "https://fuchsia.googlesource.com/integration",
+      "refs/heads"
+    ],
+    "infra_step": true,
+    "name": "refs",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec",
+    "~followup_annotations": [
+      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
+      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@build {@@@",
+      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@test {@@@",
+      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
+      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
+      "@@@STEP_LOG_LINE@textproto@}@@@",
+      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
+      "@@@STEP_LOG_LINE@textproto@@@@",
+      "@@@STEP_LOG_END@textproto@@@",
+      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "load spec.ensure build_init",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/build_init",
+      "-ensure-file",
+      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "load spec.ensure build_init.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/build_init/build_init",
+      "-spec_remote",
+      "https://fuchsia.googlesource.com/integration",
+      "-spec_path",
+      "infra/config/generated/project/specs/try/builder.textproto",
+      "-spec_ref",
+      "deadbeef2"
+    ],
+    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
+    "infra_step": true,
+    "name": "load spec.build_init",
+    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp9EkUKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCWRlYWRiZWVmMiIRcmVmcy9oZWFkcy9tYXN0ZXIaNAofZnVjaHNpYS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24YwMQHIAeSAQQSAiAemgEYCg9jcV9leHBlcmltZW50YWwSBWZhbHNl",
+    "timeout": 600,
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipe_modules/fuchsia/examples/fuchsia.py b/recipe_modules/fuchsia/examples/fuchsia.py
index fa01820..1f88de3 100644
--- a/recipe_modules/fuchsia/examples/fuchsia.py
+++ b/recipe_modules/fuchsia/examples/fuchsia.py
@@ -2,14 +2,121 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-# Must keep this file or else recipe engine complains that FuchsiaApi has no
-# test coverage.
+from PB.infra.fuchsia import Fuchsia
+from recipe_engine.recipe_api import Property
+
+DEPS = [
+    'fuchsia/build_input_resolver',
+    'fuchsia/fuchsia',
+    'fuchsia/gitiles',
+    'fuchsia/spec',
+    'fuchsia/status_check',
+    'recipe_engine/buildbucket',
+    'recipe_engine/properties',
+]
+
+PROPERTIES = {
+    'spec_remote':
+        Property(
+            kind=str,
+            help='URL of the specs git repository',
+            default='https://fuchsia.googlesource.com/integration'),
+    'spec_revision':
+        Property(
+            kind=str,
+            help='The revision of spec_remote to fetch',
+            default='HEAD'),
+}
 
 
-# pylint:disable=unused-argument
-def RunSteps(api):
-  pass
+def RunSteps(api, spec_remote, spec_revision):
+  api.fuchsia.setup_with_spec(spec_remote, spec_revision)
 
 
 def GenTests(api):
-  yield api.test('basic')
+
+  def spec_data(use_snapshot=False,
+                build_type='debug',
+                ninja_targets=(),
+                sdk_subbuild=False,
+                variants=(),
+                device_type='QEMU',
+                enforce_size_limits=False,
+                run_tests=True,
+                test_in_shards=True,
+                gcs_bucket=None,
+                pave=True):
+    test_spec = None
+    if run_tests:
+      test_spec = Fuchsia.Test(
+          device_type=device_type,
+          max_shard_size=0,
+          target_shard_duration_secs=10 * 60,
+          max_shards_per_env=8,
+          timeout_secs=30 * 60,
+          pool='fuchsia.tests',
+          test_in_shards=test_in_shards,
+          swarming_expiration_timeout_secs=10 * 60,
+          swarming_io_timeout_secs=5 * 60,
+          default_service_account='service_account',
+          targets_serial=True,
+          pave=pave,
+      )
+
+    spec = Fuchsia(
+        checkout=Fuchsia.Checkout(
+            manifest='minimal',
+            project='integration',
+            remote='https://fuchsia.googlesource.com/manifest',
+            upload_results=bool(gcs_bucket),
+            use_snapshot=use_snapshot,
+        ),
+        build=Fuchsia.Build(
+            variants=variants,
+            build_type=build_type,
+            run_tests=run_tests,
+            ninja_targets=ninja_targets,
+            sdk_subbuild=sdk_subbuild,
+            board='boards/x64.gni',
+            product='products/core.gni',
+            target='x64',
+            include_breakpad_symbols=False,
+            enforce_size_limits=enforce_size_limits,
+            upload_results=bool(gcs_bucket),
+        ),
+        test=test_spec,
+        gcs_bucket=gcs_bucket,
+        artifact_gcs_bucket='fuchsia-infra-artifacts',
+    )
+    return api.spec.spec_loaded_ok(
+        step_name='load spec.build_init', message=spec)
+
+  default_gitiles_refs_steps = api.gitiles.refs('refs', [
+      'refs/heads/master',
+      'deadbeef',
+  ])
+
+  spec_remote = 'https://fuchsia.googlesource.com/integration'
+
+  yield (api.test('default') + api.buildbucket.ci_build() +
+         spec_data(gcs_bucket='fuchsia-infra', run_tests=True))
+
+  yield (api.test('setup_with_spec_revision') + api.buildbucket.ci_build() +
+         spec_data(gcs_bucket='fuchsia-infra', run_tests=True) +
+         api.properties(spec_revision='deadbeef'))
+
+  yield (api.test('spec_remote_cq') + spec_data(run_tests=True) +
+         api.buildbucket.try_build(git_repo=spec_remote) +
+         api.build_input_resolver.set_gerrit_branch('master') +
+         default_gitiles_refs_steps + api.properties(spec_remote=spec_remote))
+
+  yield (api.test('spec_remote_cq_with_spec_revision') +
+         spec_data(run_tests=True) +
+         api.buildbucket.try_build(git_repo=spec_remote) +
+         api.build_input_resolver.set_gerrit_branch('master') +
+         default_gitiles_refs_steps +
+         api.properties(spec_remote=spec_remote, spec_revision='deadbeef2'))
+
+  yield (api.status_check.test('spec_parse_error', status='failure') +
+         api.buildbucket.ci_build() +
+         api.spec.spec_parse_error(step_name='load spec.build_init'))
diff --git a/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json b/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json
index c787528..b0bafbb 100644
--- a/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json
+++ b/recipes/fuchsia/build.expected/build_type_release_not_run_tests.json
@@ -1,16 +1,8 @@
 [
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -88,6 +80,13 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/check_sizes_fails.json b/recipes/fuchsia/build.expected/check_sizes_fails.json
index eb9a981..50289a9 100644
--- a/recipes/fuchsia/build.expected/check_sizes_fails.json
+++ b/recipes/fuchsia/build.expected/check_sizes_fails.json
@@ -1,16 +1,8 @@
 [
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -101,6 +93,13 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/default.json b/recipes/fuchsia/build.expected/default.json
index 184efe9..eccd616 100644
--- a/recipes/fuchsia/build.expected/default.json
+++ b/recipes/fuchsia/build.expected/default.json
@@ -1,16 +1,8 @@
 [
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -101,6 +93,13 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/default_cq.json b/recipes/fuchsia/build.expected/default_cq.json
index 19de18d..2316991 100644
--- a/recipes/fuchsia/build.expected/default_cq.json
+++ b/recipes/fuchsia/build.expected/default_cq.json
@@ -103,16 +103,8 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -200,6 +192,13 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/non_numeric_parent_id.json b/recipes/fuchsia/build.expected/non_numeric_parent_id.json
index 2bf6d82..705a823 100644
--- a/recipes/fuchsia/build.expected/non_numeric_parent_id.json
+++ b/recipes/fuchsia/build.expected/non_numeric_parent_id.json
@@ -1,16 +1,8 @@
 [
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -101,6 +93,13 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/not_test_in_shards.json b/recipes/fuchsia/build.expected/not_test_in_shards.json
index 622a729..b3e5d90 100644
--- a/recipes/fuchsia/build.expected/not_test_in_shards.json
+++ b/recipes/fuchsia/build.expected/not_test_in_shards.json
@@ -1,16 +1,8 @@
 [
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -97,6 +89,13 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/sdk.json b/recipes/fuchsia/build.expected/sdk.json
index 01c28dd..6983d98 100644
--- a/recipes/fuchsia/build.expected/sdk.json
+++ b/recipes/fuchsia/build.expected/sdk.json
@@ -1,16 +1,8 @@
 [
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -87,6 +79,13 @@
   },
   {
     "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"2d72510e447ab60a9728aeea2362d8be2cbd7789\"@@@"
+    ]
+  },
+  {
+    "cmd": [],
     "name": "checkout"
   },
   {
diff --git a/recipes/fuchsia/build.expected/spec_remote_cq.json b/recipes/fuchsia/build.expected/spec_remote_cq.json
deleted file mode 100644
index 1336c3b..0000000
--- a/recipes/fuchsia/build.expected/spec_remote_cq.json
+++ /dev/null
@@ -1,2635 +0,0 @@
-[
-  {
-    "cmd": [],
-    "name": "ensure gerrit"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gerrit",
-      "-ensure-file",
-      "infra/tools/luci/gerrit/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gerrit.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/gerrit/gerrit",
-      "change-detail",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-input",
-      "{\"change_id\": \"123456\"}",
-      "-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "get_gerrit_details",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "ensure gitiles"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gitiles",
-      "-ensure-file",
-      "infra/tools/luci/gitiles/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gitiles.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/gitiles/gitiles",
-      "refs",
-      "-json-output",
-      "/path/to/tmp/json",
-      "https://fuchsia.googlesource.com/integration",
-      "refs/heads"
-    ],
-    "infra_step": true,
-    "name": "refs",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec",
-    "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
-      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
-      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@build {@@@",
-      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@test {@@@",
-      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
-      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
-      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
-      "@@@STEP_LOG_LINE@textproto@@@@",
-      "@@@STEP_LOG_END@textproto@@@",
-      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec.ensure build_init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/build_init",
-      "-ensure-file",
-      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "load spec.ensure build_init.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/build_init/build_init",
-      "-spec_remote",
-      "https://fuchsia.googlesource.com/integration",
-      "-spec_path",
-      "infra/config/generated/project/specs/try/builder.textproto",
-      "-spec_ref",
-      "deadbeef"
-    ],
-    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
-    "infra_step": true,
-    "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp8EkQKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCGRlYWRiZWVmIhFyZWZzL2hlYWRzL21hc3Rlcho0Ch9mdWNoc2lhLXJldmlldy5nb29nbGVzb3VyY2UuY29tEgtpbnRlZ3JhdGlvbhjAxAcgB5IBBBICIB6aARgKD2NxX2V4cGVyaW1lbnRhbBIFZmFsc2U=",
-    "timeout": 600,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "checkout"
-  },
-  {
-    "cmd": [],
-    "name": "checkout.ensure jiri",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/jiri",
-      "-ensure-file",
-      "fuchsia/tools/jiri/${platform} git_revision:0cbbddb6bfe904d236a9a533f7b0e6be8f335120",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "checkout.ensure jiri.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:0cb\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/tools/jiri/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "init",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-analytics-opt=false",
-      "-rewrite-sso-to-https=true",
-      "-cache",
-      "[CACHE]/git",
-      "[START_DIR]/fuchsia"
-    ],
-    "name": "checkout.jiri init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/gerrit/gerrit",
-      "change-detail",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-input",
-      "{\"change_id\": \"integration~123456\", \"params\": {\"o\": [\"ALL_REVISIONS\"]}}",
-      "-output",
-      "/path/to/tmp/json"
-    ],
-    "name": "checkout.get change details",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\", @@@",
-      "@@@STEP_LOG_LINE@json.output@  \"revisions\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"a1b2c3\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"_number\": 7, @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/7\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }, @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"d4e5f6\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"_number\": 3, @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/3\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }, @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"g7h8i9\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"_number\": 9, @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/9\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "import",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-name",
-      "integration",
-      "-remote-branch",
-      "master",
-      "minimal",
-      "https://fuchsia.googlesource.com/manifest"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri import",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "update",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-autoupdate=false",
-      "-attempts=3",
-      "-run-hooks=false",
-      "-fetch-packages=false"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri update",
-    "timeout": 1800,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "patch",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-project",
-      "integration",
-      "-rebase=true",
-      "refs/changes/00/100/7"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri patch",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "update",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-autoupdate=false",
-      "-attempts=3",
-      "-gc=true",
-      "-rebase-tracked",
-      "-local-manifest=true",
-      "-run-hooks=false",
-      "-fetch-packages=false"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri update (2)",
-    "timeout": 1800,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "run-hooks",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-attempts=3",
-      "-local-manifest=true"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri run-hooks",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "fetch-packages",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-attempts=3",
-      "-local-manifest=true"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri fetch-packages",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "source-manifest",
-      "-vv",
-      "-time",
-      "-j=50",
-      "/path/to/tmp/json"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri source-manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@{@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@  \"directories\": {@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@    \"manifest\": {@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@      \"git_checkout\": {@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"repo_url\": \"https://fuchsia.googlesource.com/manifest\", @@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"revision\": \"4c2b0da3c06341db5cebe4d02c78c93c3b2bd78b\"@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@      }@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@    }@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@  }@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@}@@@",
-      "@@@STEP_LOG_END@json.output[source manifest]@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "snapshot",
-      "-vv",
-      "-time",
-      "-j=50",
-      "[CLEANUP]/jiri.snapshot"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "infra_step": true,
-    "name": "checkout.jiri snapshot",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CLEANUP]/jiri.snapshot",
-      "/path/to/tmp/"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "infra_step": true,
-    "name": "checkout.read snapshot",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_END@jiri.snapshot@@@",
-      "@@@STEP_LOG_LINE@snapshot_contents@@@@",
-      "@@@STEP_LOG_END@snapshot_contents@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "test multipliers"
-  },
-  {
-    "cmd": [
-      "git",
-      "show",
-      "HEAD",
-      "--format=%B",
-      "--no-patch"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "test multipliers.get commit msg",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@commit message@[foo] bar@@@",
-      "@@@STEP_LOG_LINE@commit message@baz@@@",
-      "@@@STEP_LOG_END@commit message@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "test multipliers.extract",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@value@[]@@@",
-      "@@@STEP_LOG_END@value@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[]",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "infra_step": true,
-    "name": "test multipliers.write",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@tmp_tmp_2@[]@@@",
-      "@@@STEP_LOG_END@tmp_tmp_2@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "validate checkout"
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "project",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-json-output",
-      "/path/to/tmp/json",
-      "integration"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "validate checkout.jiri project",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"branches\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"(HEAD detached at c22471f)\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"current_branch\": \"\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"integration\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"path/to/integration\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"remote\": \"https://fuchsia.googlesource.com/integration\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"revision\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[START_DIR]/fuchsia/scripts/style/verify-fidl-libraries.py",
-      "--repo",
-      "path/to/integration"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "validate checkout.validate FIDL namespaces",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build"
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ensure goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[CACHE]/goma/client",
-      "-ensure-file",
-      "infra_internal/goma/client/${platform} release",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ensure goma.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra_internal/goma/client/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/prebuilt/third_party/gn/linux-x64/gn",
-      "gen",
-      "[START_DIR]/fuchsia/out/default",
-      "--check",
-      "--args=import(\"//boards/x64.gni\")  import(\"//products/core.gni\")  build_info_board=\"x64\" build_info_product=\"core\" goma_dir=\"[CACHE]/goma/client\" is_debug=true target_cpu=\"x64\" test_durations_file=\"integration/infra/test_durations/builder.json\" universe_package_labels+=[\"//bundles:infratools\"] use_goma=true"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "build.build fuchsia.gn gen",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/zircon.json",
-      "/path/to/tmp/json"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "build.build fuchsia.read zircon ninja instructions",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"dir\": \"../default.zircon\", @@@",
-      "@@@STEP_LOG_LINE@json.output@  \"targets\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"legacy-host_tests\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"manifest-$cpu\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  ]@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/images.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-full\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"netboot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zip\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"qemu-kernel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"kernel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbol-archive\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave_zedboot\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zedboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/tool_paths.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read tool_paths manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_x64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_x64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_x64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_x64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_x64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_x64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_x64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_x64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_x64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_x64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_x64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_x64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_x64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_x64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_x64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_x64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_x64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_arm64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_arm64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_arm64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_arm64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_arm64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_arm64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_arm64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_arm64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_arm64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_arm64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_arm64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_arm64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_arm64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_arm64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_arm64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_arm64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_arm64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_arm64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_arm64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_arm64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_x64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_x64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_x64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_x64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_x64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_x64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_x64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_x64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_x64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_x64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_x64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_x64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_x64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_x64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_x64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_x64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_x64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_x64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_x64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_x64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_arm64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_arm64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_arm64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_arm64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_arm64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_arm64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_arm64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_arm64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_arm64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_arm64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_arm64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_arm64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_arm64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_arm64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_arm64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_arm64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_arm64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_arm64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_arm64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_arm64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/tests.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read test spec manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//public/lib/foo:foo_tests(//some/toolchain)\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"name\": \"foo_tests\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/disk/to/test\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//lib/bar:bar_unittests(//some/toolchain)\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"name\": \"bar_unittests\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"os\": \"fuchsia\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/fuchsia/to/test\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/prebuilt_binaries.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read prebuilt binary manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"manifest\": \"gen/prebuilt_binary_manifest.json\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"prebuilt_binaries\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja.pre_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "<LUCI_CONTEXT>",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.ninja.pre_goma.read context",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}",
-      "[CLEANUP]/luci_context._tmp_3"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.pre_goma.write context",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@luci_context._tmp_3@{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}@@@",
-      "@@@STEP_LOG_END@luci_context._tmp_3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "restart"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "GOMA_PING_TIMEOUT_SEC": "100",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.pre_goma.start_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
-      "--ninja_info_output",
-      "/path/to/tmp/json",
-      "--failure_output",
-      "/path/to/tmp/",
-      "--",
-      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
-      "-C",
-      "[START_DIR]/fuchsia/out/default.zircon",
-      "-j",
-      "80",
-      "legacy-host_tests",
-      "manifest-$cpu"
-    ],
-    "name": "build.build fuchsia.ninja.zircon",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
-      "--ninja_info_output",
-      "/path/to/tmp/json",
-      "--failure_output",
-      "/path/to/tmp/",
-      "--",
-      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
-      "-C",
-      "[START_DIR]/fuchsia/out/default",
-      "-j",
-      "80",
-      "build/images:record_filesystem_sizes",
-      "build/images:system_snapshot",
-      "build/images:updates",
-      "bundles:infratools",
-      "fuchsia.esp.blk",
-      "fuchsia.zbi",
-      "fvm.blk",
-      "fvm.sparse.blk",
-      "gen/prebuilt_binary_manifest.json",
-      "ids.txt",
-      "multiboot.bin",
-      "path/on/disk/to/test",
-      "zedboot.zbi",
-      "zircon-r.zbi"
-    ],
-    "name": "build.build fuchsia.ninja.fuchsia",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja.post_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "jsonstatus",
-      "[CACHE]/goma/client/jsonstatus"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "name": "build.build fuchsia.ninja.post_goma.goma_jsonstatus",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"notice\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@    {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"infra_status\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"num_user_error\": 0, @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"ping_status_code\": 200@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  ]@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "stat"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "name": "build.build fuchsia.ninja.post_goma.goma_stats",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "stop"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "name": "build.build fuchsia.ninja.post_goma.stop_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/goma/client/goma_stats.json",
-      "/path/to/tmp/"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.post_goma.read goma_stats.json",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
-      "@@@STEP_LOG_END@goma_stats.json@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}",
-      "[CACHE]/goma/client/goma_stats.json"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.post_goma.write goma_stats.json",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}@@@",
-      "@@@STEP_LOG_END@goma_stats.json@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"build_info\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"build_id\": 8945511751514863184, @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"builder\": \"builder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"time_stamp_int\": 1337000003000@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/bqupload",
-      "-ensure-file",
-      "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@5@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/bqupload/bqupload",
-      "fuchsia-infra.artifacts.builds_beta_goma",
-      "[CACHE]/goma/client/goma_stats.json"
-    ],
-    "name": "build.build fuchsia.ninja.post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/fvm",
-      "[START_DIR]/fuchsia/out/default/fvm.blk",
-      "extend",
-      "--length",
-      "10000000000"
-    ],
-    "name": "build.build fuchsia.fvm.blk extend",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default/linux_x64/size_checker",
-      "--build-dir",
-      "[START_DIR]/fuchsia/out/default",
-      "--sizes-json-out",
-      "/path/to/tmp/json"
-    ],
-    "name": "check sizes",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"some-file\": 123@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@",
-      "@@@SET_BUILD_PROPERTY@binary_sizes@{\"some-file\": 123}@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "bb",
-      "batch",
-      "-host",
-      "cr-buildbucket.appspot.com"
-    ],
-    "infra_step": true,
-    "name": "buildbucket.get",
-    "stdin": "{\"requests\": [{\"getBuild\": {\"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"id\": \"8945511751514863184\"}}]}",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@    {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"getBuild\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"id\": \"8945511751514863184\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"status\": \"SUCCESS\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  ]@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@",
-      "@@@STEP_LOG_LINE@request@{@@@",
-      "@@@STEP_LOG_LINE@request@  \"requests\": [@@@",
-      "@@@STEP_LOG_LINE@request@    {@@@",
-      "@@@STEP_LOG_LINE@request@      \"getBuild\": {@@@",
-      "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", @@@",
-      "@@@STEP_LOG_LINE@request@        \"id\": \"8945511751514863184\"@@@",
-      "@@@STEP_LOG_LINE@request@      }@@@",
-      "@@@STEP_LOG_LINE@request@    }@@@",
-      "@@@STEP_LOG_LINE@request@  ]@@@",
-      "@@@STEP_LOG_LINE@request@}@@@",
-      "@@@STEP_LOG_END@request@@@",
-      "@@@STEP_LINK@8945511751514863184@https://cr-buildbucket.appspot.com/build/8945511751514863184@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default/linux_x64/testsharder",
-      "-build-dir",
-      "[START_DIR]/fuchsia/out/default",
-      "-output-file",
-      "/path/to/tmp/json",
-      "-target-duration-secs",
-      "600",
-      "-max-shards-per-env",
-      "8",
-      "-multipliers",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "name": "create test shards",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"deps\": [], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"environment\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"dimensions\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"device_type\": \"Khadas Vim2 Max\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    }, @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"tests\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"install_path\": \"host_x64/path/to/test\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"label\": \"//path/to/test:test(//toolchain)\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"name\": \"test\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"path\": \"host_x64/path/to/test\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "shard Vim2"
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"host_x64/path/to/test\", \n    \"os\": \"linux\", \n    \"name\": \"test\", \n    \"install_path\": \"host_x64/path/to/test\", \n    \"label\": \"//path/to/test:test(//toolchain)\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/tests.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write test manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@tests.json@[@@@",
-      "@@@STEP_LOG_LINE@tests.json@  {@@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"path\": \"host_x64/path/to/test\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"name\": \"test\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"install_path\": \"host_x64/path/to/test\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"label\": \"//path/to/test:test(//toolchain)\"@@@",
-      "@@@STEP_LOG_LINE@tests.json@  }@@@",
-      "@@@STEP_LOG_LINE@tests.json@]@@@",
-      "@@@STEP_LOG_END@tests.json@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
-      "--link-json",
-      "{\"[START_DIR]/fuchsia/out/default/host_x64/path/to/test\": [\"[CLEANUP]/isolate_tmp_4/host_x64/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.create tree of build artifacts",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "shard Vim2.ensure isolated",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[CACHE]/isolated_client",
-      "-ensure-file",
-      "infra/tools/luci/isolated/${platform} git_revision:305e79001db1846906c7136d90a863bee5bd3bfc",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.ensure isolated.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:305\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/isolated/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[CACHE]/isolated_client/isolated",
-      "archive",
-      "-verbose",
-      "-isolate-server",
-      "https://example.isolateserver.appspot.com",
-      "-namespace",
-      "default-gzip",
-      "-dump-hash",
-      "/path/to/tmp/",
-      "-dirs",
-      "[CLEANUP]/isolate_tmp_4:."
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.isolate build artifacts",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "isolate test orchestration inputs"
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"serial.txt\", \n            \"syslog.txt\", \n            \"out\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }, \n              {\n                \"path\": \".\", \n                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", \n                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"1\", \n              \"key\": \"serial\"\n            }, \n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./catalyst\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-bootserver\", \n            \"./bootserver_new\", \n            \"-config\", \n            \"/etc/catalyst/config.json\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-out-dir\", \n            \"out\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", \n              \"key\": \"CATALYST_ZIRCONA_PATH\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"integration\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"board:boards/x64.gni\", \n      \"build_type:debug\", \n      \"product:products/core.gni\", \n      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", \n      \"task_name:Vim2\", \n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
-      "[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json"
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.write task_requests.json",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@[@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@  {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"priority\": \"200\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"task_slices\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@        \"expiration_secs\": \"600\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"outputs\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"out\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"inputs_ref\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"namespace\": \"default-gzip\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"1\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"serial\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.tests\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"pool\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"device_type\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./catalyst\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-bootserver\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/catalyst/config.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-serial-log\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-repo\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-blobs\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/botanist/config.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./testrunner\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-out-dir\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"out\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"tests.json\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"env\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"CATALYST_ZIRCONA_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"${ISOLATED_OUTDIR}\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_TEST_OUTDIR\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.googlesource.com\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_HOST\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"LSAN_SYMBOLIZER_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"products/core.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_PRODUCT\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TARGET\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"ASAN_SYMBOLIZER_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"UBSAN_SYMBOLIZER_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"integration\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_PROJECT\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"refs/heads/master\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_REF\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_DEVICE_TYPE\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"8945511751514863184\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILDBUCKET_ID\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"boards/x64.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_BOARD\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"0\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_CREATE_TIME\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"debug\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TYPE\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"containment\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"lower_priority\": false, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_processes\": \"0\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"containment_type\": \"NONE\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_total_committed_memory\": \"0\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"execution_timeout_secs\": \"1800\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"env_prefixes\": []@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@        }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"board:boards/x64.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"build_type:debug\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"product:products/core.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"task_name:Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@  }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@]@@@",
-      "@@@STEP_LOG_END@task_requests.json@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "",
-      "[START_DIR]/fuchsia/out/default/ids.txt"
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.write empty build ids",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_END@ids.txt@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
-      "--link-json",
-      "{\"[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/task_requests.json\"], \"[START_DIR]/fuchsia/examplepath/perfcompare\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/perfcompare\"], \"[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/minfs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/minfs\"], \"[START_DIR]/fuchsia/out/default/ids.txt\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/ids.txt\"], \"[START_DIR]/fuchsia/out/default/linux_x64/covargs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/covargs\"], \"[START_DIR]/fuchsia/out/default/linux_x64/symbolize\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/symbolize_tool\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_cov\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_profdata\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm-symbolizer\"]}"
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.create_links",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[CACHE]/isolated_client/isolated",
-      "archive",
-      "-verbose",
-      "-isolate-server",
-      "https://example.isolateserver.appspot.com",
-      "-namespace",
-      "default-gzip",
-      "-dump-hash",
-      "/path/to/tmp/",
-      "-dirs",
-      "[CLEANUP]/test_orchestration_inputs_tmp_6:."
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.isolate",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "logging orchestration_inputs_hash",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@test_orchestration_inputs_hash@\"[dummy hash]\"@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default/linux_x64/artifactory",
-      "up",
-      "-bucket",
-      "fuchsia-infra-artifacts",
-      "-uuid",
-      "8945511751514863184",
-      "[START_DIR]/fuchsia/out/default"
-    ],
-    "infra_step": true,
-    "name": "upload artifacts",
-    "timeout": 600
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json b/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json
deleted file mode 100644
index 1cc1f11..0000000
--- a/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json
+++ /dev/null
@@ -1,2635 +0,0 @@
-[
-  {
-    "cmd": [],
-    "name": "ensure gerrit"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gerrit",
-      "-ensure-file",
-      "infra/tools/luci/gerrit/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gerrit.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/gerrit/gerrit",
-      "change-detail",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-input",
-      "{\"change_id\": \"123456\"}",
-      "-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "get_gerrit_details",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "ensure gitiles"
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/gitiles",
-      "-ensure-file",
-      "infra/tools/luci/gitiles/${platform} latest",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "ensure gitiles.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gitiles/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/gitiles/gitiles",
-      "refs",
-      "-json-output",
-      "/path/to/tmp/json",
-      "https://fuchsia.googlesource.com/integration",
-      "refs/heads"
-    ],
-    "infra_step": true,
-    "name": "refs",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"refs/heads/master\": \"deadbeef\"@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef2\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec",
-    "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
-      "@@@STEP_LOG_LINE@textproto@checkout {@@@",
-      "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  remote: \"https://fuchsia.googlesource.com/manifest\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@build {@@@",
-      "@@@STEP_LOG_LINE@textproto@  build_type: \"debug\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  board: \"boards/x64.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  product: \"products/core.gni\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  run_tests: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target: \"x64\"@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@test {@@@",
-      "@@@STEP_LOG_LINE@textproto@  device_type: \"QEMU\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  pave: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  pool: \"fuchsia.tests\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
-      "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
-      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
-      "@@@STEP_LOG_LINE@textproto@  targets_serial: true@@@",
-      "@@@STEP_LOG_LINE@textproto@  target_shard_duration_secs: 600@@@",
-      "@@@STEP_LOG_LINE@textproto@  max_shards_per_env: 8@@@",
-      "@@@STEP_LOG_LINE@textproto@}@@@",
-      "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
-      "@@@STEP_LOG_LINE@textproto@@@@",
-      "@@@STEP_LOG_END@textproto@@@",
-      "@@@SET_BUILD_PROPERTY@gcs_bucket@\"\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "load spec.ensure build_init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/build_init",
-      "-ensure-file",
-      "fuchsia/infra/build_init/${platform} git_revision:bd277978791e1e35bf76e0df57f6aef14aef0757",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "load spec.ensure build_init.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:bd2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/infra/build_init/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/build_init/build_init",
-      "-spec_remote",
-      "https://fuchsia.googlesource.com/integration",
-      "-spec_path",
-      "infra/config/generated/project/specs/try/builder.textproto",
-      "-spec_ref",
-      "deadbeef2"
-    ],
-    "cwd": "[CLEANUP]/build_init_workspace_tmp_1",
-    "infra_step": true,
-    "name": "load spec.build_init",
-    "stdin": "CNDsgNmu8bWSfBIXCgdwcm9qZWN0EgN0cnkaB2J1aWxkZXIiHHVzZXI6Y29tbWl0LWJvdEBjaHJvbWl1bS5vcmcyBgi5wqLYBXp9EkUKGGZ1Y2hzaWEuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24aCWRlYWRiZWVmMiIRcmVmcy9oZWFkcy9tYXN0ZXIaNAofZnVjaHNpYS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbRILaW50ZWdyYXRpb24YwMQHIAeSAQQSAiAemgEYCg9jcV9leHBlcmltZW50YWwSBWZhbHNl",
-    "timeout": 600,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "checkout"
-  },
-  {
-    "cmd": [],
-    "name": "checkout.ensure jiri",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/jiri",
-      "-ensure-file",
-      "fuchsia/tools/jiri/${platform} git_revision:0cbbddb6bfe904d236a9a533f7b0e6be8f335120",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "checkout.ensure jiri.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:0cb\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/tools/jiri/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "init",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-analytics-opt=false",
-      "-rewrite-sso-to-https=true",
-      "-cache",
-      "[CACHE]/git",
-      "[START_DIR]/fuchsia"
-    ],
-    "name": "checkout.jiri init",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/gerrit/gerrit",
-      "change-detail",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-input",
-      "{\"change_id\": \"integration~123456\", \"params\": {\"o\": [\"ALL_REVISIONS\"]}}",
-      "-output",
-      "/path/to/tmp/json"
-    ],
-    "name": "checkout.get change details",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"branch\": \"master\", @@@",
-      "@@@STEP_LOG_LINE@json.output@  \"revisions\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"a1b2c3\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"_number\": 7, @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/7\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }, @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"d4e5f6\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"_number\": 3, @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/3\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }, @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"g7h8i9\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"_number\": 9, @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"ref\": \"refs/changes/00/100/9\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "import",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-name",
-      "integration",
-      "-remote-branch",
-      "master",
-      "minimal",
-      "https://fuchsia.googlesource.com/manifest"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri import",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "update",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-autoupdate=false",
-      "-attempts=3",
-      "-run-hooks=false",
-      "-fetch-packages=false"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri update",
-    "timeout": 1800,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "patch",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-host",
-      "https://fuchsia-review.googlesource.com",
-      "-project",
-      "integration",
-      "-rebase=true",
-      "refs/changes/00/100/7"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri patch",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "update",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-autoupdate=false",
-      "-attempts=3",
-      "-gc=true",
-      "-rebase-tracked",
-      "-local-manifest=true",
-      "-run-hooks=false",
-      "-fetch-packages=false"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri update (2)",
-    "timeout": 1800,
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "run-hooks",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-attempts=3",
-      "-local-manifest=true"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri run-hooks",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "fetch-packages",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-attempts=3",
-      "-local-manifest=true"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri fetch-packages",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "source-manifest",
-      "-vv",
-      "-time",
-      "-j=50",
-      "/path/to/tmp/json"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "checkout.jiri source-manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@{@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@  \"directories\": {@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@    \"manifest\": {@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@      \"git_checkout\": {@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"repo_url\": \"https://fuchsia.googlesource.com/manifest\", @@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@        \"revision\": \"4c2b0da3c06341db5cebe4d02c78c93c3b2bd78b\"@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@      }@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@    }@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@  }@@@",
-      "@@@STEP_LOG_LINE@json.output[source manifest]@}@@@",
-      "@@@STEP_LOG_END@json.output[source manifest]@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "snapshot",
-      "-vv",
-      "-time",
-      "-j=50",
-      "[CLEANUP]/jiri.snapshot"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "infra_step": true,
-    "name": "checkout.jiri snapshot",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CLEANUP]/jiri.snapshot",
-      "/path/to/tmp/"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "infra_step": true,
-    "name": "checkout.read snapshot",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_END@jiri.snapshot@@@",
-      "@@@STEP_LOG_LINE@snapshot_contents@@@@",
-      "@@@STEP_LOG_END@snapshot_contents@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "test multipliers"
-  },
-  {
-    "cmd": [
-      "git",
-      "show",
-      "HEAD",
-      "--format=%B",
-      "--no-patch"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "test multipliers.get commit msg",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@commit message@[foo] bar@@@",
-      "@@@STEP_LOG_LINE@commit message@baz@@@",
-      "@@@STEP_LOG_END@commit message@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "test multipliers.extract",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@value@[]@@@",
-      "@@@STEP_LOG_END@value@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[]",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "infra_step": true,
-    "name": "test multipliers.write",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@tmp_tmp_2@[]@@@",
-      "@@@STEP_LOG_END@tmp_tmp_2@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "validate checkout"
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/jiri/jiri",
-      "project",
-      "-vv",
-      "-time",
-      "-j=50",
-      "-json-output",
-      "/path/to/tmp/json",
-      "integration"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "validate checkout.jiri project",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"branches\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"(HEAD detached at c22471f)\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"current_branch\": \"\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"integration\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"path/to/integration\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"remote\": \"https://fuchsia.googlesource.com/integration\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"revision\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[START_DIR]/fuchsia/scripts/style/verify-fidl-libraries.py",
-      "--repo",
-      "path/to/integration"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "validate checkout.validate FIDL namespaces",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build"
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ensure goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[CACHE]/goma/client",
-      "-ensure-file",
-      "infra_internal/goma/client/${platform} release",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ensure goma.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-release---------\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra_internal/goma/client/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/prebuilt/third_party/gn/linux-x64/gn",
-      "gen",
-      "[START_DIR]/fuchsia/out/default",
-      "--check",
-      "--args=import(\"//boards/x64.gni\")  import(\"//products/core.gni\")  build_info_board=\"x64\" build_info_product=\"core\" goma_dir=\"[CACHE]/goma/client\" is_debug=true target_cpu=\"x64\" test_durations_file=\"integration/infra/test_durations/builder.json\" universe_package_labels+=[\"//bundles:infratools\"] use_goma=true"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "build.build fuchsia.gn gen",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/zircon.json",
-      "/path/to/tmp/json"
-    ],
-    "cwd": "[START_DIR]/fuchsia",
-    "name": "build.build fuchsia.read zircon ninja instructions",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"dir\": \"../default.zircon\", @@@",
-      "@@@STEP_LOG_LINE@json.output@  \"targets\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"legacy-host_tests\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"manifest-$cpu\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  ]@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/images.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-full\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"blk\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"netboot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"archive\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zip\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"qemu-kernel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"kernel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbol-archive\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"tgz\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"bootserver_pave_zedboot\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    ], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"zedboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"type\": \"zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/tool_paths.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read tool_paths manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_x64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_x64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_x64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_x64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_x64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_x64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_x64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_x64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_x64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_x64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_x64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_x64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_x64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_x64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_x64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_x64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_x64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-x64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_x64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/linux_arm64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/linux_arm64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/linux_arm64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/linux_arm64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/linux_arm64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/linux_arm64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/linux_arm64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/linux_arm64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/linux_arm64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/linux_arm64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/linux_arm64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/linux_arm64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/linux_arm64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/linux_arm64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/linux_arm64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/linux_arm64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/linux_arm64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/linux_arm64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/linux_arm64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/linux_arm64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-linux-arm64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"linux_arm64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_x64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_x64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_x64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_x64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_x64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_x64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_x64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_x64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_x64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_x64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_x64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_x64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_x64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_x64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_x64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_x64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_x64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_x64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_x64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_x64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-x64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_x64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bazel\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/bazel/mac_arm64/bazel\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"cargo\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/cargo/mac_arm64/cargo\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-doc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-doc/mac_arm64/clang-doc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format-diff/mac_arm64/clang-format-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-format/mac_arm64/clang-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy-diff\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy-diff/mac_arm64/clang-tidy-diff\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"clang-tidy\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/clang-tidy/mac_arm64/clang-tidy\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dart\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dart/mac_arm64/dart\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"dartfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/dartfmt/mac_arm64/dartfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gn\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gn/mac_arm64/gn\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"go\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/go/mac_arm64/go\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"gofmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/gofmt/mac_arm64/gofmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-cov\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-cov/mac_arm64/llvm-cov\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-profdata\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-profdata/mac_arm64/llvm-profdata\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/llvm-symbolizer/mac_arm64/llvm-symbolizer\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninja\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/ninja/mac_arm64/ninja\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustc/mac_arm64/rustc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustdoc\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustdoc/mac_arm64/rustdoc\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"rustfmt\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/rustfmt/mac_arm64/rustfmt\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"yapf\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../prebuilt/third_party/yapf/mac_arm64/yapf\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/bootserver\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-format\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-format\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fidl-lint\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fidl-lint\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"fvm\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/fvm\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"minfs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/minfs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../default.zircon/host-mac-arm64/zbi\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"artifactory\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/artifactory\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/bootserver_new\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"botanist\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/botanist\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"covargs\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/covargs\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"debroot\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/debroot\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"ninjatrace\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/ninjatrace\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"seriallistener\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/seriallistener\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"size_checker\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/size_checker\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"symbolize\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/symbolize\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testrunner\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testrunner\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"testsharder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"mac_arm64/testsharder\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"cpu\": \"arm64\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"label\": \"//tools/perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"perfcompare\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"os\": \"mac\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"path\": \"../../examplepath/perfcompare\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/tests.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read test spec manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//public/lib/foo:foo_tests(//some/toolchain)\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"name\": \"foo_tests\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/disk/to/test\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  }, @@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"test\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"label\": \"//lib/bar:bar_unittests(//some/toolchain)\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"name\": \"bar_unittests\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"os\": \"fuchsia\", @@@",
-      "@@@STEP_LOG_LINE@json.output@      \"path\": \"path/on/fuchsia/to/test\"@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "[START_DIR]/fuchsia/out/default/prebuilt_binaries.json",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.read prebuilt binary manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"manifest\": \"gen/prebuilt_binary_manifest.json\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"prebuilt_binaries\"@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja.pre_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
-      "<LUCI_CONTEXT>",
-      "/path/to/tmp/json"
-    ],
-    "name": "build.build fuchsia.ninja.pre_goma.read context",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}",
-      "[CLEANUP]/luci_context._tmp_3"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.pre_goma.write context",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@luci_context._tmp_3@{\"local_auth\": {\"accounts\": [{\"email\": \"some@example.com\", \"id\": \"test\"}], \"default_account_id\": \"system\"}}@@@",
-      "@@@STEP_LOG_END@luci_context._tmp_3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "restart"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "GOMA_PING_TIMEOUT_SEC": "100",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.pre_goma.start_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
-      "--ninja_info_output",
-      "/path/to/tmp/json",
-      "--failure_output",
-      "/path/to/tmp/",
-      "--",
-      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
-      "-C",
-      "[START_DIR]/fuchsia/out/default.zircon",
-      "-j",
-      "80",
-      "legacy-host_tests",
-      "manifest-$cpu"
-    ],
-    "name": "build.build fuchsia.ninja.zircon",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[fuchsia::ninja]/resources/ninja_wrapper.py",
-      "--ninja_info_output",
-      "/path/to/tmp/json",
-      "--failure_output",
-      "/path/to/tmp/",
-      "--",
-      "[START_DIR]/fuchsia/prebuilt/third_party/ninja/linux_x64/ninja",
-      "-C",
-      "[START_DIR]/fuchsia/out/default",
-      "-j",
-      "80",
-      "build/images:record_filesystem_sizes",
-      "build/images:system_snapshot",
-      "build/images:updates",
-      "bundles:infratools",
-      "fuchsia.esp.blk",
-      "fuchsia.zbi",
-      "fvm.blk",
-      "fvm.sparse.blk",
-      "gen/prebuilt_binary_manifest.json",
-      "ids.txt",
-      "multiboot.bin",
-      "path/on/disk/to/test",
-      "zedboot.zbi",
-      "zircon-r.zbi"
-    ],
-    "name": "build.build fuchsia.ninja.fuchsia",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja.post_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@3@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "jsonstatus",
-      "[CACHE]/goma/client/jsonstatus"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "name": "build.build fuchsia.ninja.post_goma.goma_jsonstatus",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"notice\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@    {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"infra_status\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"num_user_error\": 0, @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"ping_status_code\": 200@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  ]@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "stat"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "name": "build.build fuchsia.ninja.post_goma.goma_stats",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "[CACHE]/goma/client/goma_ctl.py",
-      "stop"
-    ],
-    "env": {
-      "GOMA_CACHE_DIR": "[CACHE]/goma",
-      "GOMA_DEPS_CACHE_FILE": "goma_deps_cache",
-      "GOMA_DUMP_STATS_FILE": "[CACHE]/goma/client/goma_stats.json",
-      "GOMA_LOCAL_OUTPUT_CACHE_DIR": "[CACHE]/goma/localoutputcache",
-      "LUCI_CONTEXT": "[CLEANUP]/luci_context._tmp_3"
-    },
-    "name": "build.build fuchsia.ninja.post_goma.stop_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[CACHE]/goma/client/goma_stats.json",
-      "/path/to/tmp/"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.post_goma.read goma_stats.json",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@goma_stats.json@{}@@@",
-      "@@@STEP_LOG_END@goma_stats.json@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}",
-      "[CACHE]/goma/client/goma_stats.json"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.post_goma.write goma_stats.json",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@goma_stats.json@{\"build_info\": {\"build_id\": 8945511751514863184, \"time_stamp\": \"2012-05-14 12:53:21.500000\", \"builder\": \"builder\", \"time_stamp_int\": 1337000003000}}@@@",
-      "@@@STEP_LOG_END@goma_stats.json@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"build_info\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"build_id\": 8945511751514863184, @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"time_stamp\": \"2012-05-14 12:53:21.500000\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"builder\": \"builder\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"time_stamp_int\": 1337000003000@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[START_DIR]/cipd/bqupload",
-      "-ensure-file",
-      "infra/tools/bqupload/${platform} git_revision:d85fe78f303c3e969f815121e17c8b08868039ef",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "build.build fuchsia.ninja.post_goma.ensure bqupload.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@5@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:d85\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/bqupload/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/cipd/bqupload/bqupload",
-      "fuchsia-infra.artifacts.builds_beta_goma",
-      "[CACHE]/goma/client/goma_stats.json"
-    ],
-    "name": "build.build fuchsia.ninja.post_goma.upload goma_stats_to BQ: fuchsia-infra/artifacts/builds_beta_goma",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@4@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/fvm",
-      "[START_DIR]/fuchsia/out/default/fvm.blk",
-      "extend",
-      "--length",
-      "10000000000"
-    ],
-    "name": "build.build fuchsia.fvm.blk extend",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default/linux_x64/size_checker",
-      "--build-dir",
-      "[START_DIR]/fuchsia/out/default",
-      "--sizes-json-out",
-      "/path/to/tmp/json"
-    ],
-    "name": "check sizes",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"some-file\": 123@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@",
-      "@@@SET_BUILD_PROPERTY@binary_sizes@{\"some-file\": 123}@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "bb",
-      "batch",
-      "-host",
-      "cr-buildbucket.appspot.com"
-    ],
-    "infra_step": true,
-    "name": "buildbucket.get",
-    "stdin": "{\"requests\": [{\"getBuild\": {\"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"id\": \"8945511751514863184\"}}]}",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"responses\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@    {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"getBuild\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"id\": \"8945511751514863184\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"status\": \"SUCCESS\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    }@@@",
-      "@@@STEP_LOG_LINE@json.output@  ]@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@",
-      "@@@STEP_LOG_LINE@request@{@@@",
-      "@@@STEP_LOG_LINE@request@  \"requests\": [@@@",
-      "@@@STEP_LOG_LINE@request@    {@@@",
-      "@@@STEP_LOG_LINE@request@      \"getBuild\": {@@@",
-      "@@@STEP_LOG_LINE@request@        \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", @@@",
-      "@@@STEP_LOG_LINE@request@        \"id\": \"8945511751514863184\"@@@",
-      "@@@STEP_LOG_LINE@request@      }@@@",
-      "@@@STEP_LOG_LINE@request@    }@@@",
-      "@@@STEP_LOG_LINE@request@  ]@@@",
-      "@@@STEP_LOG_LINE@request@}@@@",
-      "@@@STEP_LOG_END@request@@@",
-      "@@@STEP_LINK@8945511751514863184@https://cr-buildbucket.appspot.com/build/8945511751514863184@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default/linux_x64/testsharder",
-      "-build-dir",
-      "[START_DIR]/fuchsia/out/default",
-      "-output-file",
-      "/path/to/tmp/json",
-      "-target-duration-secs",
-      "600",
-      "-max-shards-per-env",
-      "8",
-      "-multipliers",
-      "[CLEANUP]/tmp_tmp_2"
-    ],
-    "name": "create test shards",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@json.output@[@@@",
-      "@@@STEP_LOG_LINE@json.output@  {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"deps\": [], @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"environment\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@      \"dimensions\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"device_type\": \"Khadas Vim2 Max\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    }, @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@json.output@    \"tests\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"install_path\": \"host_x64/path/to/test\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"label\": \"//path/to/test:test(//toolchain)\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"name\": \"test\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"path\": \"host_x64/path/to/test\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@]@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "shard Vim2"
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"host_x64/path/to/test\", \n    \"os\": \"linux\", \n    \"name\": \"test\", \n    \"install_path\": \"host_x64/path/to/test\", \n    \"label\": \"//path/to/test:test(//toolchain)\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/tests.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write test manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@tests.json@[@@@",
-      "@@@STEP_LOG_LINE@tests.json@  {@@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"path\": \"host_x64/path/to/test\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"os\": \"linux\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"name\": \"test\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"install_path\": \"host_x64/path/to/test\", @@@",
-      "@@@STEP_LOG_LINE@tests.json@    \"label\": \"//path/to/test:test(//toolchain)\"@@@",
-      "@@@STEP_LOG_LINE@tests.json@  }@@@",
-      "@@@STEP_LOG_LINE@tests.json@]@@@",
-      "@@@STEP_LOG_END@tests.json@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
-      "--link-json",
-      "{\"[START_DIR]/fuchsia/out/default/host_x64/path/to/test\": [\"[CLEANUP]/isolate_tmp_4/host_x64/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.create tree of build artifacts",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "shard Vim2.ensure isolated",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "cipd",
-      "ensure",
-      "-root",
-      "[CACHE]/isolated_client",
-      "-ensure-file",
-      "infra/tools/luci/isolated/${platform} git_revision:305e79001db1846906c7136d90a863bee5bd3bfc",
-      "-json-output",
-      "/path/to/tmp/json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.ensure isolated.ensure_installed",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LOG_LINE@json.output@{@@@",
-      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
-      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
-      "@@@STEP_LOG_LINE@json.output@      {@@@",
-      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-git_revision:305\", @@@",
-      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/isolated/resolved-platform\"@@@",
-      "@@@STEP_LOG_LINE@json.output@      }@@@",
-      "@@@STEP_LOG_LINE@json.output@    ]@@@",
-      "@@@STEP_LOG_LINE@json.output@  }@@@",
-      "@@@STEP_LOG_LINE@json.output@}@@@",
-      "@@@STEP_LOG_END@json.output@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[CACHE]/isolated_client/isolated",
-      "archive",
-      "-verbose",
-      "-isolate-server",
-      "https://example.isolateserver.appspot.com",
-      "-namespace",
-      "default-gzip",
-      "-dump-hash",
-      "/path/to/tmp/",
-      "-dirs",
-      "[CLEANUP]/isolate_tmp_4:."
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.isolate build artifacts",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "isolate test orchestration inputs"
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"serial.txt\", \n            \"syslog.txt\", \n            \"out\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }, \n              {\n                \"path\": \".\", \n                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", \n                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"1\", \n              \"key\": \"serial\"\n            }, \n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./catalyst\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-bootserver\", \n            \"./bootserver_new\", \n            \"-config\", \n            \"/etc/catalyst/config.json\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-out-dir\", \n            \"out\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", \n              \"key\": \"CATALYST_ZIRCONA_PATH\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"integration\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"board:boards/x64.gni\", \n      \"build_type:debug\", \n      \"product:products/core.gni\", \n      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", \n      \"task_name:Vim2\", \n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
-      "[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json"
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.write task_requests.json",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@[@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@  {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"priority\": \"200\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"task_slices\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@        \"expiration_secs\": \"600\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@        \"properties\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"outputs\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"out\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"inputs_ref\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"namespace\": \"default-gzip\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"git_revision:12ba48e4eea05053e01e834502042a8c710bdc99\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"fuchsia/infra/catalyst/${platform}\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"1\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"serial\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.tests\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"pool\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"device_type\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./catalyst\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-bootserver\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./bootserver_new\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/catalyst/config.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/images.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-serial-log\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"serial.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"syslog.txt\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-repo\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/builds/8945511751514863184/packages/repository\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-blobs\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-config\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"/etc/botanist/config.json\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"./testrunner\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"-out-dir\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"out\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"tests.json\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"env\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"gs://fuchsia-infra-artifacts/builds/8945511751514863184/images/zedboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"CATALYST_ZIRCONA_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"${ISOLATED_OUTDIR}\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_TEST_OUTDIR\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"fuchsia.googlesource.com\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_HOST\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"LSAN_SYMBOLIZER_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"products/core.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_PRODUCT\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"x64\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TARGET\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"ASAN_SYMBOLIZER_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"llvm-symbolizer\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"UBSAN_SYMBOLIZER_PATH\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"integration\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_PROJECT\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"refs/heads/master\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"INPUT_COMMIT_REF\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"Khadas Vim2 Max\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"FUCHSIA_DEVICE_TYPE\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"8945511751514863184\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILDBUCKET_ID\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"boards/x64.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_BOARD\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"0\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_CREATE_TIME\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"value\": \"debug\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@              \"key\": \"BUILD_TYPE\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"containment\": {@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"lower_priority\": false, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_processes\": \"0\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"containment_type\": \"NONE\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"limit_total_committed_memory\": \"0\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"execution_timeout_secs\": \"1800\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@          \"env_prefixes\": []@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@        }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"board:boards/x64.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"build_type:debug\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"product:products/core.gni\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"shard_version:23030ea165c1ae2c1734a5998c2efc7ac000231c499611d2f126832d4349666d\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"task_name:Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@  }@@@",
-      "@@@STEP_LOG_LINE@task_requests.json@]@@@",
-      "@@@STEP_LOG_END@task_requests.json@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "",
-      "[START_DIR]/fuchsia/out/default/ids.txt"
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.write empty build ids",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_END@ids.txt@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "python",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
-      "--link-json",
-      "{\"[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/task_requests.json\"], \"[START_DIR]/fuchsia/examplepath/perfcompare\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/perfcompare\"], \"[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/minfs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/minfs\"], \"[START_DIR]/fuchsia/out/default/ids.txt\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/ids.txt\"], \"[START_DIR]/fuchsia/out/default/linux_x64/covargs\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/covargs\"], \"[START_DIR]/fuchsia/out/default/linux_x64/symbolize\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/symbolize_tool\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-cov/linux_x64/llvm-cov\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_cov\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-profdata/linux_x64/llvm-profdata\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm_profdata\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/test_orchestration_inputs_tmp_6/llvm-symbolizer\"]}"
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.create_links",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[CACHE]/isolated_client/isolated",
-      "archive",
-      "-verbose",
-      "-isolate-server",
-      "https://example.isolateserver.appspot.com",
-      "-namespace",
-      "default-gzip",
-      "-dump-hash",
-      "/path/to/tmp/",
-      "-dirs",
-      "[CLEANUP]/test_orchestration_inputs_tmp_6:."
-    ],
-    "infra_step": true,
-    "name": "isolate test orchestration inputs.isolate",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@"
-    ]
-  },
-  {
-    "cmd": [],
-    "name": "logging orchestration_inputs_hash",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@test_orchestration_inputs_hash@\"[dummy hash]\"@@@"
-    ]
-  },
-  {
-    "cmd": [
-      "[START_DIR]/fuchsia/out/default/linux_x64/artifactory",
-      "up",
-      "-bucket",
-      "fuchsia-infra-artifacts",
-      "-uuid",
-      "8945511751514863184",
-      "[START_DIR]/fuchsia/out/default"
-    ],
-    "infra_step": true,
-    "name": "upload artifacts",
-    "timeout": 600
-  },
-  {
-    "name": "$result"
-  }
-]
\ No newline at end of file
diff --git a/recipes/fuchsia/build.expected/subbuild_no_parent_id.json b/recipes/fuchsia/build.expected/subbuild_no_parent_id.json
index 20c01e7..6150e73 100644
--- a/recipes/fuchsia/build.expected/subbuild_no_parent_id.json
+++ b/recipes/fuchsia/build.expected/subbuild_no_parent_id.json
@@ -103,16 +103,8 @@
   },
   {
     "cmd": [],
-    "name": "got_revision",
-    "~followup_annotations": [
-      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
-    ]
-  },
-  {
-    "cmd": [],
     "name": "load spec",
     "~followup_annotations": [
-      "@@@STEP_TEXT@loading spec@@@",
       "@@@STEP_LOG_LINE@textproto@checkout {@@@",
       "@@@STEP_LOG_LINE@textproto@  manifest: \"minimal\"@@@",
       "@@@STEP_LOG_LINE@textproto@  project: \"integration\"@@@",
@@ -199,6 +191,13 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "got_revision",
+    "~followup_annotations": [
+      "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@"
+    ]
+  },
+  {
     "cmd": [
       "python",
       "-u",
diff --git a/recipes/fuchsia/build.py b/recipes/fuchsia/build.py
index 66f6dc9..8d3e65f 100644
--- a/recipes/fuchsia/build.py
+++ b/recipes/fuchsia/build.py
@@ -21,6 +21,7 @@
     'fuchsia/buildbucket_util',
     'fuchsia/build_input_resolver',
     'fuchsia/checkout',
+    'fuchsia/fuchsia',
     'fuchsia/git',
     'fuchsia/gitiles',
     'fuchsia/jiri',
@@ -62,47 +63,13 @@
 
 
 def RunSteps(api, parent_id, spec_remote, spec_revision):
-  # Resolve the build input to always contain a Gitiles commit.
-  api.build_input_resolver.resolve(
-      default_project_url='https://fuchsia.googlesource.com/fuchsia')
-  bb_input = api.buildbucket.build_input
-  commit_remote = 'https://%s/%s' % (bb_input.gitiles_commit.host,
-                                     bb_input.gitiles_commit.project)
-  if commit_remote == spec_remote:
-    # If there was no parent build, then spec_revision may not have been
-    # resolved, so use the revision that we resolved immediately above.
-    if spec_revision == 'HEAD':
-      spec_revision = bb_input.gitiles_commit.id
-    # Otherwise the spec_revision was specified by the parent, and we want all
-    # accesses to that remote to use that revision. In this case,
-    # build_input_resolver.resolve() is unnecessary since we overwrite the
-    # revision, but we only use it to pre-populate the gitiles_commit of the
-    # build input and to keep the conditional logic simpler.
-    else:
-      bb_input.gitiles_commit.id = spec_revision
+  spec, spec_revision = api.fuchsia.setup_with_spec(spec_remote, spec_revision)
 
+  bb_input = api.buildbucket.build.input
   with api.step.nest('got_revision') as presentation:
     # Read by the binary-size Gerrit plugin
     presentation.properties['got_revision'] = bb_input.gitiles_commit.id
 
-  with api.step.nest('load spec') as presentation:
-    presentation.step_text = 'loading spec'
-    try:
-      spec = api.spec.load(
-          spec_remote=spec_remote,
-          Type=Fuchsia,
-          spec_revision=spec_revision,
-      )
-    except api.spec.ParseError as e:
-      raise api.step.StepFailure('failed to parse spec: %s' % str(e))
-
-    presentation.logs['textproto'] = text_format.MessageToString(spec).split(
-        '\n')
-    # The artifacts tool relies on this output property.
-    # This design has been fragile. Please don't add more dependencies on any
-    # additional output properties.
-    presentation.properties['gcs_bucket'] = spec.gcs_bucket
-
   # TODO(fxb/39958): Retrying all failed builds in Gerrit launches subbuilds as
   # well, which fail because they're not triggered by a parent build. Once
   # that's resolved we can get rid of this check.
@@ -414,26 +381,6 @@
   )
 
   yield (
-    api.checkout.test('spec_remote_cq', tryjob=True) +
-    api.build.test('spec_remote_cq', tryjob=True) +
-    spec_data(run_tests=True) +
-    api.buildbucket.try_build(git_repo=spec_remote) +
-    api.build_input_resolver.set_gerrit_branch('master') +
-    default_gitiles_refs_steps +
-    api.properties(**properties)
-  )
-
-  yield (
-    api.checkout.test('spec_remote_cq_with_spec_revision', tryjob=True) +
-    api.build.test('spec_remote_cq', tryjob=True) +
-    spec_data(run_tests=True) +
-    api.buildbucket.try_build(git_repo=spec_remote) +
-    api.build_input_resolver.set_gerrit_branch('master') +
-    default_gitiles_refs_steps +
-    api.properties(spec_revision='deadbeef2', **properties)
-  )
-
-  yield (
     api.checkout.test('build_type_release_not_run_tests', tryjob=False) +
     api.build.test('default', create_shards=False) +
     spec_data(build_type='release', gcs_bucket='fuchsia-infra',
@@ -441,8 +388,6 @@
     api.properties(**properties)
   )
 
-  yield (api.checkout.test('spec_parse_error', tryjob=False, status='failure') +
-         api.spec.spec_parse_error(step_name='load spec.build_init'))
   # yapf: enable
 
   yield (api.checkout.test('sdk', tryjob=False) +
diff --git a/recipes/fuchsia/fuchsia.py b/recipes/fuchsia/fuchsia.py
index 3fe3356..5960efa 100644
--- a/recipes/fuchsia/fuchsia.py
+++ b/recipes/fuchsia/fuchsia.py
@@ -82,25 +82,8 @@
   # lossy, so we have to use a string properties and convert to int
   # internally.
   child_build_id = int(child_build_id) if child_build_id else None
-  # Resolve the build input to always contain a Gitiles commit.
-  api.build_input_resolver.resolve(
-      default_project_url='https://fuchsia.googlesource.com/fuchsia')
 
-  with api.step.nest('load spec') as presentation:
-    try:
-      spec, spec_revision = api.spec.get_spec_revision(
-          spec_remote=spec_remote,
-          Type=Fuchsia,
-      )
-    except api.spec.ParseError as e:
-      raise api.step.StepFailure('failed to parse spec: %s' % str(e))
-
-    presentation.logs['textproto'] = text_format.MessageToString(spec).split(
-        '\n')
-    # The artifacts tool relies on this output property.
-    # This design has been fragile. Please don't add more dependencies on any
-    # additional output properties.
-    presentation.properties['gcs_bucket'] = spec.gcs_bucket
+  spec, spec_revision = api.fuchsia.setup_with_spec(spec_remote)
 
   orchestrator_id = api.buildbucket_util.id
   if not spec.build.run_tests: