def METHOD_NAME(context, last_execution_failed, revision):
  """Do corpus pruning on untrusted worker."""
  cross_pollinate_fuzzers = [
      untrusted_runner_pb2.CrossPollinateFuzzer(
          fuzz_target=_fuzz_target_to_proto(cpf.fuzz_target),
          backup_bucket_name=cpf.backup_bucket_name,
          corpus_engine_name=cpf.corpus_engine_name,
      ) for cpf in context.cross_pollinate_fuzzers
  ]
  request = untrusted_runner_pb2.PruneCorpusRequest(
      fuzz_target=_fuzz_target_to_proto(context.fuzz_target),
      cross_pollinate_fuzzers=cross_pollinate_fuzzers,
      last_execution_failed=last_execution_failed,
      revision=revision)
  response = host.stub().PruneCorpus(request)
  project_qualified_name = context.fuzz_target.project_qualified_name()
  today_date = datetime.datetime.utcnow().date()
  coverage_info = data_types.CoverageInformation(
      fuzzer=project_qualified_name, date=today_date)
  # Intentionally skip edge and function coverage values as those would come
  # from fuzzer coverage cron task (see src/go/server/cron/coverage.go).
  coverage_info.corpus_size_units = response.coverage_info.corpus_size_units
  coverage_info.corpus_size_bytes = response.coverage_info.corpus_size_bytes
  coverage_info.corpus_location = response.coverage_info.corpus_location
  coverage_info.corpus_backup_location = (
      response.coverage_info.corpus_backup_location)
  coverage_info.quarantine_size_units = (
      response.coverage_info.quarantine_size_units)
  coverage_info.quarantine_size_bytes = (
      response.coverage_info.quarantine_size_bytes)
  coverage_info.quarantine_location = response.coverage_info.quarantine_location
  crashes = [
      corpus_pruning_task.CorpusCrash(
          crash_state=crash.crash_state,
          crash_type=crash.crash_type,
          crash_address=crash.crash_address,
          crash_stacktrace=crash.crash_stacktrace,
          unit_path=crash.unit_path,
          security_flag=crash.security_flag,
      ) for crash in response.crashes
  ]
  result_stats = response.cross_pollination_stats
  pollination_stats = corpus_pruning_task.CrossPollinationStats(
      project_qualified_name=result_stats.project_qualified_name,
      sources=result_stats.sources,
      initial_corpus_size=result_stats.initial_corpus_size,
      corpus_size=result_stats.corpus_size,
      initial_edge_coverage=result_stats.initial_edge_coverage,
      edge_coverage=result_stats.edge_coverage,
      initial_feature_coverage=result_stats.initial_feature_coverage,
      feature_coverage=result_stats.feature_coverage)
  return corpus_pruning_task.CorpusPruningResult(
      coverage_info=coverage_info,
      crashes=crashes,
      fuzzer_binary_name=response.fuzzer_binary_name,
      revision=response.revision,
      cross_pollination_stats=pollination_stats)