code: def generate_start_end(
      maze: np.ndarray,
  ) -> Tuple[Tuple[int, int], Tuple[int, int]]:
      """
      Returns a random start and end position on the outer edge of the maze.
  
      Args:
          maze (np.ndarray): A NumPy array representing the maze.
  
      Returns:
          Tuple[Tuple[int, int], Tuple[int, int]]: A tuple containing the start and end positions.
      """
      start = random_outer_pos(maze)
      end = random_outer_pos(maze)
      while end == start:
          end = random_outer_pos(maze)
      return start, end
  
file_path: evals/evals/registry/data/mazes/nxn_maze_eval_generator.py
imports: import concurrent.futures
  import json
  import os
  import random
  import threading
  from typing import Dict, List, Tuple, Union
  import networkx
  import numpy
  from numpy import ndarray
  from tqdm import tqdm
label_desc: Use image node_id 4 for calling a global function with example usage: generate_start_end(maze) and returns: start,  end