code: public static <T, E extends Throwable> @NonNull Supplier<T> unwrappingRethrowSupplier(final @NonNull ThrowingSupplier<T, E> supplier) {
      return () -> {
        try {
          return supplier.throwingGet();
        } catch(final Throwable t) {
          throw rethrow(unwrap(t));
        }
      };
    }
docs: Returns a supplier which will unwrap and rethrow any throwables caught in {@code supplier}.
  
  @param supplier the supplier
  @param <T> the output type
  @param <E> the exception type
  @return a supplier