class SquareNumberRequest {

  private final Long number;

  /**
   * Squares the number with a little timeout to give impression of long running process that return
   * at different times.
   * @param consumer callback class that takes the result after the delay.
   * */
  public void delayedSquaring(final Consumer consumer) {<FILL_FUNCTION_BODY>}
}


    var minTimeOut = 5000L;

    SecureRandom secureRandom = new SecureRandom();
    var randomTimeOut = secureRandom.nextInt(2000);

    try {
      // this will make the thread sleep from 5-7s.
      Thread.sleep(minTimeOut + randomTimeOut);
    } catch (InterruptedException e) {
      LOGGER.error("Exception while sleep ", e);
      Thread.currentThread().interrupt();
    } finally {
      consumer.add(number * number);
    }
  
<no_super_class>