CLASS net/minecraft/class_156 net/minecraft/util/Util
	COMMENT A class holding various utility methods.
	FIELD field_1128 nanoTimeSupplier Lnet/minecraft/class_7576$class_7577;
	FIELD field_1129 LOGGER Lorg/slf4j/Logger;
	FIELD field_18034 NEXT_WORKER_ID Ljava/util/concurrent/atomic/AtomicInteger;
	FIELD field_18035 MAIN_WORKER_EXECUTOR Ljava/util/concurrent/ExecutorService;
	FIELD field_24477 IO_WORKER_EXECUTOR Ljava/util/concurrent/ExecutorService;
	FIELD field_24622 BOOTSTRAP_EXECUTOR Ljava/util/concurrent/ExecutorService;
	FIELD field_25140 NIL_UUID Ljava/util/UUID;
		COMMENT The "nil UUID" that represents lack of a UUID.
	FIELD field_33859 JAR_FILE_SYSTEM_PROVIDER Ljava/nio/file/spi/FileSystemProvider;
		COMMENT The file system provider for handling jar and zip files.
	FIELD field_34891 MAX_PARALLELISM I
	FIELD field_34892 MAX_BG_THREADS_PROPERTY Ljava/lang/String;
	FIELD field_34893 missingBreakpointHandler Ljava/util/function/Consumer;
	FIELD field_37250 TICKER Lcom/google/common/base/Ticker;
	FIELD field_39824 DATE_TIME_FORMATTER Ljava/time/format/DateTimeFormatter;
		COMMENT A locale-independent datetime formatter that uses {@code yyyy-MM-dd_HH.mm.ss}
		COMMENT as the format string. Example: {@code 2022-01-01_00.00.00}
	METHOD method_17974 ifPresentOrElse (Ljava/util/Optional;Ljava/util/function/Consumer;Ljava/lang/Runnable;)Ljava/util/Optional;
		COMMENT If {@code optional} has value, calls {@code presentAction} with the value,
		COMMENT otherwise calls {@code elseAction}.
		COMMENT
		COMMENT @return the passed {@code optional}
		ARG 0 optional
		ARG 1 presentAction
		ARG 2 elseAction
	METHOD method_18347 uncaughtExceptionHandler (Ljava/lang/Thread;Ljava/lang/Throwable;)V
		ARG 0 thread
		ARG 1 t
	METHOD method_18349 getMainWorkerExecutor ()Ljava/util/concurrent/ExecutorService;
		COMMENT {@return the main worker executor for miscellaneous asynchronous tasks}
	METHOD method_18350 shutdownExecutors ()V
	METHOD method_18839 debugRunnable (Ljava/lang/Runnable;Ljava/util/function/Supplier;)Ljava/lang/Runnable;
		ARG 0 runnable
		ARG 1 messageSupplier
	METHOD method_20793 getLast (Ljava/util/List;)Ljava/lang/Object;
		COMMENT {@return the last item of {@code list}}
		COMMENT
		COMMENT @throws IndexOutOfBoundsException if {@code list} is empty
		ARG 0 list
	METHOD method_22320 throwOrPause (Ljava/lang/Throwable;)Ljava/lang/Throwable;
		ARG 0 t
	METHOD method_22321 getInnermostMessage (Ljava/lang/Throwable;)Ljava/lang/String;
		ARG 0 t
	METHOD method_24155 throwUnchecked (Ljava/lang/Throwable;)V
		COMMENT Throws {@code t} if it's a {@link RuntimeException} (or any of its subclass), otherwise
		COMMENT {@code t} wrapped in a RuntimeException.
		COMMENT
		COMMENT <p>{@link Error} is wrapped as well, despite being unchecked.
		ARG 0 t
	METHOD method_27172 getRandom ([ILnet/minecraft/class_5819;)I
		COMMENT {@return a random integer from {@code array}}
		COMMENT
		COMMENT @throws IllegalArgumentException if {@code array} is empty
		ARG 0 array
		ARG 1 random
	METHOD method_27173 getRandom ([Ljava/lang/Object;Lnet/minecraft/class_5819;)Ljava/lang/Object;
		COMMENT {@return a random item from {@code array}}
		COMMENT
		COMMENT @throws IllegalArgumentException if {@code array} is empty
		ARG 0 array
		ARG 1 random
	METHOD method_27760 backupAndReplace (Ljava/io/File;Ljava/io/File;Ljava/io/File;)V
		COMMENT Copies {@code current} to {@code backup} and then replaces {@code current} with {@code newPath}.
		ARG 0 current
		ARG 1 newFile
		ARG 2 backup
	METHOD method_27761 moveCursor (Ljava/lang/String;II)I
		COMMENT Moves the {@code cursor} in the {@code string} by a {@code delta} amount.
		COMMENT Skips surrogate characters.
		ARG 0 string
		ARG 1 cursor
		ARG 2 delta
	METHOD method_27956 (Ljava/lang/Runnable;)Ljava/lang/Thread;
		ARG 0 runnable
	METHOD method_27957 attemptShutdown (Ljava/util/concurrent/ExecutorService;)V
		ARG 0 service
	METHOD method_27958 getIoWorkerExecutor ()Ljava/util/concurrent/ExecutorService;
		COMMENT {@return the executor for disk or network IO tasks}
	METHOD method_27959 createIoWorker ()Ljava/util/concurrent/ExecutorService;
	METHOD method_28122 createWorker (Ljava/lang/String;)Ljava/util/concurrent/ExecutorService;
		ARG 0 name
	METHOD method_28123 (Ljava/lang/String;Ljava/util/concurrent/ForkJoinPool;)Ljava/util/concurrent/ForkJoinWorkerThread;
		ARG 1 forkJoinPool
	METHOD method_28124 getBootstrapExecutor ()Ljava/util/concurrent/ExecutorService;
		COMMENT {@return the executor for asynchronous bootstrapping}
		COMMENT
		COMMENT <p>This is used by DataFixerUpper to build schemas.
	METHOD method_29187 getChoiceType (Lcom/mojang/datafixers/DSL$TypeReference;Ljava/lang/String;)Lcom/mojang/datafixers/types/Type;
		ARG 0 typeReference
		ARG 1 id
	METHOD method_29188 addPrefix (Ljava/lang/String;Ljava/util/function/Consumer;)Ljava/util/function/Consumer;
		COMMENT {@return a consumer that first prepends {@code prefix} to its input
		COMMENT string and passes the result to {@code consumer}}
		COMMENT
		COMMENT @apiNote This is useful in codec-based deserialization when passing the
		COMMENT error consumer to some methods, e.g. {@code
		COMMENT Util.addPrefix("Could not parse Example", LOGGER::error)}.
		ARG 0 prefix
		ARG 1 consumer
	METHOD method_29189 (Ljava/util/function/Consumer;Ljava/lang/String;Ljava/lang/String;)V
		ARG 2 string
	METHOD method_29190 toArray (Ljava/util/stream/IntStream;I)Lcom/mojang/serialization/DataResult;
		ARG 0 stream
		ARG 1 length
	METHOD method_29191 getChoiceTypeInternal (Lcom/mojang/datafixers/DSL$TypeReference;Ljava/lang/String;)Lcom/mojang/datafixers/types/Type;
		ARG 0 typeReference
		ARG 1 id
	METHOD method_29476 startTimerHack ()V
	METHOD method_29775 relativeCopy (Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/nio/file/Path;)V
		COMMENT Copies a file contained in the folder {@code src} to the folder {@code dest}.
		COMMENT This will replicate any path structure that may exist between {@code src} and {@code toCopy}.
		ARG 0 src
		ARG 1 dest
		ARG 2 toCopy
	METHOD method_30309 replaceInvalidChars (Ljava/lang/String;Lnet/minecraft/class_5462;)Ljava/lang/String;
		ARG 0 string
		ARG 1 predicate
	METHOD method_30622 attemptTasks (ILjava/lang/String;[Ljava/util/function/BooleanSupplier;)Z
		ARG 0 retries
		ARG 1 taskName
		ARG 2 tasks
	METHOD method_30623 (Lnet/minecraft/class_5462;I)Ljava/lang/String;
		ARG 1 charCode
	METHOD method_30624 deleteTask (Ljava/nio/file/Path;)Ljava/util/function/BooleanSupplier;
		ARG 0 path
	METHOD method_30625 renameTask (Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/util/function/BooleanSupplier;
		ARG 0 src
		ARG 1 dest
	METHOD method_30626 backupAndReplace (Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/nio/file/Path;)V
		COMMENT Copies {@code current} to {@code backup} and then replaces {@code current} with {@code newPath}.
		ARG 0 current
		ARG 1 newPath
		ARG 2 backup
	METHOD method_30627 attemptTasks ([Ljava/util/function/BooleanSupplier;)Z
		ARG 0 tasks
	METHOD method_30628 deletionVerifyTask (Ljava/nio/file/Path;)Ljava/util/function/BooleanSupplier;
		ARG 0 path
	METHOD method_30629 existenceCheckTask (Ljava/nio/file/Path;)Ljava/util/function/BooleanSupplier;
		ARG 0 path
	METHOD method_32309 getRandom (Ljava/util/List;Lnet/minecraft/class_5819;)Ljava/lang/Object;
		COMMENT {@return a random item from {@code list}}
		COMMENT
		COMMENT @throws IllegalArgumentException if {@code list} is empty
		COMMENT
		COMMENT @see #getRandomOrEmpty
		ARG 0 list
		ARG 1 random
	METHOD method_33141 toArray (Ljava/util/List;I)Lcom/mojang/serialization/DataResult;
		ARG 0 list
		ARG 1 length
	METHOD method_33559 error (Ljava/lang/String;)V
		ARG 0 message
	METHOD method_33560 pause (Ljava/lang/String;)V
		ARG 0 message
	METHOD method_33787 debugRunnable (Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Runnable;
		ARG 0 activeThreadName
		ARG 1 task
	METHOD method_33791 combineSafe (Ljava/util/List;)Ljava/util/concurrent/CompletableFuture;
		COMMENT Combines a list of {@code futures} into one future that holds a list
		COMMENT of their results.
		COMMENT
		COMMENT <p>This version expects all futures to complete successfully and is not
		COMMENT optimized in case any of the input futures throws.
		COMMENT
		COMMENT @return the combined future
		COMMENT @see #combine(List)
		ARG 0 futures
			COMMENT the completable futures to combine
	METHOD method_34865 memoize (Ljava/util/function/BiFunction;)Ljava/util/function/BiFunction;
		ARG 0 biFunction
	METHOD method_34866 memoize (Ljava/util/function/Function;)Ljava/util/function/Function;
		ARG 0 function
	METHOD method_37153 (Ljava/nio/file/spi/FileSystemProvider;)Z
		ARG 0 fileSystemProvider
	METHOD method_37910 debugSupplier (Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/util/function/Supplier;
		ARG 0 activeThreadName
		ARG 1 supplier
	METHOD method_38646 setMissingBreakpointHandler (Ljava/util/function/Consumer;)V
		ARG 0 missingBreakpointHandler
	METHOD method_38647 (Ljava/lang/String;)V
		ARG 0 message
	METHOD method_38648 getMaxBackgroundThreads ()I
	METHOD method_39977 error (Ljava/lang/String;Ljava/lang/Throwable;)V
		ARG 0 message
		ARG 1 throwable
	METHOD method_40082 (Ljava/util/List;Ljava/lang/Void;)Ljava/util/List;
		ARG 1 void_
	METHOD method_40083 getRandomOrEmpty (Ljava/util/List;Lnet/minecraft/class_5819;)Ljava/util/Optional;
		COMMENT {@return an {@link Optional} of a random item from {@code list}, or an empty optional
		COMMENT if the list is empty}
		COMMENT
		COMMENT @see #getRandom(List, Random)
		ARG 0 list
		ARG 1 random
	METHOD method_41203 backupAndReplace (Ljava/io/File;Ljava/io/File;Ljava/io/File;Z)V
		COMMENT Copies {@code current} to {@code backup} and then replaces {@code current} with {@code newPath}.
		ARG 0 current
		ARG 1 newPath
		ARG 2 backup
		ARG 3 noRestoreOnFail
			COMMENT if {@code true}, does not restore the current file when replacing fails
	METHOD method_41204 backupAndReplace (Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/nio/file/Path;Z)V
		COMMENT Copies {@code current} to {@code backup} and then replaces {@code current} with {@code newPath}.
		ARG 0 current
		ARG 1 newPath
		ARG 2 backup
		ARG 3 noRestoreOnFail
			COMMENT if {@code true}, does not restore the current file when replacing fails
	METHOD method_41238 debugSupplier (Ljava/util/function/Supplier;Ljava/util/function/Supplier;)Ljava/util/function/Supplier;
		ARG 0 supplier
		ARG 1 messageSupplier
	METHOD method_43027 copyShuffled (Lit/unimi/dsi/fastutil/objects/ObjectArrayList;Lnet/minecraft/class_5819;)Ljava/util/List;
		COMMENT {@return the contents of {@code stream} copied to a list and then shuffled}
		ARG 0 list
		ARG 1 random
	METHOD method_43028 shuffle (Lit/unimi/dsi/fastutil/objects/ObjectArrayList;Lnet/minecraft/class_5819;)V
		COMMENT Shuffles {@code list}, modifying the passed list in place.
		ARG 0 list
		ARG 1 random
	METHOD method_43251 shuffle (Ljava/util/stream/IntStream;Lnet/minecraft/class_5819;)Lit/unimi/dsi/fastutil/ints/IntArrayList;
		COMMENT {@return the contents of {@code stream} copied to a list and then shuffled}
		ARG 0 stream
		ARG 1 random
	METHOD method_43252 copyShuffled (Ljava/util/stream/Stream;Lnet/minecraft/class_5819;)Ljava/util/List;
		COMMENT {@return the contents of {@code stream} copied to a list and then shuffled}
		ARG 0 stream
		ARG 1 random
	METHOD method_43253 copyShuffled ([Ljava/lang/Object;Lnet/minecraft/class_5819;)Ljava/util/List;
		COMMENT {@return the contents of {@code array} copied to a list and then shuffled}
		ARG 0 array
		ARG 1 random
	METHOD method_43368 (Ljava/util/List;Ljava/lang/Void;)Ljava/util/List;
		ARG 1 void_
	METHOD method_43369 (Ljava/util/List;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Throwable;)V
		ARG 2 throwable
	METHOD method_43370 combine (Ljava/util/List;Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
		ARG 0 futures
		ARG 1 exceptionHandler
	METHOD method_43371 (Ljava/util/List;[Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture;)V
		ARG 3 future
	METHOD method_43372 (Ljava/util/function/Consumer;Ljava/util/List;ILjava/lang/Object;Ljava/lang/Throwable;)V
		ARG 3 value
		ARG 4 throwable
	METHOD method_43373 combineCancellable (Ljava/util/List;)Ljava/util/concurrent/CompletableFuture;
		COMMENT Combines a list of {@code futures} into one future that holds a list
		COMMENT of their results.
		COMMENT
		COMMENT <p>The returned future is fail-fast; if any of the input futures fails,
		COMMENT this returned future will be immediately completed exceptionally than
		COMMENT waiting for other input futures. Additionally, all other futures will
		COMMENT be canceled.
		COMMENT
		COMMENT @return the combined future
		COMMENT @see #combine(List)
		COMMENT @see #combineSafe(List)
		ARG 0 futures
	METHOD method_43498 waitAndApply (Ljava/util/function/Function;Ljava/util/function/Predicate;)Ljava/lang/Object;
		COMMENT Runs tasks using the prepare-apply model.
		COMMENT
		COMMENT @apiNote This method takes a function that supplies an executor to use in the
		COMMENT apply stage. Inside the function, callers should run the preparation,
		COMMENT and use the passed executor for applying.
		ARG 0 resultFactory
			COMMENT a function that takes the apply-stage executor and returns the preliminary result
		ARG 1 donePredicate
			COMMENT a predicate that, given the result, checks whether applying has finished
	METHOD method_43499 waitAndApply (Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
		COMMENT Runs tasks using the prepare-apply model, such as creation of a {@link
		COMMENT net.minecraft.server.SaveLoader}.
		COMMENT
		COMMENT @apiNote This method takes a function that supplies an executor to use in the
		COMMENT apply stage. Inside the function, callers should run the preparation,
		COMMENT and use the passed executor for applying.
		ARG 0 resultFactory
			COMMENT a function that takes the apply-stage executor and returns the future
	METHOD method_43658 lastIndexGetter (Ljava/util/List;)Ljava/util/function/ToIntFunction;
		COMMENT {@return a function that, when given a value in {@code values}, returns the last
		COMMENT index of the value in the list}
		COMMENT
		COMMENT @implNote Unlike {@link java.util.List#lastIndexOf}, the returned function will
		COMMENT return {@code 0} when given values not in the passed list.
		ARG 0 values
	METHOD method_43926 map (Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
		COMMENT {@return the {@code value} with {@code mapper} applied if the value is not {@code null},
		COMMENT otherwise {@code null}}
		COMMENT
		COMMENT <p>This is the nullable equivalent to {@link Optional#map}.
		ARG 0 value
		ARG 1 mapper
	METHOD method_43927 mapOrElse (Ljava/lang/Object;Ljava/util/function/Function;Ljava/lang/Object;)Ljava/lang/Object;
		COMMENT {@return the {@code value} with {@code mapper} applied if the value is not {@code null},
		COMMENT otherwise {@code other}}
		COMMENT
		COMMENT <p>This is the nullable equivalent to {@link Optional#map} chained with
		COMMENT {@link Optional#orElse}.
		ARG 0 value
		ARG 1 mapper
		ARG 2 other
	METHOD method_44146 lastIndexGetter (Ljava/util/List;Ljava/util/function/IntFunction;)Ljava/util/function/ToIntFunction;
		COMMENT {@return a function that, when given a value in {@code values}, returns the last
		COMMENT index of the value in the list}
		COMMENT
		COMMENT @implNote Unlike {@link java.util.List#lastIndexOf}, the returned function will
		COMMENT return {@code 0} when given values not in the passed list.
		ARG 0 values
		ARG 1 mapCreator
			COMMENT a function that, when given the size of {@code values},
			COMMENT returns a map for storing the indices of the values
	METHOD method_44893 getFormattedCurrentTime ()Ljava/lang/String;
		COMMENT {@return the current time formatted using {@link #DATE_TIME_FORMATTER}}
	METHOD method_47526 getResult (Lcom/mojang/serialization/DataResult;Ljava/util/function/Function;)Ljava/lang/Object;
		COMMENT {@return the result wrapped in {@code result}}
		ARG 0 result
		ARG 1 exceptionGetter
	METHOD method_645 previous (Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/lang/Object;
		COMMENT {@return the item preceding {@code object} in {@code iterable}}
		COMMENT
		COMMENT <p>If {@code object} is not in {@code iterable}, this returns the last item of the iterable.
		COMMENT {@code object} is compared using the {@code ==} operator.
		ARG 0 iterable
		ARG 1 object
	METHOD method_646 createTranslationKey (Ljava/lang/String;Lnet/minecraft/class_2960;)Ljava/lang/String;
		COMMENT {@return the translation key constructed from {@code type} and {@code id}}
		COMMENT
		COMMENT <p>If {@code id} is {@code null}, {@code unregistered_sadface} is used as the ID.
		COMMENT
		COMMENT @see Identifier#toTranslationKey(String)
		ARG 0 type
		ARG 1 id
	METHOD method_648 getMeasuringTimeNano ()J
		COMMENT {@return the current time in nanoseconds, to be used for measuring a duration}
		COMMENT
		COMMENT <p>This is not the Unix epoch time, and can only be used to determine the duration
		COMMENT between two calls of this method.
		COMMENT
		COMMENT @see #getMeasuringTimeMs
		COMMENT @see #getEpochTimeMs
	METHOD method_650 getValueAsString (Lnet/minecraft/class_2769;Ljava/lang/Object;)Ljava/lang/String;
		ARG 0 property
		ARG 1 value
	METHOD method_651 getJVMFlags ()Ljava/util/stream/Stream;
		COMMENT {@return a stream of JVM flags passed when launching}
		COMMENT
		COMMENT <p>The streamed strings include the {@code -X} prefix.
	METHOD method_652 combine (Ljava/util/List;)Ljava/util/concurrent/CompletableFuture;
		COMMENT Combines a list of {@code futures} into one future that holds a list
		COMMENT of their results.
		COMMENT
		COMMENT <p>The returned future is fail-fast; if any of the input futures fails,
		COMMENT this returned future will be immediately completed exceptionally than
		COMMENT waiting for other input futures.
		COMMENT
		COMMENT @return the combined future
		COMMENT @see #combineCancellable(List)
		COMMENT @see #combineSafe(List)
		ARG 0 futures
			COMMENT the completable futures to combine
	METHOD method_654 make (Ljava/lang/Object;Ljava/util/function/Consumer;)Ljava/lang/Object;
		COMMENT {@return {@code object} initialized with {@code initializer}}
		COMMENT
		COMMENT <p>This is useful when initializing static fields:
		COMMENT <pre>{@code
		COMMENT private static final Map<String, String> MAP = Util.make(new HashMap<>(), (map) -> {
		COMMENT     map.put("example", "hello");
		COMMENT });
		COMMENT }</pre>
		ARG 0 object
		ARG 1 initializer
	METHOD method_655 identityHashStrategy ()Lit/unimi/dsi/fastutil/Hash$Strategy;
		COMMENT {@return the {@link Hash.Strategy} that uses identity comparison}
		COMMENT
		COMMENT <p>fastutil's "reference" object types should be used instead in most cases.
	METHOD method_656 make (Ljava/util/function/Supplier;)Ljava/lang/Object;
		COMMENT {@return the value supplied from {@code factory}}
		COMMENT
		COMMENT <p>This is useful when initializing static fields:
		COMMENT <pre>{@code
		COMMENT private static final Map<String, String> MAP = Util.make(() -> {
		COMMENT     Map<String, String> map = new HashMap<>();
		COMMENT     map.put("example", "hello");
		COMMENT     return map;
		COMMENT });
		COMMENT }</pre>
		ARG 0 factory
	METHOD method_658 getMeasuringTimeMs ()J
		COMMENT {@return the current time in milliseconds, to be used for measuring a duration}
		COMMENT
		COMMENT <p>This is not the Unix epoch time, and can only be used to determine the duration
		COMMENT between two calls of this method.
		COMMENT
		COMMENT @see #getMeasuringTimeNano
		COMMENT @see #getEpochTimeMs
	METHOD method_659 getEpochTimeMs ()J
		COMMENT {@return the milliseconds passed since the Unix epoch}
		COMMENT
		COMMENT <p>This should be used to display or store the current time. {@link #getMeasuringTimeMs}
		COMMENT should be used for determining the duration between two calls.
		COMMENT
		COMMENT @see #getMeasuringTimeMs
		COMMENT @see #getMeasuringTimeNano
	METHOD method_660 next (Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/lang/Object;
		COMMENT {@return the item succeeding {@code object} in {@code iterable}}
		COMMENT
		COMMENT @implNote If {@code object} is {@code null}, this returns the first item of the iterable.
		COMMENT If {@code object} is not in {@code iterable}, this enters into an infinite loop.
		COMMENT {@code object} is compared using the {@code ==} operator.
		ARG 0 iterable
		ARG 1 object
	METHOD method_664 toMap ()Ljava/util/stream/Collector;
	METHOD method_666 (Ljava/lang/String;)Z
		ARG 0 runtimeArg
	METHOD method_668 getOperatingSystem ()Lnet/minecraft/class_156$class_158;
		COMMENT {@return the operating system instance for the current platform}
		COMMENT
		COMMENT @implNote This uses the {@code os.name} system property to determine the operating system.
		COMMENT @apiNote This is used for opening links.
	CLASS 2
		FIELD field_29655 cache Ljava/util/Map;
		METHOD apply (Ljava/lang/Object;)Ljava/lang/Object;
			ARG 1 object
	CLASS 3
		FIELD field_29657 cache Ljava/util/Map;
		METHOD apply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
			ARG 1 a
			ARG 2 b
		METHOD method_34867 (Ljava/util/function/BiFunction;Lcom/mojang/datafixers/util/Pair;)Ljava/lang/Object;
			ARG 1 pair
	CLASS 4
		METHOD onTermination (Ljava/lang/Throwable;)V
			ARG 1 throwable
	CLASS class_157 IdentityHashStrategy
		METHOD equals (Ljava/lang/Object;Ljava/lang/Object;)Z
			ARG 1 o
			ARG 2 o2
		METHOD hashCode (Ljava/lang/Object;)I
			ARG 1 o
	CLASS class_158 OperatingSystem
		COMMENT An enum representing the operating system of the current platform.
		COMMENT This defines the behavior for opening links.
		COMMENT The current one can be obtained via {@link Util#getOperatingSystem}.
		FIELD field_34894 name Ljava/lang/String;
		METHOD <init> (Ljava/lang/String;ILjava/lang/String;)V
			ARG 3 name
		METHOD method_38649 getName ()Ljava/lang/String;
		METHOD method_669 open (Ljava/net/URL;)V
			COMMENT Opens {@code url}. If this points to an HTTP(S) URL, it is usually opened using
			COMMENT the system's default browser. Otherwise, it is opened directly.
			COMMENT
			COMMENT <p><strong>Always validate the passed URL's schema</strong> as some values can
			COMMENT execute code.
			ARG 1 url
		METHOD method_670 open (Ljava/lang/String;)V
			COMMENT Opens {@code uri}. If this points to an HTTP(S) URI, it is usually opened using
			COMMENT the system's default browser. Otherwise, it is opened directly.
			COMMENT
			COMMENT <p><strong>Always validate the passed URI's schema</strong> as some values can
			COMMENT execute code.
			ARG 1 uri
		METHOD method_672 open (Ljava/io/File;)V
			COMMENT Opens {@code file}.
			COMMENT
			COMMENT <p><strong>Do not pass untrusted file to this method</strong> as some values can
			COMMENT execute code.
			ARG 1 file
		METHOD method_673 open (Ljava/net/URI;)V
			COMMENT Opens {@code uri}. If this points to an HTTP(S) URI, it is usually opened using
			COMMENT the system's default browser. Otherwise, it is opened directly.
			COMMENT
			COMMENT <p><strong>Always validate the passed URI's schema</strong> as some values can
			COMMENT execute code.
			ARG 1 uri
		METHOD method_674 getURLOpenCommand (Ljava/net/URL;)[Ljava/lang/String;
			ARG 1 url
