code: public static <ContextT> BlockingLimiter<ContextT> wrap(Limiter<ContextT> delegate, Duration timeout) {
          Preconditions.checkArgument(timeout.compareTo(MAX_TIMEOUT) < 0, "Timeout cannot be greater than " + MAX_TIMEOUT);
          return new BlockingLimiter<>(delegate, timeout);
      }
docs: Wrap a limiter such that acquire will block up to a provided timeout if the limit was reached
  instead of return an empty listener immediately
  
  @param delegate Non-blocking limiter to wrap
  @param timeout Max amount of time to wait for the wait for the limit to be released.  Cannot exceed {@link BlockingLimiter#MAX_TIMEOUT}
  @return Wrapped limiter