code: def __init__(
      self,
      pickled_env_factory: bytes,
      pickled_policy: bytes,
      shared_noise: SharedNoiseTable,
      output_queue: multiprocessing.Queue,
      broadcasting_container: BroadcastingContainer,
      env_seed: int,
      agent_seed: int,
      is_eval_worker: bool,
  ):
      self.policy = cloudpickle.loads(pickled_policy)
      self.policy_version_counter = -1
      self.aux_data = None
  
      self.output_queue = output_queue
      self.broadcasting_container = broadcasting_container
      self.is_eval_worker = is_eval_worker
  
      env_factory = cloudpickle.loads(pickled_env_factory)
      self.env = env_factory()
      self.env = TimeLimitWrapper.wrap(self.env)
      if not isinstance(self.env, LogStatsWrapper):
          self.env = LogStatsWrapper.wrap(self.env)
  
      self.env.seed(env_seed)
      self.env = ESRolloutWorkerWrapper.wrap(
          env=self.env,
          shared_noise=shared_noise,
          agent_instance_seed=agent_seed,
      )
  
file_path: maze/maze/train/trainers/es/distributed/es_subproc_worker.py
imports: import multiprocessing
  import signal
  import cloudpickle
  import torch
  from maze.core.wrappers.log_stats_wrapper import LogStatsWrapper
  from maze.core.wrappers.time_limit_wrapper import TimeLimitWrapper
  from maze.train.parallelization.broadcasting_container import BroadcastingContainer
  from maze.train.trainers.es.distributed.es_rollout_wrapper import ESRolloutWorkerWrapper, ESAbortException
  from maze.train.trainers.es.es_shared_noise_table import SharedNoiseTable
label_desc: Use image node_id 1 to create a new ESSubprocWorker object  with example: obj = ESSubprocWorker(pickled_env_factory, pickled_policy, shared_noise, output_queue, broadcasting_container, env_seed, agent_seed, is_eval_worker)