Snap for 11566117 from ceec982885eaa6854404290b30d8bff3d72c3cd3 to sdk-release

Change-Id: Idce47267dba40bd6d024a97c650fd1cd1ad95ff3
diff --git a/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb b/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb
index 9c60efc..c92163d 100644
--- a/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb
@@ -1,6 +1,6 @@
 drops {
   android_build_drop {
-    build_id: "T1007601"
+    build_id: "T1008638"
     target: "train_build"
     source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.art/host-exports/art-module-host-exports-current.zip"
   }
@@ -8,7 +8,7 @@
   version: ""
   version_group: ""
   git_project: "platform/prebuilts/module_sdk/art"
-  git_branch: "udc-d1-dev"
+  git_branch: "main"
   transform: TRANSFORM_UNZIP
   transform_options {
   }
diff --git a/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb b/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb
index d054770..f367be0 100644
--- a/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb
@@ -1,14 +1,14 @@
 drops {
   android_build_drop {
-    build_id: "T1007601"
-    target: "train_build"
-    source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.art/sdk/art-module-sdk-current.zip"
+    build_id: "11030519"
+    target: "mainline_modules_sdks-trunk-userdebug"
+    source_file: "mainline-sdks/for-latest-build/current/com.google.android.art/sdk/art-module-sdk-current.zip"
   }
   dest_file: "current/sdk/current.zip"
   version: ""
   version_group: ""
   git_project: "platform/prebuilts/module_sdk/art"
-  git_branch: "udc-d1-dev"
+  git_branch: "main"
   transform: TRANSFORM_UNZIP
   transform_options {
   }
diff --git a/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb b/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb
index bd77bf4..6705c15 100644
--- a/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb
@@ -1,6 +1,6 @@
 drops {
   android_build_drop {
-    build_id: "T1007601"
+    build_id: "T1008638"
     target: "train_build"
     source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.art/test-exports/art-module-test-exports-current.zip"
   }
@@ -8,7 +8,7 @@
   version: ""
   version_group: ""
   git_project: "platform/prebuilts/module_sdk/art"
-  git_branch: "udc-d1-dev"
+  git_branch: "main"
   transform: TRANSFORM_UNZIP
   transform_options {
   }
diff --git a/.prebuilt_info/prebuilt_info_go_current_host-exports_current_zip.asciipb b/.prebuilt_info/prebuilt_info_go_current_host-exports_current_zip.asciipb
index 430812a..641dcd1 100644
--- a/.prebuilt_info/prebuilt_info_go_current_host-exports_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_go_current_host-exports_current_zip.asciipb
@@ -1,6 +1,6 @@
 drops {
   android_build_drop {
-    build_id: "T1007188"
+    build_id: "T1008638"
     target: "train_build"
     source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.go.art/host-exports/art-module-host-exports-current.zip"
   }
@@ -8,7 +8,7 @@
   version: ""
   version_group: ""
   git_project: "platform/prebuilts/module_sdk/art"
-  git_branch: "udc-dev"
+  git_branch: "main"
   transform: TRANSFORM_UNZIP
   transform_options {
   }
diff --git a/.prebuilt_info/prebuilt_info_go_current_sdk_current_zip.asciipb b/.prebuilt_info/prebuilt_info_go_current_sdk_current_zip.asciipb
index 69d9c6a..e98581c 100644
--- a/.prebuilt_info/prebuilt_info_go_current_sdk_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_go_current_sdk_current_zip.asciipb
@@ -1,14 +1,14 @@
 drops {
   android_build_drop {
-    build_id: "T1007188"
-    target: "train_build"
-    source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.go.art/sdk/art-module-sdk-current.zip"
+    build_id: "11030519"
+    target: "mainline_go_modules_sdks-trunk-userdebug"
+    source_file: "mainline-sdks/for-latest-build/current/com.google.android.go.art/sdk/art-module-sdk-current.zip"
   }
   dest_file: "go/current/sdk/current.zip"
   version: ""
   version_group: ""
   git_project: "platform/prebuilts/module_sdk/art"
-  git_branch: "udc-dev"
+  git_branch: "main"
   transform: TRANSFORM_UNZIP
   transform_options {
   }
diff --git a/.prebuilt_info/prebuilt_info_go_current_test-exports_current_zip.asciipb b/.prebuilt_info/prebuilt_info_go_current_test-exports_current_zip.asciipb
index 9d5fd67..10fb005 100644
--- a/.prebuilt_info/prebuilt_info_go_current_test-exports_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_go_current_test-exports_current_zip.asciipb
@@ -1,6 +1,6 @@
 drops {
   android_build_drop {
-    build_id: "T1007188"
+    build_id: "T1008638"
     target: "train_build"
     source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.go.art/test-exports/art-module-test-exports-current.zip"
   }
@@ -8,7 +8,7 @@
   version: ""
   version_group: ""
   git_project: "platform/prebuilts/module_sdk/art"
-  git_branch: "udc-dev"
+  git_branch: "main"
   transform: TRANSFORM_UNZIP
   transform_options {
   }
diff --git a/7/sdk_library/public/art.txt b/7/sdk_library/public/art.txt
index a61a723..b23f9d2 100644
--- a/7/sdk_library/public/art.txt
+++ b/7/sdk_library/public/art.txt
@@ -2880,7 +2880,7 @@
   }
 
   public enum Character.UnicodeScript {
-    method @NonNull public static java.lang.Character.UnicodeScript forName(@NonNull String);
+    method @NonNull public static final java.lang.Character.UnicodeScript forName(@NonNull String);
     method @NonNull public static java.lang.Character.UnicodeScript of(int);
     enum_constant public static final java.lang.Character.UnicodeScript ADLAM;
     enum_constant public static final java.lang.Character.UnicodeScript AHOM;
@@ -12099,6 +12099,7 @@
     method public static java.time.chrono.HijrahDate of(int, int, int);
     method public java.time.chrono.HijrahDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.HijrahDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.HijrahDate with(java.time.temporal.TemporalField, long);
@@ -12184,6 +12185,7 @@
     method public static java.time.chrono.JapaneseDate of(int, int, int);
     method public java.time.chrono.JapaneseDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.JapaneseDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.JapaneseDate with(java.time.temporal.TemporalField, long);
@@ -12241,6 +12243,7 @@
     method public static java.time.chrono.MinguoDate of(int, int, int);
     method public java.time.chrono.MinguoDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.MinguoDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.MinguoDate with(java.time.temporal.TemporalField, long);
@@ -12293,6 +12296,7 @@
     method public static java.time.chrono.ThaiBuddhistDate of(int, int, int);
     method public java.time.chrono.ThaiBuddhistDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.ThaiBuddhistDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ThaiBuddhistDate with(java.time.temporal.TemporalField, long);
diff --git a/current/host-exports/Android.bp b/current/host-exports/Android.bp
index 878c139..e3e420e 100644
--- a/current/host-exports/Android.bp
+++ b/current/host-exports/Android.bp
@@ -12,37 +12,40 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
-java_import {
-    name: "okhttp-norepackage",
-    // Do not prefer prebuilt if the Soong config variable "source_build" in namespace "art_module" is true.
-    use_source_config_var: {
-        config_namespace: "art_module",
-        var_name: "source_build",
-    },
-    visibility: [
-        "//art/build/sdk",
-        "//external/grpc-grpc-java/okhttp",
-        "//external/okhttp",
-        "//prebuilts:__subpackages__",
-    ],
-    apex_available: [
-        "com.android.adservices",
-        "com.android.devicelock",
-        "com.android.extservices",
-        "com.android.ondevicepersonalization",
-    ],
-    licenses: ["art-module-host-exports_external_okhttp_license"],
-    host_supported: true,
-    min_sdk_version: "30",
-    target: {
-        android: {
-            jars: ["java/android/okhttp-norepackage.jar"],
-        },
-        linux_glibc: {
-            jars: ["java/linux_glibc/okhttp-norepackage.jar"],
-        },
-    },
-}
+// TODO(b/293006869): There was a version upgrade of grpc-grpc-java recently and would not be compiled
+// with old version of okhttp-norepackage in prebuilt package. Thus, we will force this target to build
+// from source until the new version of okhttp-norepackage reflects in train build.
+// java_import {
+//     name: "okhttp-norepackage",
+//     // Do not prefer prebuilt if the Soong config variable "source_build" in namespace "art_module" is true.
+//     use_source_config_var: {
+//         config_namespace: "art_module",
+//         var_name: "source_build",
+//     },
+//     visibility: [
+//         "//art/build/sdk",
+//         "//external/grpc-grpc-java/okhttp",
+//         "//external/okhttp",
+//         "//prebuilts:__subpackages__",
+//     ],
+//     apex_available: [
+//         "com.android.adservices",
+//         "com.android.devicelock",
+//         "com.android.extservices",
+//         "com.android.ondevicepersonalization",
+//     ],
+//     licenses: ["art-module-host-exports_external_okhttp_license"],
+//     host_supported: true,
+//     min_sdk_version: "30",
+//     target: {
+//         android: {
+//             jars: ["java/android/okhttp-norepackage.jar"],
+//         },
+//         linux_glibc: {
+//             jars: ["java/linux_glibc/okhttp-norepackage.jar"],
+//         },
+//     },
+// }
 
 java_import {
     name: "art.module.api.annotations",
@@ -321,7 +324,7 @@
     },
     visibility: [
         "//art:__subpackages__",
-        "//prebuilts/module_sdk/art/current/host-exports",
+        "//prebuilts/module_sdk/art:__subpackages__",
         "//prebuilts:__subpackages__",
     ],
     apex_available: [
diff --git a/current/host-exports/include/art/libartbase/base/macros.h b/current/host-exports/include/art/libartbase/base/macros.h
index 13e87d7..5f2100f 100644
--- a/current/host-exports/include/art/libartbase/base/macros.h
+++ b/current/host-exports/include/art/libartbase/base/macros.h
@@ -20,6 +20,7 @@
 #include <stddef.h>  // for size_t
 #include <unistd.h>  // for TEMP_FAILURE_RETRY
 
+#include "android-base/format.h"
 #include "android-base/macros.h"
 #include "android-base/thread_annotations.h"
 
@@ -32,6 +33,9 @@
 #define ART_FRIEND_TYPED_TEST(test_set_name, individual_test)\
 template<typename T> ART_FRIEND_TEST(test_set_name, individual_test)
 
+// Shorthand for formatting with compile time checking of the format string
+#define ART_FORMAT(str, ...) ::fmt::format(FMT_STRING(str), __VA_ARGS__)
+
 // A macro to disallow new and delete operators for a class. It goes in the private: declarations.
 // NOTE: Providing placement new (and matching delete) for constructing container elements.
 #define DISALLOW_ALLOCATION() \
diff --git a/current/host-exports/java/android/okhttp-norepackage.jar b/current/host-exports/java/android/okhttp-norepackage.jar
index e33f635..601653f 100644
--- a/current/host-exports/java/android/okhttp-norepackage.jar
+++ b/current/host-exports/java/android/okhttp-norepackage.jar
Binary files differ
diff --git a/current/host-exports/java/linux_glibc/okhttp-norepackage.jar b/current/host-exports/java/linux_glibc/okhttp-norepackage.jar
index e33f635..601653f 100644
--- a/current/host-exports/java/linux_glibc/okhttp-norepackage.jar
+++ b/current/host-exports/java/linux_glibc/okhttp-norepackage.jar
Binary files differ
diff --git a/current/host-exports/snapshot-creation-build-number.txt b/current/host-exports/snapshot-creation-build-number.txt
index d33d0a0..9cf727a 100644
--- a/current/host-exports/snapshot-creation-build-number.txt
+++ b/current/host-exports/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10572802
\ No newline at end of file
+11088951
\ No newline at end of file
diff --git a/current/host-exports/x86_64/bin/dex2oat64 b/current/host-exports/x86_64/bin/dex2oat64
index 3778b6b..6f51455 100755
--- a/current/host-exports/x86_64/bin/dex2oat64
+++ b/current/host-exports/x86_64/bin/dex2oat64
Binary files differ
diff --git a/current/host-exports/x86_64/bin/dex2oatd64 b/current/host-exports/x86_64/bin/dex2oatd64
index 6c46b82..538065a 100755
--- a/current/host-exports/x86_64/bin/dex2oatd64
+++ b/current/host-exports/x86_64/bin/dex2oatd64
Binary files differ
diff --git a/current/host-exports/x86_64/bin/dexdump b/current/host-exports/x86_64/bin/dexdump
index 0d7528a..aff8719 100755
--- a/current/host-exports/x86_64/bin/dexdump
+++ b/current/host-exports/x86_64/bin/dexdump
Binary files differ
diff --git a/current/host-exports/x86_64/bin/hiddenapi b/current/host-exports/x86_64/bin/hiddenapi
index 66b01b8..d2df7d3 100755
--- a/current/host-exports/x86_64/bin/hiddenapi
+++ b/current/host-exports/x86_64/bin/hiddenapi
Binary files differ
diff --git a/current/host-exports/x86_64/bin/oatdump b/current/host-exports/x86_64/bin/oatdump
index 188d021..6152b02 100755
--- a/current/host-exports/x86_64/bin/oatdump
+++ b/current/host-exports/x86_64/bin/oatdump
Binary files differ
diff --git a/current/host-exports/x86_64/bin/profman b/current/host-exports/x86_64/bin/profman
index 04023fc..35630fc 100755
--- a/current/host-exports/x86_64/bin/profman
+++ b/current/host-exports/x86_64/bin/profman
Binary files differ
diff --git a/current/host-exports/x86_64/bin/veridex b/current/host-exports/x86_64/bin/veridex
index 82b709b..c0d4e83 100755
--- a/current/host-exports/x86_64/bin/veridex
+++ b/current/host-exports/x86_64/bin/veridex
Binary files differ
diff --git a/current/host-exports/x86_64/lib/libartbase.a b/current/host-exports/x86_64/lib/libartbase.a
index b63ee9a..c2caa32 100644
--- a/current/host-exports/x86_64/lib/libartbase.a
+++ b/current/host-exports/x86_64/lib/libartbase.a
Binary files differ
diff --git a/current/sdk/Android.bp b/current/sdk/Android.bp
index be221de..9410878 100644
--- a/current/sdk/Android.bp
+++ b/current/sdk/Android.bp
@@ -912,6 +912,7 @@
         "common_os/include/libnativehelper/include_jni",
         "common_os/include/libnativehelper/include_platform",
         "common_os/include/libnativehelper/include_platform_header_only",
+        "common_os/include/system/logging/liblog/include",
     ],
     stubs: {
         versions: [
@@ -1122,6 +1123,7 @@
         "//packages/modules/Connectivity:__subpackages__",
         "//packages/modules/ExtServices:__subpackages__",
         "//packages/modules/NetworkStack:__subpackages__",
+        "//packages/modules/Permission/tests/cts:__subpackages__",
         "//prebuilts:__subpackages__",
     ],
     apex_available: [
@@ -1139,6 +1141,7 @@
         "include/libnativehelper/header_only_include",
         "include/libnativehelper/include",
         "include/libnativehelper/include_jni",
+        "include/system/logging/liblog/include",
     ],
     arch: {
         arm64: {
@@ -1210,8 +1213,6 @@
         "//apex_available:platform",
         "com.android.art",
         "com.android.art.debug",
-        "com.android.media",
-        "com.android.media.swcodec",
         "com.android.runtime",
     ],
     licenses: ["art-module-sdk_art_license"],
@@ -1324,6 +1325,7 @@
         "common_os/include/libnativehelper/include_jni",
         "common_os/include/libnativehelper/include_platform",
         "common_os/include/libnativehelper/include_platform_header_only",
+        "common_os/include/system/logging/liblog/include",
     ],
     target: {
         host: {
diff --git a/current/sdk/android/arm/lib/libandroidio.so b/current/sdk/android/arm/lib/libandroidio.so
index ddb9283..b52b120 100755
--- a/current/sdk/android/arm/lib/libandroidio.so
+++ b/current/sdk/android/arm/lib/libandroidio.so
Binary files differ
diff --git a/current/sdk/android/arm/lib/libdexfile.so b/current/sdk/android/arm/lib/libdexfile.so
index 4f0cfdc..34a3246 100755
--- a/current/sdk/android/arm/lib/libdexfile.so
+++ b/current/sdk/android/arm/lib/libdexfile.so
Binary files differ
diff --git a/current/sdk/android/arm/lib/libdexfile_static.a b/current/sdk/android/arm/lib/libdexfile_static.a
index 1947393..f5e9c87 100644
--- a/current/sdk/android/arm/lib/libdexfile_static.a
+++ b/current/sdk/android/arm/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/arm/lib/libdexfile_support.a b/current/sdk/android/arm/lib/libdexfile_support.a
index fff8737..369b7ce 100644
--- a/current/sdk/android/arm/lib/libdexfile_support.a
+++ b/current/sdk/android/arm/lib/libdexfile_support.a
Binary files differ
diff --git a/current/sdk/android/arm/lib/libnativebridge.so b/current/sdk/android/arm/lib/libnativebridge.so
index 93df178..b4e4f1e 100755
--- a/current/sdk/android/arm/lib/libnativebridge.so
+++ b/current/sdk/android/arm/lib/libnativebridge.so
Binary files differ
diff --git a/current/sdk/android/arm/lib/libnativehelper.so b/current/sdk/android/arm/lib/libnativehelper.so
index ecd341d..3bb2c6d 100755
--- a/current/sdk/android/arm/lib/libnativehelper.so
+++ b/current/sdk/android/arm/lib/libnativehelper.so
Binary files differ
diff --git a/current/sdk/android/arm/lib/libnativehelper_lazy.a b/current/sdk/android/arm/lib/libnativehelper_lazy.a
index 6f119ce..515957f 100644
--- a/current/sdk/android/arm/lib/libnativehelper_lazy.a
+++ b/current/sdk/android/arm/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/current/sdk/android/arm/lib/libnativeloader.so b/current/sdk/android/arm/lib/libnativeloader.so
index a466b3c..5c83b76 100755
--- a/current/sdk/android/arm/lib/libnativeloader.so
+++ b/current/sdk/android/arm/lib/libnativeloader.so
Binary files differ
diff --git a/current/sdk/android/arm/lib/libsigchain.so b/current/sdk/android/arm/lib/libsigchain.so
index 2c7e39e..f965d52 100755
--- a/current/sdk/android/arm/lib/libsigchain.so
+++ b/current/sdk/android/arm/lib/libsigchain.so
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libandroidio.so b/current/sdk/android/arm64/lib/libandroidio.so
index 54f46fc..a68c593 100755
--- a/current/sdk/android/arm64/lib/libandroidio.so
+++ b/current/sdk/android/arm64/lib/libandroidio.so
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libdexfile.so b/current/sdk/android/arm64/lib/libdexfile.so
index 87e8277..6dc8a6d 100755
--- a/current/sdk/android/arm64/lib/libdexfile.so
+++ b/current/sdk/android/arm64/lib/libdexfile.so
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libdexfile_static.a b/current/sdk/android/arm64/lib/libdexfile_static.a
index d5e7db1..4210828 100644
--- a/current/sdk/android/arm64/lib/libdexfile_static.a
+++ b/current/sdk/android/arm64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libdexfile_support.a b/current/sdk/android/arm64/lib/libdexfile_support.a
index e130390..b69de21 100644
--- a/current/sdk/android/arm64/lib/libdexfile_support.a
+++ b/current/sdk/android/arm64/lib/libdexfile_support.a
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libnativebridge.so b/current/sdk/android/arm64/lib/libnativebridge.so
index 66cb281..0088c43 100755
--- a/current/sdk/android/arm64/lib/libnativebridge.so
+++ b/current/sdk/android/arm64/lib/libnativebridge.so
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libnativehelper.so b/current/sdk/android/arm64/lib/libnativehelper.so
index 9cc36b9..4bbc1c8 100755
--- a/current/sdk/android/arm64/lib/libnativehelper.so
+++ b/current/sdk/android/arm64/lib/libnativehelper.so
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libnativehelper_lazy.a b/current/sdk/android/arm64/lib/libnativehelper_lazy.a
index 3775f9e..ee19d1d 100644
--- a/current/sdk/android/arm64/lib/libnativehelper_lazy.a
+++ b/current/sdk/android/arm64/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libnativeloader.so b/current/sdk/android/arm64/lib/libnativeloader.so
index 9c30ed4..d5afc33 100755
--- a/current/sdk/android/arm64/lib/libnativeloader.so
+++ b/current/sdk/android/arm64/lib/libnativeloader.so
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libsigchain.so b/current/sdk/android/arm64/lib/libsigchain.so
index 69524d4..36fc70c 100755
--- a/current/sdk/android/arm64/lib/libsigchain.so
+++ b/current/sdk/android/arm64/lib/libsigchain.so
Binary files differ
diff --git a/current/sdk/android/x86/lib/libandroidio.so b/current/sdk/android/x86/lib/libandroidio.so
index 4604bcf..64a33cc 100755
--- a/current/sdk/android/x86/lib/libandroidio.so
+++ b/current/sdk/android/x86/lib/libandroidio.so
Binary files differ
diff --git a/current/sdk/android/x86/lib/libdexfile.so b/current/sdk/android/x86/lib/libdexfile.so
index e9f48b9..2e80672 100755
--- a/current/sdk/android/x86/lib/libdexfile.so
+++ b/current/sdk/android/x86/lib/libdexfile.so
Binary files differ
diff --git a/current/sdk/android/x86/lib/libdexfile_static.a b/current/sdk/android/x86/lib/libdexfile_static.a
index 414df85..a0f4ba2 100644
--- a/current/sdk/android/x86/lib/libdexfile_static.a
+++ b/current/sdk/android/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/x86/lib/libdexfile_support.a b/current/sdk/android/x86/lib/libdexfile_support.a
index 72487bd..9a13cd0 100644
--- a/current/sdk/android/x86/lib/libdexfile_support.a
+++ b/current/sdk/android/x86/lib/libdexfile_support.a
Binary files differ
diff --git a/current/sdk/android/x86/lib/libnativebridge.so b/current/sdk/android/x86/lib/libnativebridge.so
index ecaf0eb..0ec091b 100755
--- a/current/sdk/android/x86/lib/libnativebridge.so
+++ b/current/sdk/android/x86/lib/libnativebridge.so
Binary files differ
diff --git a/current/sdk/android/x86/lib/libnativehelper.so b/current/sdk/android/x86/lib/libnativehelper.so
index cdfe8ae..0f1e635 100755
--- a/current/sdk/android/x86/lib/libnativehelper.so
+++ b/current/sdk/android/x86/lib/libnativehelper.so
Binary files differ
diff --git a/current/sdk/android/x86/lib/libnativehelper_lazy.a b/current/sdk/android/x86/lib/libnativehelper_lazy.a
index 46f361b..a333bce 100644
--- a/current/sdk/android/x86/lib/libnativehelper_lazy.a
+++ b/current/sdk/android/x86/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/current/sdk/android/x86/lib/libnativeloader.so b/current/sdk/android/x86/lib/libnativeloader.so
index f0cfe17..0ba1dcb 100755
--- a/current/sdk/android/x86/lib/libnativeloader.so
+++ b/current/sdk/android/x86/lib/libnativeloader.so
Binary files differ
diff --git a/current/sdk/android/x86/lib/libsigchain.so b/current/sdk/android/x86/lib/libsigchain.so
index 15135ff..bc113b1 100755
--- a/current/sdk/android/x86/lib/libsigchain.so
+++ b/current/sdk/android/x86/lib/libsigchain.so
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libandroidio.so b/current/sdk/android/x86_64/lib/libandroidio.so
index dc83ab9..01bda18 100755
--- a/current/sdk/android/x86_64/lib/libandroidio.so
+++ b/current/sdk/android/x86_64/lib/libandroidio.so
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libdexfile.so b/current/sdk/android/x86_64/lib/libdexfile.so
index 988aed4..654e7fb 100755
--- a/current/sdk/android/x86_64/lib/libdexfile.so
+++ b/current/sdk/android/x86_64/lib/libdexfile.so
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libdexfile_static.a b/current/sdk/android/x86_64/lib/libdexfile_static.a
index 827030a..1f8b918 100644
--- a/current/sdk/android/x86_64/lib/libdexfile_static.a
+++ b/current/sdk/android/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libdexfile_support.a b/current/sdk/android/x86_64/lib/libdexfile_support.a
index 8f28cc2..a529fc5 100644
--- a/current/sdk/android/x86_64/lib/libdexfile_support.a
+++ b/current/sdk/android/x86_64/lib/libdexfile_support.a
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libnativebridge.so b/current/sdk/android/x86_64/lib/libnativebridge.so
index b41bfc4..4102614 100755
--- a/current/sdk/android/x86_64/lib/libnativebridge.so
+++ b/current/sdk/android/x86_64/lib/libnativebridge.so
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libnativehelper.so b/current/sdk/android/x86_64/lib/libnativehelper.so
index b27ee91..89692a9 100755
--- a/current/sdk/android/x86_64/lib/libnativehelper.so
+++ b/current/sdk/android/x86_64/lib/libnativehelper.so
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libnativehelper_lazy.a b/current/sdk/android/x86_64/lib/libnativehelper_lazy.a
index 9dd3e7a..2825d30 100644
--- a/current/sdk/android/x86_64/lib/libnativehelper_lazy.a
+++ b/current/sdk/android/x86_64/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libnativeloader.so b/current/sdk/android/x86_64/lib/libnativeloader.so
index 0666ed0..de1fa31 100755
--- a/current/sdk/android/x86_64/lib/libnativeloader.so
+++ b/current/sdk/android/x86_64/lib/libnativeloader.so
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libsigchain.so b/current/sdk/android/x86_64/lib/libsigchain.so
index 968bc4c..b00cb27 100755
--- a/current/sdk/android/x86_64/lib/libsigchain.so
+++ b/current/sdk/android/x86_64/lib/libsigchain.so
Binary files differ
diff --git a/current/sdk/arm/lib/libnativebridge_lazy.so b/current/sdk/arm/lib/libnativebridge_lazy.so
index 509b752..577148c 100755
--- a/current/sdk/arm/lib/libnativebridge_lazy.so
+++ b/current/sdk/arm/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/current/sdk/arm/lib/libnativehelper_compat_libc++.so b/current/sdk/arm/lib/libnativehelper_compat_libc++.so
index 46e442a..4d18030 100755
--- a/current/sdk/arm/lib/libnativehelper_compat_libc++.so
+++ b/current/sdk/arm/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/current/sdk/arm/lib/libnativeloader_lazy.so b/current/sdk/arm/lib/libnativeloader_lazy.so
index 1a2467a..f9260a0 100755
--- a/current/sdk/arm/lib/libnativeloader_lazy.so
+++ b/current/sdk/arm/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/current/sdk/arm64/lib/libnativebridge_lazy.so b/current/sdk/arm64/lib/libnativebridge_lazy.so
index 5baace2..3e387fc 100755
--- a/current/sdk/arm64/lib/libnativebridge_lazy.so
+++ b/current/sdk/arm64/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/current/sdk/arm64/lib/libnativehelper_compat_libc++.so b/current/sdk/arm64/lib/libnativehelper_compat_libc++.so
index 2a53853..25c0746 100755
--- a/current/sdk/arm64/lib/libnativehelper_compat_libc++.so
+++ b/current/sdk/arm64/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/current/sdk/arm64/lib/libnativeloader_lazy.so b/current/sdk/arm64/lib/libnativeloader_lazy.so
index bed48f5..711c510 100755
--- a/current/sdk/arm64/lib/libnativeloader_lazy.so
+++ b/current/sdk/arm64/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/current/sdk/common_os/include/art/libartbase/base/allocator.h b/current/sdk/common_os/include/art/libartbase/base/allocator.h
index 81f3a60..24374a2 100644
--- a/current/sdk/common_os/include/art/libartbase/base/allocator.h
+++ b/current/sdk/common_os/include/art/libartbase/base/allocator.h
@@ -115,8 +115,8 @@
 
   // Used internally by STL data structures.
   template <class U>
-  TrackingAllocatorImpl(
-      const TrackingAllocatorImpl<U, kTag>& alloc ATTRIBUTE_UNUSED) noexcept {}
+  explicit TrackingAllocatorImpl(
+      [[maybe_unused]] const TrackingAllocatorImpl<U, kTag>& alloc) noexcept {}
 
   // Used internally by STL data structures.
   TrackingAllocatorImpl() noexcept {
@@ -130,7 +130,7 @@
     using other = TrackingAllocatorImpl<U, kTag>;
   };
 
-  pointer allocate(size_type n, const_pointer hint ATTRIBUTE_UNUSED = 0) {
+  pointer allocate(size_type n, [[maybe_unused]] const_pointer hint = 0) {
     const size_t size = n * sizeof(T);
     TrackedAllocators::RegisterAllocation(GetTag(), size);
     return reinterpret_cast<pointer>(malloc(size));
diff --git a/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h b/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h
index c4f713a..10f7f31 100644
--- a/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h
+++ b/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h
@@ -120,13 +120,13 @@
   ArenaAllocatorStatsImpl(const ArenaAllocatorStatsImpl& other) = default;
   ArenaAllocatorStatsImpl& operator = (const ArenaAllocatorStatsImpl& other) = delete;
 
-  void Copy(const ArenaAllocatorStatsImpl& other ATTRIBUTE_UNUSED) {}
-  void RecordAlloc(size_t bytes ATTRIBUTE_UNUSED, ArenaAllocKind kind ATTRIBUTE_UNUSED) {}
+  void Copy([[maybe_unused]] const ArenaAllocatorStatsImpl& other) {}
+  void RecordAlloc([[maybe_unused]] size_t bytes, [[maybe_unused]] ArenaAllocKind kind) {}
   size_t NumAllocations() const { return 0u; }
   size_t BytesAllocated() const { return 0u; }
-  void Dump(std::ostream& os ATTRIBUTE_UNUSED,
-            const Arena* first ATTRIBUTE_UNUSED,
-            ssize_t lost_bytes_adjustment ATTRIBUTE_UNUSED) const {}
+  void Dump([[maybe_unused]] std::ostream& os,
+            [[maybe_unused]] const Arena* first,
+            [[maybe_unused]] ssize_t lost_bytes_adjustment) const {}
 };
 
 template <bool kCount>
diff --git a/current/sdk/common_os/include/art/libartbase/base/arena_containers.h b/current/sdk/common_os/include/art/libartbase/base/arena_containers.h
index f205bc4..80a3791 100644
--- a/current/sdk/common_os/include/art/libartbase/base/arena_containers.h
+++ b/current/sdk/common_os/include/art/libartbase/base/arena_containers.h
@@ -93,7 +93,7 @@
 template <typename Key,
           typename Value,
           typename Hash = std::hash<Key>,
-          typename Pred = std::equal_to<Value>>
+          typename Pred = std::equal_to<Key>>
 using ArenaUnorderedMap = std::unordered_map<Key,
                                              Value,
                                              Hash,
@@ -109,7 +109,7 @@
 class ArenaAllocatorAdapterKindImpl<false> {
  public:
   // Not tracking allocations, ignore the supplied kind and arbitrarily provide kArenaAllocSTL.
-  explicit ArenaAllocatorAdapterKindImpl(ArenaAllocKind kind ATTRIBUTE_UNUSED) {}
+  explicit ArenaAllocatorAdapterKindImpl([[maybe_unused]] ArenaAllocKind kind) {}
   ArenaAllocatorAdapterKindImpl(const ArenaAllocatorAdapterKindImpl&) = default;
   ArenaAllocatorAdapterKindImpl& operator=(const ArenaAllocatorAdapterKindImpl&) = default;
   ArenaAllocKind Kind() { return kArenaAllocSTL; }
@@ -199,7 +199,7 @@
   const_pointer address(const_reference x) const { return &x; }
 
   pointer allocate(size_type n,
-                   ArenaAllocatorAdapter<void>::pointer hint ATTRIBUTE_UNUSED = nullptr) {
+                   [[maybe_unused]] ArenaAllocatorAdapter<void>::pointer hint = nullptr) {
     DCHECK_LE(n, max_size());
     return allocator_->AllocArray<T>(n, ArenaAllocatorAdapterKind::Kind());
   }
diff --git a/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h b/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h
index baac2f5..f3dbd63 100644
--- a/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h
+++ b/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h
@@ -157,11 +157,11 @@
   ALWAYS_INLINE void CopyBits(const BitMemoryRegion& src) {
     DCHECK_EQ(size_in_bits(), src.size_in_bits());
     // Hopefully, the loads of the unused `value` shall be optimized away.
-    VisitChunks(
-        [this, &src](size_t offset, size_t num_bits, size_t value ATTRIBUTE_UNUSED) ALWAYS_INLINE {
-          StoreChunk(offset, src.LoadBits(offset, num_bits), num_bits);
-          return true;
-        });
+    VisitChunks([this, &src](size_t offset, size_t num_bits, [[maybe_unused]] size_t value)
+                    ALWAYS_INLINE {
+                      StoreChunk(offset, src.LoadBits(offset, num_bits), num_bits);
+                      return true;
+                    });
   }
 
   // And bits from other bit region.
@@ -194,9 +194,8 @@
   // Count the number of set bits within this region.
   ALWAYS_INLINE size_t PopCount() const {
     size_t result = 0u;
-    VisitChunks([&](size_t offset ATTRIBUTE_UNUSED,
-                    size_t num_bits ATTRIBUTE_UNUSED,
-                    size_t value) ALWAYS_INLINE {
+    VisitChunks([&]([[maybe_unused]] size_t offset, [[maybe_unused]] size_t num_bits, size_t value)
+                    ALWAYS_INLINE {
                       result += POPCOUNT(value);
                       return true;
                     });
@@ -210,11 +209,9 @@
 
   // Check if this region has all bits clear.
   ALWAYS_INLINE bool HasAllBitsClear() const {
-    return VisitChunks([](size_t offset ATTRIBUTE_UNUSED,
-                          size_t num_bits ATTRIBUTE_UNUSED,
-                          size_t value) ALWAYS_INLINE {
-                            return value == 0u;
-                          });
+    return VisitChunks(
+        []([[maybe_unused]] size_t offset, [[maybe_unused]] size_t num_bits, size_t value)
+            ALWAYS_INLINE { return value == 0u; });
   }
 
   // Check if this region has any bit set.
diff --git a/current/sdk/common_os/include/art/libartbase/base/bit_table.h b/current/sdk/common_os/include/art/libartbase/base/bit_table.h
index 227f5eb..eb97b54 100644
--- a/current/sdk/common_os/include/art/libartbase/base/bit_table.h
+++ b/current/sdk/common_os/include/art/libartbase/base/bit_table.h
@@ -153,13 +153,13 @@
 template<typename Accessor>
 class BitTable : public BitTableBase<Accessor::kNumColumns> {
  public:
-  class const_iterator : public std::iterator<std::random_access_iterator_tag,
-                                              /* value_type */ Accessor,
-                                              /* difference_type */ int32_t,
-                                              /* pointer */ void,
-                                              /* reference */ void> {
+  class const_iterator {
    public:
+    using iterator_category = std::random_access_iterator_tag;
+    using value_type = Accessor;
     using difference_type = int32_t;
+    using pointer = void;
+    using reference = void;
     const_iterator() {}
     const_iterator(const BitTable* table, uint32_t row) : table_(table), row_(row) {}
     const_iterator operator+(difference_type n) { return const_iterator(table_, row_ + n); }
@@ -189,6 +189,7 @@
       DCHECK_LT(row_ + index, table_->NumRows());
       return Accessor(table_, row_ + index);
     }
+
    private:
     const BitTable* table_ = nullptr;
     uint32_t row_ = 0;
diff --git a/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h b/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h
index bfcff86..296280e 100644
--- a/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h
+++ b/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h
@@ -32,14 +32,19 @@
 // Using the Curiously Recurring Template Pattern to implement everything shared
 // by LowToHighBitIterator and HighToLowBitIterator, i.e. everything but operator*().
 template <typename T, typename Iter>
-class BitIteratorBase
-    : public std::iterator<std::forward_iterator_tag, uint32_t, ptrdiff_t, void, void> {
+class BitIteratorBase {
   static_assert(std::is_integral_v<T>, "T must be integral");
   static_assert(std::is_unsigned_v<T>, "T must be unsigned");
 
   static_assert(sizeof(T) == sizeof(uint32_t) || sizeof(T) == sizeof(uint64_t), "Unsupported size");
 
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = uint32_t;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
+
   BitIteratorBase() : bits_(0u) { }
   explicit BitIteratorBase(T bits) : bits_(bits) { }
 
diff --git a/current/sdk/common_os/include/art/libartbase/base/bit_vector.h b/current/sdk/common_os/include/art/libartbase/base/bit_vector.h
index 071577b..a710c5d 100644
--- a/current/sdk/common_os/include/art/libartbase/base/bit_vector.h
+++ b/current/sdk/common_os/include/art/libartbase/base/bit_vector.h
@@ -51,9 +51,14 @@
    *     // Use idx.
    *   }
    */
-  class IndexIterator :
-      public std::iterator<std::forward_iterator_tag, uint32_t, ptrdiff_t, void, uint32_t> {
+  class IndexIterator {
    public:
+    using iterator_category = std::forward_iterator_tag;
+    using value_type = uint32_t;
+    using difference_type = ptrdiff_t;
+    using pointer = void;
+    using reference = uint32_t;
+
     bool operator==(const IndexIterator& other) const;
 
     bool operator!=(const IndexIterator& other) const {
diff --git a/current/sdk/common_os/include/art/libartbase/base/common_art_test.h b/current/sdk/common_os/include/art/libartbase/base/common_art_test.h
index d7711f2..64e251e 100644
--- a/current/sdk/common_os/include/art/libartbase/base/common_art_test.h
+++ b/current/sdk/common_os/include/art/libartbase/base/common_art_test.h
@@ -157,10 +157,10 @@
   // Gets the paths of the libcore dex files.
   std::vector<std::string> GetLibCoreDexFileNames() const;
 
-  // Gets the locations of the libcore dex files for given modules.
+  // Gets the on-host or on-device locations of the libcore dex files for given modules.
   std::vector<std::string> GetLibCoreDexLocations(const std::vector<std::string>& modules) const;
 
-  // Gets the locations of the libcore dex files.
+  // Gets the on-host or on-device locations of the libcore dex files.
   std::vector<std::string> GetLibCoreDexLocations() const;
 
   static std::string GetClassPathOption(const char* option,
@@ -183,9 +183,15 @@
     const std::unique_ptr<const DexFile>& dex = dex_files[0];
     CHECK(dex->EnableWrite()) << "Failed to enable write";
     DexFile* dex_file = const_cast<DexFile*>(dex.get());
+    size_t original_size = dex_file->Size();
     mutator(dex_file);
-    const_cast<DexFile::Header&>(dex_file->GetHeader()).checksum_ = dex_file->CalculateChecksum();
-    if (!output_dex->WriteFully(dex->Begin(), dex->Size())) {
+    // NB: mutation might have changed the DEX size in the header.
+    std::vector<uint8_t> copy(dex_file->Begin(), dex_file->Begin() + original_size);
+    copy.resize(dex_file->Size());  // Shrink/expand to new size.
+    uint32_t checksum = DexFile::CalculateChecksum(copy.data(), copy.size());
+    CHECK_GE(copy.size(), sizeof(DexFile::Header));
+    reinterpret_cast<DexFile::Header*>(copy.data())->checksum_ = checksum;
+    if (!output_dex->WriteFully(copy.data(), copy.size())) {
       return false;
     }
     if (output_dex->Flush() != 0) {
@@ -297,41 +303,60 @@
 // matches the given name.
 std::vector<pid_t> GetPidByName(const std::string& process_name);
 
-#define TEST_DISABLED_FOR_TARGET() \
-  if (kIsTargetBuild) { \
-    printf("WARNING: TEST DISABLED FOR TARGET\n"); \
-    return; \
+#define TEST_DISABLED_FOR_TARGET()                       \
+  if (kIsTargetBuild) {                                  \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR TARGET"; \
   }
 
-#define TEST_DISABLED_FOR_HOST() \
-  if (!kIsTargetBuild) { \
-    printf("WARNING: TEST DISABLED FOR HOST\n"); \
-    return; \
+#define TEST_DISABLED_FOR_HOST()                       \
+  if (!kIsTargetBuild) {                               \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR HOST"; \
   }
 
-#define TEST_DISABLED_FOR_NON_STATIC_HOST_BUILDS() \
-  if (!kHostStaticBuildEnabled) { \
-    printf("WARNING: TEST DISABLED FOR NON-STATIC HOST BUILDS\n"); \
-    return; \
+#define TEST_DISABLED_FOR_NON_STATIC_HOST_BUILDS()                       \
+  if (!kHostStaticBuildEnabled) {                                        \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR NON-STATIC HOST BUILDS"; \
   }
 
-#define TEST_DISABLED_FOR_MEMORY_TOOL() \
-  if (kRunningOnMemoryTool) { \
-    printf("WARNING: TEST DISABLED FOR MEMORY TOOL\n"); \
-    return; \
+#define TEST_DISABLED_FOR_DEBUG_BUILD()                       \
+  if (kIsDebugBuild) {                                        \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR DEBUG BUILD"; \
   }
 
-#define TEST_DISABLED_FOR_HEAP_POISONING() \
-  if (kPoisonHeapReferences) { \
-    printf("WARNING: TEST DISABLED FOR HEAP POISONING\n"); \
-    return; \
+#define TEST_DISABLED_FOR_MEMORY_TOOL()                       \
+  if (kRunningOnMemoryTool) {                                 \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR MEMORY TOOL"; \
+  }
+
+#define TEST_DISABLED_FOR_HEAP_POISONING()                       \
+  if (kPoisonHeapReferences) {                                   \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR HEAP POISONING"; \
   }
 }  // namespace art
 
-#define TEST_DISABLED_FOR_MEMORY_TOOL_WITH_HEAP_POISONING() \
-  if (kRunningOnMemoryTool && kPoisonHeapReferences) { \
-    printf("WARNING: TEST DISABLED FOR MEMORY TOOL WITH HEAP POISONING\n"); \
-    return; \
+#define TEST_DISABLED_FOR_MEMORY_TOOL_WITH_HEAP_POISONING()                       \
+  if (kRunningOnMemoryTool && kPoisonHeapReferences) {                            \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR MEMORY TOOL WITH HEAP POISONING"; \
+  }
+
+#define TEST_DISABLED_FOR_RISCV64()                       \
+  if (kRuntimeISA == InstructionSet::kRiscv64) {          \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR RISCV64"; \
+  }
+
+// Don't print messages on setup to avoid getting multiple "test disabled" messages for one test.
+// Setup phase may need to be disabled as some test rely on having boot image / compiler / other
+// things that are not implemented for RISC-V.
+#define TEST_SETUP_DISABLED_FOR_RISCV64()        \
+  if (kRuntimeISA == InstructionSet::kRiscv64) { \
+    GTEST_SKIP();                                \
+  }
+
+// Don't print messages on teardown to avoid getting multiple "test disabled" messages for one test.
+// Teardown phase may need to be disabled to match the disabled setup phase for some tests.
+#define TEST_TEARDOWN_DISABLED_FOR_RISCV64()     \
+  if (kRuntimeISA == InstructionSet::kRiscv64) { \
+    GTEST_SKIP();                                \
   }
 
 #endif  // ART_LIBARTBASE_BASE_COMMON_ART_TEST_H_
diff --git a/current/sdk/common_os/include/art/libartbase/base/debug_stack.h b/current/sdk/common_os/include/art/libartbase/base/debug_stack.h
index 4bbaee8..f3ee310 100644
--- a/current/sdk/common_os/include/art/libartbase/base/debug_stack.h
+++ b/current/sdk/common_os/include/art/libartbase/base/debug_stack.h
@@ -55,7 +55,7 @@
 template <>
 class DebugStackReferenceImpl<false> {
  public:
-  explicit DebugStackReferenceImpl(DebugStackRefCounterImpl<false>* counter ATTRIBUTE_UNUSED) {}
+  explicit DebugStackReferenceImpl([[maybe_unused]] DebugStackRefCounterImpl<false>* counter) {}
   DebugStackReferenceImpl(const DebugStackReferenceImpl& other) = default;
   DebugStackReferenceImpl& operator=(const DebugStackReferenceImpl& other) = default;
   void CheckTop() { }
@@ -64,7 +64,7 @@
 template <>
 class DebugStackIndirectTopRefImpl<false> {
  public:
-  explicit DebugStackIndirectTopRefImpl(DebugStackReferenceImpl<false>* ref ATTRIBUTE_UNUSED) {}
+  explicit DebugStackIndirectTopRefImpl([[maybe_unused]] DebugStackReferenceImpl<false>* ref) {}
   DebugStackIndirectTopRefImpl(const DebugStackIndirectTopRefImpl& other) = default;
   DebugStackIndirectTopRefImpl& operator=(const DebugStackIndirectTopRefImpl& other) = default;
   void CheckTop() { }
diff --git a/current/sdk/common_os/include/art/libartbase/base/file_utils.h b/current/sdk/common_os/include/art/libartbase/base/file_utils.h
index cff6a92..8222a8a 100644
--- a/current/sdk/common_os/include/art/libartbase/base/file_utils.h
+++ b/current/sdk/common_os/include/art/libartbase/base/file_utils.h
@@ -101,6 +101,19 @@
 // Returns the boot image location that forces the runtime to run in JIT Zygote mode.
 std::string GetJitZygoteBootImageLocation();
 
+// A helper function to pick the most appropriate boot image based on the given options.
+// The boot image location can only be used with the default bootclasspath (the value of the
+// BOOTCLASSPATH environment variable).
+std::string GetBootImageLocationForDefaultBcp(bool no_boot_image,
+                                              std::string user_defined_boot_image,
+                                              bool deny_art_apex_data_files,
+                                              std::string* error_msg);
+
+// A helper function to pick the most appropriate boot image based on system properties.
+// The boot image location can only be used with the default bootclasspath (the value of the
+// BOOTCLASSPATH environment variable).
+std::string GetBootImageLocationForDefaultBcpRespectingSysProps(std::string* error_msg);
+
 // Allows the name to be used for the dalvik cache directory (normally "dalvik-cache") to be
 // overridden with a new value.
 void OverrideDalvikCacheSubDirectory(std::string sub_dir);
diff --git a/current/sdk/common_os/include/art/libartbase/base/hash_set.h b/current/sdk/common_os/include/art/libartbase/base/hash_set.h
index 3f3c8f2..fec9440 100644
--- a/current/sdk/common_os/include/art/libartbase/base/hash_set.h
+++ b/current/sdk/common_os/include/art/libartbase/base/hash_set.h
@@ -502,10 +502,10 @@
   // Insert an element with hint.
   // Note: The hint is not very useful for a HashSet<> unless there are many hash conflicts
   // and in that case the use of HashSet<> itself should be reconsidered.
-  std::pair<iterator, bool> insert(const_iterator hint ATTRIBUTE_UNUSED, const T& element) {
+  std::pair<iterator, bool> insert([[maybe_unused]] const_iterator hint, const T& element) {
     return insert(element);
   }
-  std::pair<iterator, bool> insert(const_iterator hint ATTRIBUTE_UNUSED, T&& element) {
+  std::pair<iterator, bool> insert([[maybe_unused]] const_iterator hint, T&& element) {
     return insert(std::move(element));
   }
 
@@ -710,7 +710,7 @@
     if (UNLIKELY(NumBuckets() == 0)) {
       return 0;
     }
-    auto fail_fn = [&](size_t index ATTRIBUTE_UNUSED) ALWAYS_INLINE { return NumBuckets(); };
+    auto fail_fn = [&]([[maybe_unused]] size_t index) ALWAYS_INLINE { return NumBuckets(); };
     return FindIndexImpl(element, hash, fail_fn);
   }
 
diff --git a/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h b/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h
index 2e66f3e..f7f7395 100644
--- a/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h
+++ b/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h
@@ -35,9 +35,9 @@
   explicit IntrusiveForwardListHook(const IntrusiveForwardListHook* hook) : next_hook(hook) { }
 
   // Allow copyable values but do not copy the hook, it is not part of the value.
-  IntrusiveForwardListHook(const IntrusiveForwardListHook& other ATTRIBUTE_UNUSED)
-      : next_hook(nullptr) { }
-  IntrusiveForwardListHook& operator=(const IntrusiveForwardListHook& src ATTRIBUTE_UNUSED) {
+  explicit IntrusiveForwardListHook([[maybe_unused]] const IntrusiveForwardListHook& other)
+      : next_hook(nullptr) {}
+  IntrusiveForwardListHook& operator=([[maybe_unused]] const IntrusiveForwardListHook& src) {
     return *this;
   }
 
@@ -59,8 +59,14 @@
 class IntrusiveForwardList;
 
 template <typename T, typename HookTraits>
-class IntrusiveForwardListIterator : public std::iterator<std::forward_iterator_tag, T> {
+class IntrusiveForwardListIterator {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = T;
+  using difference_type = ptrdiff_t;
+  using pointer = value_type*;
+  using reference = value_type&;
+
   // Construct/copy/destroy (except the private constructor used by IntrusiveForwardList<>).
   IntrusiveForwardListIterator() : hook_(nullptr) { }
   IntrusiveForwardListIterator(const IntrusiveForwardListIterator& src) = default;
diff --git a/current/sdk/common_os/include/art/libartbase/base/macros.h b/current/sdk/common_os/include/art/libartbase/base/macros.h
index 13e87d7..5f2100f 100644
--- a/current/sdk/common_os/include/art/libartbase/base/macros.h
+++ b/current/sdk/common_os/include/art/libartbase/base/macros.h
@@ -20,6 +20,7 @@
 #include <stddef.h>  // for size_t
 #include <unistd.h>  // for TEMP_FAILURE_RETRY
 
+#include "android-base/format.h"
 #include "android-base/macros.h"
 #include "android-base/thread_annotations.h"
 
@@ -32,6 +33,9 @@
 #define ART_FRIEND_TYPED_TEST(test_set_name, individual_test)\
 template<typename T> ART_FRIEND_TEST(test_set_name, individual_test)
 
+// Shorthand for formatting with compile time checking of the format string
+#define ART_FORMAT(str, ...) ::fmt::format(FMT_STRING(str), __VA_ARGS__)
+
 // A macro to disallow new and delete operators for a class. It goes in the private: declarations.
 // NOTE: Providing placement new (and matching delete) for constructing container elements.
 #define DISALLOW_ALLOCATION() \
diff --git a/current/sdk/common_os/include/art/libartbase/base/mem_map.h b/current/sdk/common_os/include/art/libartbase/base/mem_map.h
index 98fb69d..db85f08 100644
--- a/current/sdk/common_os/include/art/libartbase/base/mem_map.h
+++ b/current/sdk/common_os/include/art/libartbase/base/mem_map.h
@@ -242,7 +242,10 @@
 
   bool Protect(int prot);
 
-  void MadviseDontNeedAndZero();
+  void FillWithZero(bool release_eagerly);
+  void MadviseDontNeedAndZero() {
+    FillWithZero(/* release_eagerly= */ true);
+  }
   int MadviseDontFork();
 
   int GetProtect() const {
@@ -437,8 +440,11 @@
 
 std::ostream& operator<<(std::ostream& os, const MemMap& mem_map);
 
-// Zero and release pages if possible, no requirements on alignments.
-void ZeroAndReleasePages(void* address, size_t length);
+// Zero and maybe release memory if possible, no requirements on alignments.
+void ZeroMemory(void* address, size_t length, bool release_eagerly);
+inline void ZeroAndReleaseMemory(void* address, size_t length) {
+  ZeroMemory(address, length, /* release_eagerly= */ true);
+}
 
 }  // namespace art
 
diff --git a/current/sdk/common_os/include/art/libartbase/base/membarrier.h b/current/sdk/common_os/include/art/libartbase/base/membarrier.h
index f829fc1..6fd9a3d 100644
--- a/current/sdk/common_os/include/art/libartbase/base/membarrier.h
+++ b/current/sdk/common_os/include/art/libartbase/base/membarrier.h
@@ -36,7 +36,7 @@
     kPrivateExpedited = (1 << 3),
     // MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED
     kRegisterPrivateExpedited = (1 << 4),
-    // MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
+    // MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE
     kPrivateExpeditedSyncCore = (1 << 5),
     // MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
     kRegisterPrivateExpeditedSyncCore = (1 << 6)
diff --git a/current/sdk/common_os/include/art/libartbase/base/memory_tool.h b/current/sdk/common_os/include/art/libartbase/base/memory_tool.h
index eba1d73..675ceb2 100644
--- a/current/sdk/common_os/include/art/libartbase/base/memory_tool.h
+++ b/current/sdk/common_os/include/art/libartbase/base/memory_tool.h
@@ -75,17 +75,6 @@
 # define ATTRIBUTE_NO_SANITIZE_HWADDRESS
 #endif
 
-// Removes the hwasan tag from the pointer (the top eight bits).
-// Those bits are used for verification by hwasan and they are ignored by normal ARM memory ops.
-template<typename PtrType>
-static inline PtrType* HWASanUntag(PtrType* p) {
-#if __has_feature(hwaddress_sanitizer) && defined(__aarch64__)
-  return reinterpret_cast<PtrType*>(reinterpret_cast<uintptr_t>(p) & ((1ULL << 56) - 1));
-#else
-  return p;
-#endif
-}
-
 }  // namespace art
 
 #endif  // ART_LIBARTBASE_BASE_MEMORY_TOOL_H_
diff --git a/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h b/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h
index 40db63d..e3c85b4 100644
--- a/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h
+++ b/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h
@@ -87,7 +87,8 @@
   METRIC(TotalBytesAllocatedDelta, MetricsDeltaCounter)        \
   METRIC(TotalGcCollectionTimeDelta, MetricsDeltaCounter)      \
   METRIC(YoungGcCountDelta, MetricsDeltaCounter)               \
-  METRIC(FullGcCountDelta, MetricsDeltaCounter)
+  METRIC(FullGcCountDelta, MetricsDeltaCounter)                \
+  METRIC(TimeElapsedDelta, MetricsDeltaCounter)
 
 #define ART_METRICS(METRIC) \
   ART_EVENT_METRICS(METRIC) \
@@ -759,6 +760,7 @@
 
  private:
   uint64_t beginning_timestamp_;
+  uint64_t last_report_timestamp_;
 
 #define METRIC(name, Kind, ...) Kind<DatumId::k##name, ##__VA_ARGS__> name##_;
   ART_METRICS(METRIC)
diff --git a/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h b/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h
index 6de0192..165fb8c 100644
--- a/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h
+++ b/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h
@@ -171,7 +171,7 @@
   size_t ApproximatePeakBytes();
 
   // Allow a delete-expression to destroy but not deallocate allocators created by Create().
-  static void operator delete(void* ptr ATTRIBUTE_UNUSED) {}
+  static void operator delete([[maybe_unused]] void* ptr) {}
 
  private:
   ArenaStack* arena_stack_;
diff --git a/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h b/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h
index 5f0cfe6..d0ff7f5 100644
--- a/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h
+++ b/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h
@@ -185,7 +185,7 @@
   const_pointer address(const_reference x) const { return &x; }
 
   pointer allocate(size_type n,
-                   ScopedArenaAllocatorAdapter<void>::pointer hint ATTRIBUTE_UNUSED = nullptr) {
+                   [[maybe_unused]] ScopedArenaAllocatorAdapter<void>::pointer hint = nullptr) {
     DCHECK_LE(n, max_size());
     DebugStackIndirectTopRef::CheckTop();
     return reinterpret_cast<T*>(arena_stack_->Alloc(n * sizeof(T),
@@ -273,7 +273,7 @@
 template <typename T>
 class ArenaDelete<T[]> {
  public:
-  void operator()(T* ptr ATTRIBUTE_UNUSED) const {
+  void operator()([[maybe_unused]] T* ptr) const {
     static_assert(std::is_trivially_destructible_v<T>,
                   "ArenaUniquePtr does not support non-trivially-destructible arrays.");
     // TODO: Implement debug checks, and MEMORY_TOOL support.
diff --git a/current/sdk/common_os/include/art/libartbase/base/stl_util.h b/current/sdk/common_os/include/art/libartbase/base/stl_util.h
index 2c9547f..87b6d4b 100644
--- a/current/sdk/common_os/include/art/libartbase/base/stl_util.h
+++ b/current/sdk/common_os/include/art/libartbase/base/stl_util.h
@@ -156,10 +156,14 @@
 }
 
 template <typename IterLeft, typename IterRight>
-class ZipLeftIter : public std::iterator<
-                        std::forward_iterator_tag,
-                        std::pair<typename IterLeft::value_type, typename IterRight::value_type>> {
+class ZipLeftIter {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = std::pair<typename IterLeft::value_type, typename IterRight::value_type>;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
+
   ZipLeftIter(IterLeft left, IterRight right) : left_iter_(left), right_iter_(right) {}
   ZipLeftIter<IterLeft, IterRight>& operator++() {
     ++left_iter_;
@@ -186,8 +190,14 @@
   IterRight right_iter_;
 };
 
-class CountIter : public std::iterator<std::forward_iterator_tag, size_t, size_t, size_t, size_t> {
+class CountIter {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = size_t;
+  using difference_type = size_t;
+  using pointer = size_t;
+  using reference = size_t;
+
   CountIter() : count_(0) {}
   explicit CountIter(size_t count) : count_(count) {}
   CountIter& operator++() {
@@ -238,9 +248,14 @@
 }
 
 template <typename RealIter, typename Filter>
-struct FilterIterator
-    : public std::iterator<std::forward_iterator_tag, typename RealIter::value_type> {
+struct FilterIterator {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = typename RealIter::value_type;
+  using difference_type = ptrdiff_t;
+  using pointer = typename RealIter::pointer;
+  using reference = typename RealIter::reference;
+
   FilterIterator(RealIter rl,
                  Filter cond,
                  std::optional<RealIter> end = std::nullopt)
@@ -323,8 +338,14 @@
 }
 
 // Helper struct for iterating a split-string without allocation.
-struct SplitStringIter : public std::iterator<std::forward_iterator_tag, std::string_view> {
+struct SplitStringIter {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = std::string_view;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
+
   // Direct iterator constructor. The iteration state is only the current index.
   // We use that with the split char and the full string to get the current and
   // next segment.
diff --git a/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h b/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h
index 6a7e4be..7d1b9fc 100644
--- a/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h
+++ b/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h
@@ -23,11 +23,14 @@
 
 namespace art {
 
-template<typename T>
-class StrideIterator : public std::iterator<std::random_access_iterator_tag, T> {
+template <typename T>
+class StrideIterator {
  public:
-  using difference_type =
-      typename std::iterator<std::random_access_iterator_tag, T>::difference_type;
+  using iterator_category = std::random_access_iterator_tag;
+  using value_type = T;
+  using difference_type = ptrdiff_t;
+  using pointer = value_type*;
+  using reference = value_type&;
 
   StrideIterator(const StrideIterator&) = default;
   StrideIterator(StrideIterator&&) noexcept = default;
diff --git a/current/sdk/common_os/include/art/libartbase/base/testing.h b/current/sdk/common_os/include/art/libartbase/base/testing.h
index 65bd3f6..88d0aee 100644
--- a/current/sdk/common_os/include/art/libartbase/base/testing.h
+++ b/current/sdk/common_os/include/art/libartbase/base/testing.h
@@ -25,16 +25,26 @@
 namespace art {
 namespace testing {
 
+// Note: "libcore" here means art + conscrypt + icu.
+
 // Gets the names of the libcore modules.
 // If `core_only` is true, only returns the names of CORE_IMG_JARS in Android.common_path.mk.
 std::vector<std::string> GetLibCoreModuleNames(bool core_only = false);
 
 // Gets the paths of the libcore dex files for given modules.
-std::vector<std::string> GetLibCoreDexFileNames(const std::vector<std::string>& modules);
+std::vector<std::string> GetLibCoreDexFileNames(const std::string& prefix,
+                                                const std::vector<std::string>& modules);
 
 // Gets the paths of the libcore dex files.
 // If `core_only` is true, only returns the filenames of CORE_IMG_JARS in Android.common_path.mk.
-std::vector<std::string> GetLibCoreDexFileNames(bool core_only = false);
+std::vector<std::string> GetLibCoreDexFileNames(const std::string& prefix, bool core_only = false);
+
+// Gets the on-device locations of the libcore dex files for given modules.
+std::vector<std::string> GetLibCoreDexLocations(const std::vector<std::string>& modules);
+
+// Gets the on-device locations of the libcore dex files.
+// If `core_only` is true, only returns the filenames of CORE_IMG_JARS in Android.common_path.mk.
+std::vector<std::string> GetLibCoreDexLocations(bool core_only = false);
 
 }  // namespace testing
 }  // namespace art
diff --git a/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h b/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h
index 178f89d..0592256 100644
--- a/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h
+++ b/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h
@@ -171,8 +171,7 @@
     CleanUp(file.get());
   }
 
-  virtual void CleanUp(RandomAccessFile* file ATTRIBUTE_UNUSED) {
-  }
+  virtual void CleanUp([[maybe_unused]] RandomAccessFile* file) {}
 
  protected:
   std::string android_data_;
diff --git a/current/sdk/common_os/include/art/libartbase/base/utils.h b/current/sdk/common_os/include/art/libartbase/base/utils.h
index f311f09..5e04cb0 100644
--- a/current/sdk/common_os/include/art/libartbase/base/utils.h
+++ b/current/sdk/common_os/include/art/libartbase/base/utils.h
@@ -75,16 +75,13 @@
 class VoidFunctor {
  public:
   template <typename A>
-  inline void operator() (A a ATTRIBUTE_UNUSED) const {
-  }
+  inline void operator()([[maybe_unused]] A a) const {}
 
   template <typename A, typename B>
-  inline void operator() (A a ATTRIBUTE_UNUSED, B b ATTRIBUTE_UNUSED) const {
-  }
+  inline void operator()([[maybe_unused]] A a, [[maybe_unused]] B b) const {}
 
   template <typename A, typename B, typename C>
-  inline void operator() (A a ATTRIBUTE_UNUSED, B b ATTRIBUTE_UNUSED, C c ATTRIBUTE_UNUSED) const {
-  }
+  inline void operator()([[maybe_unused]] A a, [[maybe_unused]] B b, [[maybe_unused]] C c) const {}
 };
 
 inline bool TestBitmap(size_t idx, const uint8_t* bitmap) {
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h b/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h
index 9f2ae82..2fbc2cb 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h
@@ -36,31 +36,8 @@
 // Class that is used to open dex files and deal with corresponding multidex and location logic.
 class ArtDexFileLoader : public DexFileLoader {
  public:
-  using DexFileLoader::DexFileLoader;
-  virtual ~ArtDexFileLoader() { }
-
-  // Returns the checksums of a file for comparison with GetLocationChecksum().
-  // For .dex files, this is the single header checksum.
-  // For zip files, this is the zip entry CRC32 checksum for classes.dex and
-  // each additional multidex entry classes2.dex, classes3.dex, etc.
-  // If a valid zip_fd is provided the file content will be read directly from
-  // the descriptor and `filename` will be used as alias for error logging. If
-  // zip_fd is -1, the method will try to open the `filename` and read the
-  // content from it.
-  //
-  // The dex_locations vector will be populated with the corresponding multidex
-  // locations.
-  //
-  // Return true if the checksums could be found, false otherwise.
-  static bool GetMultiDexChecksums(const char* filename,
-                                   std::vector<uint32_t>* checksums,
-                                   std::vector<std::string>* dex_locations,
-                                   std::string* error_msg,
-                                   int zip_fd = -1,
-                                   bool* only_contains_uncompressed_dex = nullptr);
-
-  // Don't shadow overloads from base class.
-  using DexFileLoader::Open;
+  using DexFileLoader::DexFileLoader;  // Use constructors from base class.
+  using DexFileLoader::Open;           // Don't shadow overloads from base class.
 
   // Old signature preserved for app-compat.
   std::unique_ptr<const DexFile> Open(const uint8_t* base,
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h b/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h
index a3ee2bd..401195c 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h
@@ -18,6 +18,7 @@
 #define ART_LIBDEXFILE_DEX_CLASS_ACCESSOR_H_
 
 #include "code_item_accessors.h"
+#include "dex/dex_file.h"
 #include "dex_file_types.h"
 #include "invoke_type.h"
 #include "modifiers.h"
@@ -177,11 +178,13 @@
   };
 
   template <typename DataType>
-  class DataIterator : public std::iterator<std::forward_iterator_tag, DataType> {
+  class DataIterator {
    public:
-    using value_type = typename std::iterator<std::forward_iterator_tag, DataType>::value_type;
-    using difference_type =
-        typename std::iterator<std::forward_iterator_tag, value_type>::difference_type;
+    using iterator_category = std::forward_iterator_tag;
+    using value_type = DataType;
+    using difference_type = ptrdiff_t;
+    using pointer = value_type*;
+    using reference = value_type&;
 
     DataIterator(const DexFile& dex_file,
                  uint32_t position,
@@ -279,7 +282,7 @@
 
   ClassAccessor(const DexFile& dex_file,
                 const uint8_t* class_data,
-                uint32_t class_def_index = dex::kDexNoIndex,
+                uint32_t class_def_index = DexFile::kDexNoIndex32,
                 bool parse_hiddenapi_class_data = false);
 
   // Return the code item for a method.
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h b/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h
index 8ed585b..c7817f7 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h
@@ -41,10 +41,13 @@
 };
 
 // Iterator for visiting classes in a Dex file.
-class ClassIterator : public std::iterator<std::forward_iterator_tag, ClassIteratorData> {
+class ClassIterator {
  public:
-  using value_type = std::iterator<std::forward_iterator_tag, ClassIteratorData>::value_type;
-  using difference_type = std::iterator<std::forward_iterator_tag, value_type>::difference_type;
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = ClassIteratorData;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
 
   ClassIterator(const DexFile& dex_file, uint32_t class_def_idx)
       : data_(dex_file, class_def_idx) {}
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h b/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h
index 1e33002..b740460 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h
@@ -178,8 +178,7 @@
 
 template <>
 inline void CodeItemDebugInfoAccessor::Init<StandardDexFile::CodeItem>(
-    const StandardDexFile::CodeItem& code_item,
-    uint32_t dex_method_index ATTRIBUTE_UNUSED) {
+    const StandardDexFile::CodeItem& code_item, [[maybe_unused]] uint32_t dex_method_index) {
   debug_info_offset_ = code_item.debug_info_off_;
   CodeItemDataAccessor::Init(code_item);
 }
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h b/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h
index 22f6c20..468ff49 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h
@@ -273,6 +273,7 @@
 
   // Returns true if the byte string points to the magic value.
   static bool IsMagicValid(const uint8_t* magic);
+  static bool IsMagicValid(DexFile::Magic magic) { return IsMagicValid(magic.data()); }
   bool IsMagicValid() const override;
 
   // Returns true if the byte string after the magic is the correct value.
@@ -305,7 +306,6 @@
 
  private:
   CompactDexFile(const uint8_t* base,
-                 size_t size,
                  const std::string& location,
                  uint32_t location_checksum,
                  const OatDexFile* oat_dex_file,
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h b/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h
index 599ec4d..2f06688 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h
@@ -24,6 +24,7 @@
 namespace art {
 
 // Optimization level for compact dex generation.
+// TODO(b/256664509): Clean this up.
 enum class CompactDexLevel {
   // Level none means not generated.
   kCompactDexLevelNone,
@@ -31,9 +32,7 @@
   kCompactDexLevelFast,
 };
 
-#ifndef ART_DEFAULT_COMPACT_DEX_LEVEL
-#error ART_DEFAULT_COMPACT_DEX_LEVEL not specified.
-#else
+#ifdef ART_DEFAULT_COMPACT_DEX_LEVEL
 #define ART_DEFAULT_COMPACT_DEX_LEVEL_VALUE_fast CompactDexLevel::kCompactDexLevelFast
 #define ART_DEFAULT_COMPACT_DEX_LEVEL_VALUE_none CompactDexLevel::kCompactDexLevelNone
 
@@ -41,7 +40,8 @@
     ART_DEFAULT_COMPACT_DEX_LEVEL_VALUE_, \
     ART_DEFAULT_COMPACT_DEX_LEVEL)
 
-static constexpr CompactDexLevel kDefaultCompactDexLevel = ART_DEFAULT_COMPACT_DEX_LEVEL_DEFAULT;
+static_assert(ART_DEFAULT_COMPACT_DEX_LEVEL_DEFAULT == CompactDexLevel::kCompactDexLevelNone,
+              "ART_DEFAULT_COMPACT_DEX_LEVEL_DEFAULT != none is no longer supported");
 #endif
 
 }  // namespace art
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h b/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h
index d9c5211..9291f6e 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h
@@ -180,6 +180,10 @@
   return StringDataAndUtf16LengthByIdx(GetProtoId(method_id.proto_idx_).shorty_idx_, length);
 }
 
+inline std::string_view DexFile::GetMethodShortyView(const dex::MethodId& method_id) const {
+  return GetShortyView(method_id.proto_idx_);
+}
+
 inline const char* DexFile::GetClassDescriptor(const dex::ClassDef& class_def) const {
   return StringByTypeIdx(class_def.class_idx_);
 }
@@ -194,12 +198,16 @@
 }
 
 ALWAYS_INLINE
+inline std::string_view DexFile::GetShortyView(dex::ProtoIndex proto_idx) const {
+  return GetShortyView(GetProtoId(proto_idx));
+}
+
+ALWAYS_INLINE
 inline std::string_view DexFile::GetShortyView(const dex::ProtoId& proto_id) const {
-  uint32_t lhs_shorty_len;
-  const char* lhs_shorty_data =
-      StringDataAndUtf16LengthByIdx(proto_id.shorty_idx_, &lhs_shorty_len);
-  DCHECK_EQ(lhs_shorty_data[lhs_shorty_len], '\0');  // For a shorty utf16 length == mutf8 length.
-  return std::string_view(lhs_shorty_data, lhs_shorty_len);
+  uint32_t shorty_len;
+  const char* shorty_data = StringDataAndUtf16LengthByIdx(proto_id.shorty_idx_, &shorty_len);
+  DCHECK_EQ(shorty_data[shorty_len], '\0');  // For a shorty utf16 length == mutf8 length.
+  return std::string_view(shorty_data, shorty_len);
 }
 
 inline const dex::TryItem* DexFile::GetTryItems(const DexInstructionIterator& code_item_end,
@@ -319,7 +327,14 @@
         // Emit what was previously there, if anything
         if (local_in_reg[reg].is_live_) {
           local_in_reg[reg].end_address_ = address;
-          new_local_callback(local_in_reg[reg]);
+          // Parameters with generic types cannot be encoded in the debug_info_item header. So d8
+          // encodes it as null in the header with start and end address as 0. There will be a
+          // START_LOCAL_EXTENDED that will declare the parameter with correct signature
+          // Debuggers get confused when they see empty ranges. So don't emit them.
+          // See b/297843934 for more details.
+          if (local_in_reg[reg].end_address_ != 0) {
+            new_local_callback(local_in_reg[reg]);
+          }
         }
 
         local_in_reg[reg].name_ = index_to_string_data(name_idx);
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h b/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h
index 1d1b016..5068480 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h
@@ -19,6 +19,7 @@
 
 #include <android-base/logging.h>
 
+#include <array>
 #include <memory>
 #include <optional>
 #include <string>
@@ -56,8 +57,9 @@
 // Owns the physical storage that backs one or more DexFiles (that is, it can be shared).
 // It frees the storage (e.g. closes file) when all DexFiles that use it are all closed.
 //
-// The Begin()-End() range represents exactly one DexFile (with the size from the header).
-// In particular, the End() does NOT include any shared cdex data from other DexFiles.
+// The memory range must include all data used by the DexFiles including any shared data.
+//
+// It might also include surrounding non-dex data (e.g. it might represent vdex file).
 class DexFileContainer {
  public:
   DexFileContainer() { }
@@ -124,11 +126,19 @@
   static constexpr uint16_t kDexNoIndex16 = 0xFFFF;
   static constexpr uint32_t kDexNoIndex32 = 0xFFFFFFFF;
 
+  using Magic = std::array<uint8_t, 8>;
+
+  struct Sha1 : public std::array<uint8_t, kSha1DigestSize> {
+    std::string ToString() const;
+  };
+
+  static_assert(std::is_standard_layout_v<Sha1>);
+
   // Raw header_item.
   struct Header {
-    uint8_t magic_[8] = {};
+    Magic magic_ = {};
     uint32_t checksum_ = 0;  // See also location_checksum_
-    uint8_t signature_[kSha1DigestSize] = {};
+    Sha1 signature_ = {};
     uint32_t file_size_ = 0;  // size of entire file
     uint32_t header_size_ = 0;  // offset to start of next section
     uint32_t endian_tag_ = 0;
@@ -245,6 +255,8 @@
     return location_checksum_;
   }
 
+  Sha1 GetSha1() const { return header_->signature_; }
+
   const Header& GetHeader() const {
     DCHECK(header_ != nullptr) << GetLocation();
     return *header_;
@@ -453,6 +465,7 @@
   // Returns the shorty of a method id.
   const char* GetMethodShorty(const dex::MethodId& method_id) const;
   const char* GetMethodShorty(const dex::MethodId& method_id, uint32_t* length) const;
+  std::string_view GetMethodShortyView(const dex::MethodId& method_id) const;
 
   // Returns the number of class definitions in the .dex file.
   uint32_t NumClassDefs() const {
@@ -547,6 +560,7 @@
 
   // Returns the short form method descriptor for the given prototype.
   const char* GetShorty(dex::ProtoIndex proto_idx) const;
+  std::string_view GetShortyView(dex::ProtoIndex proto_idx) const;
   std::string_view GetShortyView(const dex::ProtoId& proto_id) const;
 
   const dex::TypeList* GetProtoParameters(const dex::ProtoId& proto_id) const {
@@ -755,13 +769,9 @@
     return begin_;
   }
 
-  size_t Size() const {
-    return size_;
-  }
+  size_t Size() const { return header_->file_size_; }
 
-  static ArrayRef<const uint8_t> GetDataRange(const uint8_t* data,
-                                              size_t size,
-                                              DexFileContainer* container);
+  static ArrayRef<const uint8_t> GetDataRange(const uint8_t* data, DexFileContainer* container);
 
   const uint8_t* DataBegin() const { return data_.data(); }
 
@@ -836,9 +846,7 @@
     return DataBegin() <= addr && addr < DataBegin() + DataSize();
   }
 
-  DexFileContainer* GetContainer() const {
-    return container_.get();
-  }
+  const std::shared_ptr<DexFileContainer>& GetContainer() const { return container_; }
 
   IterationRange<ClassIterator> GetClasses() const;
 
@@ -854,7 +862,6 @@
   static constexpr uint32_t kDefaultMethodsVersion = 37;
 
   DexFile(const uint8_t* base,
-          size_t size,
           const std::string& location,
           uint32_t location_checksum,
           const OatDexFile* oat_dex_file,
@@ -862,6 +869,9 @@
           std::shared_ptr<DexFileContainer> container,
           bool is_compact_dex);
 
+  template <typename T>
+  const T* GetSection(const uint32_t* offset, DexFileContainer* container);
+
   // Top-level initializer that calls other Init methods.
   bool Init(std::string* error_msg);
 
@@ -874,8 +884,7 @@
   // The base address of the memory mapping.
   const uint8_t* const begin_;
 
-  // The size of the underlying memory allocation in bytes.
-  const size_t size_;
+  size_t unused_size_ = 0;  // Preserve layout for DRM (b/305203031).
 
   // Data memory range: Most dex offsets are relative to this memory range.
   // Standard dex: same as (begin_, size_).
@@ -985,7 +994,12 @@
 
   bool HasNext() const { return pos_ < array_size_; }
 
-  void Next();
+  WARN_UNUSED bool MaybeNext();
+
+  ALWAYS_INLINE void Next() {
+    bool ok = MaybeNext();
+    DCHECK(ok) << "Unknown type: " << GetValueType();
+  }
 
   enum ValueType {
     kByte         = 0x00,
@@ -1006,6 +1020,7 @@
     kAnnotation   = 0x1d,
     kNull         = 0x1e,
     kBoolean      = 0x1f,
+    kEndOfInput   = 0xff,
   };
 
   ValueType GetValueType() const { return type_; }
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h b/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h
index 532445a..be3359b 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h
@@ -32,7 +32,6 @@
 
 class MemMap;
 class OatDexFile;
-class ScopedTrace;
 class ZipArchive;
 
 enum class DexFileLoaderErrorCode {
@@ -72,6 +71,53 @@
   // index == 0, and dex_location + multi-dex-separator + GetMultiDexClassesDexName(index) else.
   static std::string GetMultiDexLocation(size_t index, const char* dex_location);
 
+  // Returns combined checksum of one or more dex files (one checksum for the whole multidex set).
+  //
+  // This uses the source path provided to DexFileLoader constructor.
+  //
+  // Returns false on error.  Sets *checksum to nullopt for an empty set.
+  bool GetMultiDexChecksum(/*out*/ std::optional<uint32_t>* checksum,
+                           /*out*/ std::string* error_msg,
+                           /*out*/ bool* only_contains_uncompressed_dex = nullptr);
+
+  // Returns combined checksum of one or more dex files (one checksum for the whole multidex set).
+  //
+  // This uses already open dex files.
+  //
+  // It starts iteration at index 'i', which must be a primary dex file,
+  // and it sets 'i' to the next primary dex file or to end of the array.
+  template <typename DexFilePtrVector>  // array|vector<unique_ptr|DexFile|OatDexFile*>.
+  static uint32_t GetMultiDexChecksum(const DexFilePtrVector& dex_files,
+                                      /*inout*/ size_t* i) {
+    CHECK_LT(*i, dex_files.size()) << "No dex files";
+    std::optional<uint32_t> checksum;
+    for (; *i < dex_files.size(); ++(*i)) {
+      const char* location = dex_files[*i]->GetLocation().c_str();
+      if (!checksum.has_value()) {                         // First dex file.
+        CHECK(!IsMultiDexLocation(location)) << location;  // Expect primary dex.
+      } else if (!IsMultiDexLocation(location)) {          // Later dex file.
+        break;  // Found another primary dex file, terminate iteration.
+      }
+      checksum = checksum.value_or(kEmptyMultiDexChecksum) ^ dex_files[*i]->GetLocationChecksum();
+    }
+    CHECK(checksum.has_value());
+    return checksum.value();
+  }
+
+  // Calculate checksum of dex files in a vector, starting at index 0.
+  // It will CHECK that the whole vector is consumed (i.e. there is just one primary dex file).
+  template <typename DexFilePtrVector>
+  static uint32_t GetMultiDexChecksum(const DexFilePtrVector& dex_files) {
+    size_t i = 0;
+    uint32_t checksum = GetMultiDexChecksum(dex_files, &i);
+    CHECK_EQ(i, dex_files.size());
+    return checksum;
+  }
+
+  // Non-zero initial value for multi-dex to catch bugs if multi-dex checksum is compared
+  // directly to DexFile::GetLocationChecksum without going through GetMultiDexChecksum.
+  static constexpr uint32_t kEmptyMultiDexChecksum = 1;
+
   // Returns the canonical form of the given dex location.
   //
   // There are different flavors of "dex locations" as follows:
@@ -107,14 +153,14 @@
     return (pos == std::string::npos) ? std::string() : location.substr(pos);
   }
 
-  DexFileLoader(const char* filename, int fd, const std::string& location)
-      : filename_(filename),
-        file_(fd == -1 ? std::optional<File>() : File(fd, /*check_usage=*/false)),
-        location_(location) {}
+  DexFileLoader(const char* filename, const File* file, const std::string& location)
+      : filename_(filename), file_(file), location_(location) {
+    CHECK(file != nullptr);  // Must be non-null, but may be invalid.
+  }
 
   DexFileLoader(std::shared_ptr<DexFileContainer> container, const std::string& location)
       : root_container_(std::move(container)), location_(location) {
-    DCHECK(root_container_ != nullptr);
+    CHECK(root_container_ != nullptr);
   }
 
   DexFileLoader(const uint8_t* base, size_t size, const std::string& location);
@@ -123,28 +169,39 @@
 
   DexFileLoader(MemMap&& mem_map, const std::string& location);
 
-  DexFileLoader(int fd, const std::string& location)
-      : DexFileLoader(/*filename=*/location.c_str(), fd, location) {}
+  DexFileLoader(File* file, const std::string& location)
+      : DexFileLoader(/*filename=*/location.c_str(), file, location) {}
 
   DexFileLoader(const char* filename, const std::string& location)
-      : DexFileLoader(filename, /*fd=*/-1, location) {}
+      : DexFileLoader(filename, /*file=*/&kInvalidFile, location) {}
 
   explicit DexFileLoader(const std::string& location)
-      : DexFileLoader(location.c_str(), /*fd=*/-1, location) {}
+      : DexFileLoader(location.c_str(), /*file=*/&kInvalidFile, location) {}
 
   virtual ~DexFileLoader() {}
 
-  std::unique_ptr<const DexFile> Open(uint32_t location_checksum,
+  std::unique_ptr<const DexFile> Open(size_t header_offset,
+                                      uint32_t location_checksum,
                                       const OatDexFile* oat_dex_file,
                                       bool verify,
                                       bool verify_checksum,
                                       std::string* error_msg);
 
   std::unique_ptr<const DexFile> Open(uint32_t location_checksum,
+                                      const OatDexFile* oat_dex_file,
                                       bool verify,
                                       bool verify_checksum,
                                       std::string* error_msg) {
-    return Open(location_checksum,
+    return Open(
+        /*header_offset=*/0, location_checksum, oat_dex_file, verify, verify_checksum, error_msg);
+  }
+
+  std::unique_ptr<const DexFile> Open(uint32_t location_checksum,
+                                      bool verify,
+                                      bool verify_checksum,
+                                      std::string* error_msg) {
+    return Open(/*header_offset=*/0,
+                location_checksum,
                 /*oat_dex_file=*/nullptr,
                 verify,
                 verify_checksum,
@@ -195,7 +252,9 @@
   }
 
  protected:
-  bool InitAndReadMagic(uint32_t* magic, std::string* error_msg);
+  static const File kInvalidFile;  // Used for "no file descriptor" (-1).
+
+  bool InitAndReadMagic(size_t header_offset, uint32_t* magic, std::string* error_msg);
 
   // Ensure we have root container.  If we are backed by a file, memory-map it.
   // We can only do this for dex files since zip files might be too big to map.
@@ -251,7 +310,8 @@
   // The DexFileLoader can be backed either by file or by memory (i.e. DexFileContainer).
   // We can not just mmap the file since APKs might be unreasonably large for 32-bit system.
   std::string filename_;
-  std::optional<File> file_;
+  const File* file_ = &kInvalidFile;
+  std::optional<File> owned_file_;  // May be used as backing storage for 'file_'.
   std::shared_ptr<DexFileContainer> root_container_;
   const std::string location_;
 };
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h b/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h
index 6c7f42a..da494e1 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h
@@ -57,11 +57,13 @@
 };
 
 // Base helper class to prevent duplicated comparators.
-class DexInstructionIteratorBase : public
-        std::iterator<std::forward_iterator_tag, DexInstructionPcPair> {
+class DexInstructionIteratorBase {
  public:
-  using value_type = std::iterator<std::forward_iterator_tag, DexInstructionPcPair>::value_type;
-  using difference_type = std::iterator<std::forward_iterator_tag, value_type>::difference_type;
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = DexInstructionPcPair;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
 
   explicit DexInstructionIteratorBase(const Instruction* inst, uint32_t dex_pc)
       : data_(reinterpret_cast<const uint16_t*>(inst), dex_pc) {}
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h b/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h
index 4ab27ef..5ee8cec 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h
@@ -22,6 +22,8 @@
 
 #include "dex_file.h"
 
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size);
+
 namespace art {
 
 class OatDexFile;
@@ -94,6 +96,7 @@
 
   // Returns true if the byte string points to the magic value.
   static bool IsMagicValid(const uint8_t* magic);
+  static bool IsMagicValid(DexFile::Magic magic) { return IsMagicValid(magic.data()); }
   bool IsMagicValid() const override;
 
   // Returns true if the byte string after the magic is the correct value.
@@ -113,14 +116,12 @@
 
  private:
   StandardDexFile(const uint8_t* base,
-                  size_t size,
                   const std::string& location,
                   uint32_t location_checksum,
                   const OatDexFile* oat_dex_file,
                   // Shared since several dex files may be stored in the same logical container.
                   std::shared_ptr<DexFileContainer> container)
       : DexFile(base,
-                size,
                 location,
                 location_checksum,
                 oat_dex_file,
@@ -132,6 +133,7 @@
 
   ART_FRIEND_TEST(ClassLinkerTest, RegisterDexFileName);  // for constructor
   friend class OptimizingUnitTestHelper;  // for constructor
+  friend int ::LLVMFuzzerTestOneInput(const uint8_t*, size_t);  // for constructor
 
   DISALLOW_COPY_AND_ASSIGN(StandardDexFile);
 };
diff --git a/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h b/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h
index 964f196..fb0e4c5 100644
--- a/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h
+++ b/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h
@@ -88,8 +88,8 @@
     } header_data;
     std::memset(header_data.data, 0, sizeof(header_data.data));
     DexFile::Header* header = reinterpret_cast<DexFile::Header*>(&header_data.data);
-    std::copy_n(StandardDexFile::kDexMagic, 4u, header->magic_);
-    std::copy_n(StandardDexFile::kDexMagicVersions[0], 4u, header->magic_ + 4u);
+    std::copy_n(StandardDexFile::kDexMagic, 4u, header->magic_.data());
+    std::copy_n(StandardDexFile::kDexMagicVersions[0], 4u, header->magic_.data() + 4u);
     header->header_size_ = sizeof(DexFile::Header);
     header->endian_tag_ = DexFile::kDexEndianConstant;
     header->link_size_ = 0u;  // Unused.
diff --git a/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h b/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h
index 5904c0f..a87b04f 100644
--- a/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h
+++ b/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h
@@ -29,6 +29,11 @@
 extern "C" {
 #endif  // __cplusplus
 
+enum JNICallType {
+  kJNICallTypeRegular = 1,
+  kJNICallTypeCriticalNative = 2,
+};
+
 // Loads a shared library from the system linker namespace, suitable for
 // platform libraries in /system/lib(64). If linker namespaces don't exist (i.e.
 // on host), this simply calls dlopen().
@@ -81,8 +86,15 @@
 void* NativeBridgeLoadLibrary(const char* libpath, int flag);
 
 // Get a native bridge trampoline for specified native method.
+// This version is deprecated - please use NativeBridgeGetTrampoline2
 void* NativeBridgeGetTrampoline(void* handle, const char* name, const char* shorty, uint32_t len);
 
+void* NativeBridgeGetTrampoline2(void* handle,
+                                 const char* name,
+                                 const char* shorty,
+                                 uint32_t len,
+                                 enum JNICallType jni_call_type);
+
 // True if native library paths are valid and is for an ABI that is supported by native bridge.
 // The *libpath* must point to a library.
 //
@@ -206,7 +218,7 @@
   void* (*loadLibrary)(const char* libpath, int flag);
 
   // Get a native bridge trampoline for specified native method. The trampoline has same
-  // sigature as the native method.
+  // signature as the native method.
   //
   // Parameters:
   //   handle [IN] the handle returned from loadLibrary
@@ -214,6 +226,9 @@
   //   len [IN] length of shorty
   // Returns:
   //   address of trampoline if successful, otherwise NULL
+  // Deprecated in v7
+  //   Starting with version 7 native bridge uses getTrampolineWithJNICallType
+  //   instead
   void* (*getTrampoline)(void* handle, const char* name, const char* shorty, uint32_t len);
 
   // Check whether native library is valid and is for an ABI that is supported by native bridge.
@@ -387,6 +402,25 @@
   // If native bridge is used in app-zygote (in doPreload()) this callback is
   // required to clean-up the environment before the fork (see b/146904103).
   void (*preZygoteFork)();
+
+  // This replaces previous getTrampoline call starting with version 7 of the
+  // interface.
+  //
+  // Get a native bridge trampoline for specified native method. The trampoline
+  // has same signature as the native method.
+  //
+  // Parameters:
+  //   handle [IN] the handle returned from loadLibrary
+  //   shorty [IN] short descriptor of native method
+  //   len [IN] length of shorty
+  //   jni_call_type [IN] the type of JNI call
+  // Returns:
+  //   address of trampoline if successful, otherwise NULL
+  void* (*getTrampolineWithJNICallType)(void* handle,
+                                        const char* name,
+                                        const char* shorty,
+                                        uint32_t len,
+                                        enum JNICallType jni_call_type);
 };
 
 // Runtime interfaces to native bridge.
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-assertion-result.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-assertion-result.h
new file mode 100644
index 0000000..56fe128
--- /dev/null
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-assertion-result.h
@@ -0,0 +1,237 @@
+// Copyright 2005, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The Google C++ Testing and Mocking Framework (Google Test)
+//
+// This file implements the AssertionResult type.
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
+
+#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_
+#define GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_
+
+#include <memory>
+#include <ostream>
+#include <string>
+#include <type_traits>
+
+#include "gtest/gtest-message.h"
+#include "gtest/internal/gtest-port.h"
+
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251                                   \
+/* class A needs to have dll-interface to be used by clients of class B */)
+
+namespace testing {
+
+// A class for indicating whether an assertion was successful.  When
+// the assertion wasn't successful, the AssertionResult object
+// remembers a non-empty message that describes how it failed.
+//
+// To create an instance of this class, use one of the factory functions
+// (AssertionSuccess() and AssertionFailure()).
+//
+// This class is useful for two purposes:
+//   1. Defining predicate functions to be used with Boolean test assertions
+//      EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts
+//   2. Defining predicate-format functions to be
+//      used with predicate assertions (ASSERT_PRED_FORMAT*, etc).
+//
+// For example, if you define IsEven predicate:
+//
+//   testing::AssertionResult IsEven(int n) {
+//     if ((n % 2) == 0)
+//       return testing::AssertionSuccess();
+//     else
+//       return testing::AssertionFailure() << n << " is odd";
+//   }
+//
+// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5)))
+// will print the message
+//
+//   Value of: IsEven(Fib(5))
+//     Actual: false (5 is odd)
+//   Expected: true
+//
+// instead of a more opaque
+//
+//   Value of: IsEven(Fib(5))
+//     Actual: false
+//   Expected: true
+//
+// in case IsEven is a simple Boolean predicate.
+//
+// If you expect your predicate to be reused and want to support informative
+// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up
+// about half as often as positive ones in our tests), supply messages for
+// both success and failure cases:
+//
+//   testing::AssertionResult IsEven(int n) {
+//     if ((n % 2) == 0)
+//       return testing::AssertionSuccess() << n << " is even";
+//     else
+//       return testing::AssertionFailure() << n << " is odd";
+//   }
+//
+// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print
+//
+//   Value of: IsEven(Fib(6))
+//     Actual: true (8 is even)
+//   Expected: false
+//
+// NB: Predicates that support negative Boolean assertions have reduced
+// performance in positive ones so be careful not to use them in tests
+// that have lots (tens of thousands) of positive Boolean assertions.
+//
+// To use this class with EXPECT_PRED_FORMAT assertions such as:
+//
+//   // Verifies that Foo() returns an even number.
+//   EXPECT_PRED_FORMAT1(IsEven, Foo());
+//
+// you need to define:
+//
+//   testing::AssertionResult IsEven(const char* expr, int n) {
+//     if ((n % 2) == 0)
+//       return testing::AssertionSuccess();
+//     else
+//       return testing::AssertionFailure()
+//         << "Expected: " << expr << " is even\n  Actual: it's " << n;
+//   }
+//
+// If Foo() returns 5, you will see the following message:
+//
+//   Expected: Foo() is even
+//     Actual: it's 5
+//
+class GTEST_API_ AssertionResult {
+ public:
+  // Copy constructor.
+  // Used in EXPECT_TRUE/FALSE(assertion_result).
+  AssertionResult(const AssertionResult& other);
+
+// C4800 is a level 3 warning in Visual Studio 2015 and earlier.
+// This warning is not emitted in Visual Studio 2017.
+// This warning is off by default starting in Visual Studio 2019 but can be
+// enabled with command-line options.
+#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
+  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */)
+#endif
+
+  // Used in the EXPECT_TRUE/FALSE(bool_expression).
+  //
+  // T must be contextually convertible to bool.
+  //
+  // The second parameter prevents this overload from being considered if
+  // the argument is implicitly convertible to AssertionResult. In that case
+  // we want AssertionResult's copy constructor to be used.
+  template <typename T>
+  explicit AssertionResult(
+      const T& success,
+      typename std::enable_if<
+          !std::is_convertible<T, AssertionResult>::value>::type*
+      /*enabler*/
+      = nullptr)
+      : success_(success) {}
+
+#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
+  GTEST_DISABLE_MSC_WARNINGS_POP_()
+#endif
+
+  // Assignment operator.
+  AssertionResult& operator=(AssertionResult other) {
+    swap(other);
+    return *this;
+  }
+
+  // Returns true if and only if the assertion succeeded.
+  operator bool() const { return success_; }  // NOLINT
+
+  // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
+  AssertionResult operator!() const;
+
+  // Returns the text streamed into this AssertionResult. Test assertions
+  // use it when they fail (i.e., the predicate's outcome doesn't match the
+  // assertion's expectation). When nothing has been streamed into the
+  // object, returns an empty string.
+  const char* message() const {
+    return message_ != nullptr ? message_->c_str() : "";
+  }
+  // Deprecated; please use message() instead.
+  const char* failure_message() const { return message(); }
+
+  // Streams a custom failure message into this object.
+  template <typename T>
+  AssertionResult& operator<<(const T& value) {
+    AppendMessage(Message() << value);
+    return *this;
+  }
+
+  // Allows streaming basic output manipulators such as endl or flush into
+  // this object.
+  AssertionResult& operator<<(
+      ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) {
+    AppendMessage(Message() << basic_manipulator);
+    return *this;
+  }
+
+ private:
+  // Appends the contents of message to message_.
+  void AppendMessage(const Message& a_message) {
+    if (message_ == nullptr) message_ = ::std::make_unique<::std::string>();
+    message_->append(a_message.GetString().c_str());
+  }
+
+  // Swap the contents of this AssertionResult with other.
+  void swap(AssertionResult& other);
+
+  // Stores result of the assertion predicate.
+  bool success_;
+  // Stores the message describing the condition in case the expectation
+  // construct is not satisfied with the predicate's outcome.
+  // Referenced via a pointer to avoid taking too much stack frame space
+  // with test assertions.
+  std::unique_ptr< ::std::string> message_;
+};
+
+// Makes a successful assertion result.
+GTEST_API_ AssertionResult AssertionSuccess();
+
+// Makes a failed assertion result.
+GTEST_API_ AssertionResult AssertionFailure();
+
+// Makes a failed assertion result with the given failure message.
+// Deprecated; use AssertionFailure() << msg.
+GTEST_API_ AssertionResult AssertionFailure(const Message& msg);
+
+}  // namespace testing
+
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4251
+
+#endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h
index adfb192..08fef8c 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h
@@ -27,21 +27,21 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the public API for death tests.  It is
 // #included by gtest.h so a user doesn't need to include this
 // directly.
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
 
 #include "gtest/internal/gtest-death-test-internal.h"
 
-namespace testing {
-
 // This flag controls the style of death tests.  Valid values are "threadsafe",
 // meaning that the death test child process will re-execute the test binary
 // from the start, running only a single death test, or "fast",
@@ -49,7 +49,9 @@
 // after forking.
 GTEST_DECLARE_string_(death_test_style);
 
-#if GTEST_HAS_DEATH_TEST
+namespace testing {
+
+#ifdef GTEST_HAS_DEATH_TEST
 
 namespace internal {
 
@@ -97,9 +99,12 @@
 //
 //   ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!");
 //
+// The final parameter to each of these macros is a matcher applied to any data
+// the sub-process wrote to stderr.  For compatibility with existing tests, a
+// bare string is interpreted as a regular expression matcher.
+//
 // On the regular expressions used in death tests:
 //
-//   GOOGLETEST_CM0005 DO NOT DELETE
 //   On POSIX-compliant systems (*nix), we use the <regex.h> library,
 //   which uses the POSIX extended regex syntax.
 //
@@ -162,27 +167,27 @@
 //   directory in PATH.
 //
 
-// Asserts that a given statement causes the program to exit, with an
-// integer exit status that satisfies predicate, and emitting error output
-// that matches regex.
-# define ASSERT_EXIT(statement, predicate, regex) \
-    GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_)
+// Asserts that a given `statement` causes the program to exit, with an
+// integer exit status that satisfies `predicate`, and emitting error output
+// that matches `matcher`.
+#define ASSERT_EXIT(statement, predicate, matcher) \
+  GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_FATAL_FAILURE_)
 
-// Like ASSERT_EXIT, but continues on to successive tests in the
+// Like `ASSERT_EXIT`, but continues on to successive tests in the
 // test suite, if any:
-# define EXPECT_EXIT(statement, predicate, regex) \
-    GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_)
+#define EXPECT_EXIT(statement, predicate, matcher) \
+  GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_NONFATAL_FAILURE_)
 
-// Asserts that a given statement causes the program to exit, either by
+// Asserts that a given `statement` causes the program to exit, either by
 // explicitly exiting with a nonzero exit code or being killed by a
-// signal, and emitting error output that matches regex.
-# define ASSERT_DEATH(statement, regex) \
-    ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
+// signal, and emitting error output that matches `matcher`.
+#define ASSERT_DEATH(statement, matcher) \
+  ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
 
-// Like ASSERT_DEATH, but continues on to successive tests in the
+// Like `ASSERT_DEATH`, but continues on to successive tests in the
 // test suite, if any:
-# define EXPECT_DEATH(statement, regex) \
-    EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
+#define EXPECT_DEATH(statement, matcher) \
+  EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
 
 // Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*:
 
@@ -193,22 +198,23 @@
   ExitedWithCode(const ExitedWithCode&) = default;
   void operator=(const ExitedWithCode& other) = delete;
   bool operator()(int exit_status) const;
+
  private:
   const int exit_code_;
 };
 
-# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
+#if !defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_FUCHSIA)
 // Tests that an exit code describes an exit due to termination by a
 // given signal.
-// GOOGLETEST_CM0006 DO NOT DELETE
 class GTEST_API_ KilledBySignal {
  public:
   explicit KilledBySignal(int signum);
   bool operator()(int exit_status) const;
+
  private:
   const int signum_;
 };
-# endif  // !GTEST_OS_WINDOWS
+#endif  // !GTEST_OS_WINDOWS
 
 // EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode.
 // The death testing framework causes this to have interesting semantics,
@@ -253,23 +259,21 @@
 //   EXPECT_EQ(12, DieInDebugOr12(&sideeffect));
 // }, "death");
 //
-# ifdef NDEBUG
+#ifdef NDEBUG
 
-#  define EXPECT_DEBUG_DEATH(statement, regex) \
+#define EXPECT_DEBUG_DEATH(statement, regex) \
   GTEST_EXECUTE_STATEMENT_(statement, regex)
 
-#  define ASSERT_DEBUG_DEATH(statement, regex) \
+#define ASSERT_DEBUG_DEATH(statement, regex) \
   GTEST_EXECUTE_STATEMENT_(statement, regex)
 
-# else
+#else
 
-#  define EXPECT_DEBUG_DEATH(statement, regex) \
-  EXPECT_DEATH(statement, regex)
+#define EXPECT_DEBUG_DEATH(statement, regex) EXPECT_DEATH(statement, regex)
 
-#  define ASSERT_DEBUG_DEATH(statement, regex) \
-  ASSERT_DEATH(statement, regex)
+#define ASSERT_DEBUG_DEATH(statement, regex) ASSERT_DEATH(statement, regex)
 
-# endif  // NDEBUG for EXPECT_DEBUG_DEATH
+#endif  // NDEBUG for EXPECT_DEBUG_DEATH
 #endif  // GTEST_HAS_DEATH_TEST
 
 // This macro is used for implementing macros such as
@@ -307,34 +311,33 @@
 //  statement unconditionally returns or throws. The Message constructor at
 //  the end allows the syntax of streaming additional messages into the
 //  macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH.
-# define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator) \
-    GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-    if (::testing::internal::AlwaysTrue()) { \
-      GTEST_LOG_(WARNING) \
-          << "Death tests are not supported on this platform.\n" \
-          << "Statement '" #statement "' cannot be verified."; \
-    } else if (::testing::internal::AlwaysFalse()) { \
-      ::testing::internal::RE::PartialMatch(".*", (regex)); \
-      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-      terminator; \
-    } else \
-      ::testing::Message()
+#define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator)             \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                                \
+  if (::testing::internal::AlwaysTrue()) {                                     \
+    GTEST_LOG_(WARNING) << "Death tests are not supported on this platform.\n" \
+                        << "Statement '" #statement "' cannot be verified.";   \
+  } else if (::testing::internal::AlwaysFalse()) {                             \
+    ::testing::internal::RE::PartialMatch(".*", (regex));                      \
+    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);                 \
+    terminator;                                                                \
+  } else                                                                       \
+    ::testing::Message()
 
 // EXPECT_DEATH_IF_SUPPORTED(statement, regex) and
 // ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if
 // death tests are supported; otherwise they just issue a warning.  This is
 // useful when you are combining death test assertions with normal test
 // assertions in one test.
-#if GTEST_HAS_DEATH_TEST
-# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
-    EXPECT_DEATH(statement, regex)
-# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
-    ASSERT_DEATH(statement, regex)
+#ifdef GTEST_HAS_DEATH_TEST
+#define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
+  EXPECT_DEATH(statement, regex)
+#define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
+  ASSERT_DEATH(statement, regex)
 #else
-# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
-    GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, )
-# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
-    GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return)
+#define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
+  GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, )
+#define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
+  GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return)
 #endif
 
 }  // namespace testing
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h
index 2bd3dcf..eae210e 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h
@@ -32,10 +32,15 @@
 // This file implements just enough of the matcher interface to allow
 // EXPECT_DEATH and friends to accept a matcher argument.
 
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
+
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_MATCHERS_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_MATCHERS_H_
 
 #include <atomic>
+#include <functional>
 #include <memory>
 #include <ostream>
 #include <string>
@@ -98,17 +103,17 @@
  private:
   ::std::ostream* const stream_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(MatchResultListener);
+  MatchResultListener(const MatchResultListener&) = delete;
+  MatchResultListener& operator=(const MatchResultListener&) = delete;
 };
 
-inline MatchResultListener::~MatchResultListener() {
-}
+inline MatchResultListener::~MatchResultListener() = default;
 
 // An instance of a subclass of this knows how to describe itself as a
 // matcher.
-class MatcherDescriberInterface {
+class GTEST_API_ MatcherDescriberInterface {
  public:
-  virtual ~MatcherDescriberInterface() {}
+  virtual ~MatcherDescriberInterface() = default;
 
   // Describes this matcher to an ostream.  The function should print
   // a verb phrase that describes the property a value matching this
@@ -174,38 +179,14 @@
 
 namespace internal {
 
-struct AnyEq {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a == b; }
-};
-struct AnyNe {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a != b; }
-};
-struct AnyLt {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a < b; }
-};
-struct AnyGt {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a > b; }
-};
-struct AnyLe {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a <= b; }
-};
-struct AnyGe {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a >= b; }
-};
-
 // A match result listener that ignores the explanation.
 class DummyMatchResultListener : public MatchResultListener {
  public:
   DummyMatchResultListener() : MatchResultListener(nullptr) {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(DummyMatchResultListener);
+  DummyMatchResultListener(const DummyMatchResultListener&) = delete;
+  DummyMatchResultListener& operator=(const DummyMatchResultListener&) = delete;
 };
 
 // A match result listener that forwards the explanation to a given
@@ -217,7 +198,9 @@
       : MatchResultListener(os) {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamMatchResultListener);
+  StreamMatchResultListener(const StreamMatchResultListener&) = delete;
+  StreamMatchResultListener& operator=(const StreamMatchResultListener&) =
+      delete;
 };
 
 struct SharedPayloadBase {
@@ -284,17 +267,18 @@
   }
 
  protected:
-  MatcherBase() : vtable_(nullptr) {}
+  MatcherBase() : vtable_(nullptr), buffer_() {}
 
   // Constructs a matcher from its implementation.
   template <typename U>
-  explicit MatcherBase(const MatcherInterface<U>* impl) {
+  explicit MatcherBase(const MatcherInterface<U>* impl)
+      : vtable_(nullptr), buffer_() {
     Init(impl);
   }
 
   template <typename M, typename = typename std::remove_reference<
                             M>::type::is_gtest_matcher>
-  MatcherBase(M&& m) {  // NOLINT
+  MatcherBase(M&& m) : vtable_(nullptr), buffer_() {  // NOLINT
     Init(std::forward<M>(m));
   }
 
@@ -420,8 +404,8 @@
     static const M& Get(const MatcherBase& m) {
       // When inlined along with Init, need to be explicit to avoid violating
       // strict aliasing rules.
-      const M *ptr = static_cast<const M*>(
-          static_cast<const void*>(&m.buffer_));
+      const M* ptr =
+          static_cast<const M*>(static_cast<const void*>(&m.buffer_));
       return *ptr;
     }
     static void Init(MatcherBase& m, M impl) {
@@ -510,7 +494,7 @@
 class GTEST_API_ Matcher<const std::string&>
     : public internal::MatcherBase<const std::string&> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const std::string&>* impl)
       : internal::MatcherBase<const std::string&>(impl) {}
@@ -532,7 +516,7 @@
 class GTEST_API_ Matcher<std::string>
     : public internal::MatcherBase<std::string> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const std::string&>* impl)
       : internal::MatcherBase<std::string>(impl) {}
@@ -560,7 +544,7 @@
 class GTEST_API_ Matcher<const internal::StringView&>
     : public internal::MatcherBase<const internal::StringView&> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const internal::StringView&>* impl)
       : internal::MatcherBase<const internal::StringView&>(impl) {}
@@ -586,7 +570,7 @@
 class GTEST_API_ Matcher<internal::StringView>
     : public internal::MatcherBase<internal::StringView> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const internal::StringView&>* impl)
       : internal::MatcherBase<internal::StringView>(impl) {}
@@ -738,50 +722,53 @@
 };
 
 template <typename Rhs>
-class EqMatcher : public ComparisonBase<EqMatcher<Rhs>, Rhs, AnyEq> {
+class EqMatcher : public ComparisonBase<EqMatcher<Rhs>, Rhs, std::equal_to<>> {
  public:
   explicit EqMatcher(const Rhs& rhs)
-      : ComparisonBase<EqMatcher<Rhs>, Rhs, AnyEq>(rhs) { }
+      : ComparisonBase<EqMatcher<Rhs>, Rhs, std::equal_to<>>(rhs) {}
   static const char* Desc() { return "is equal to"; }
   static const char* NegatedDesc() { return "isn't equal to"; }
 };
 template <typename Rhs>
-class NeMatcher : public ComparisonBase<NeMatcher<Rhs>, Rhs, AnyNe> {
+class NeMatcher
+    : public ComparisonBase<NeMatcher<Rhs>, Rhs, std::not_equal_to<>> {
  public:
   explicit NeMatcher(const Rhs& rhs)
-      : ComparisonBase<NeMatcher<Rhs>, Rhs, AnyNe>(rhs) { }
+      : ComparisonBase<NeMatcher<Rhs>, Rhs, std::not_equal_to<>>(rhs) {}
   static const char* Desc() { return "isn't equal to"; }
   static const char* NegatedDesc() { return "is equal to"; }
 };
 template <typename Rhs>
-class LtMatcher : public ComparisonBase<LtMatcher<Rhs>, Rhs, AnyLt> {
+class LtMatcher : public ComparisonBase<LtMatcher<Rhs>, Rhs, std::less<>> {
  public:
   explicit LtMatcher(const Rhs& rhs)
-      : ComparisonBase<LtMatcher<Rhs>, Rhs, AnyLt>(rhs) { }
+      : ComparisonBase<LtMatcher<Rhs>, Rhs, std::less<>>(rhs) {}
   static const char* Desc() { return "is <"; }
   static const char* NegatedDesc() { return "isn't <"; }
 };
 template <typename Rhs>
-class GtMatcher : public ComparisonBase<GtMatcher<Rhs>, Rhs, AnyGt> {
+class GtMatcher : public ComparisonBase<GtMatcher<Rhs>, Rhs, std::greater<>> {
  public:
   explicit GtMatcher(const Rhs& rhs)
-      : ComparisonBase<GtMatcher<Rhs>, Rhs, AnyGt>(rhs) { }
+      : ComparisonBase<GtMatcher<Rhs>, Rhs, std::greater<>>(rhs) {}
   static const char* Desc() { return "is >"; }
   static const char* NegatedDesc() { return "isn't >"; }
 };
 template <typename Rhs>
-class LeMatcher : public ComparisonBase<LeMatcher<Rhs>, Rhs, AnyLe> {
+class LeMatcher
+    : public ComparisonBase<LeMatcher<Rhs>, Rhs, std::less_equal<>> {
  public:
   explicit LeMatcher(const Rhs& rhs)
-      : ComparisonBase<LeMatcher<Rhs>, Rhs, AnyLe>(rhs) { }
+      : ComparisonBase<LeMatcher<Rhs>, Rhs, std::less_equal<>>(rhs) {}
   static const char* Desc() { return "is <="; }
   static const char* NegatedDesc() { return "isn't <="; }
 };
 template <typename Rhs>
-class GeMatcher : public ComparisonBase<GeMatcher<Rhs>, Rhs, AnyGe> {
+class GeMatcher
+    : public ComparisonBase<GeMatcher<Rhs>, Rhs, std::greater_equal<>> {
  public:
   explicit GeMatcher(const Rhs& rhs)
-      : ComparisonBase<GeMatcher<Rhs>, Rhs, AnyGe>(rhs) { }
+      : ComparisonBase<GeMatcher<Rhs>, Rhs, std::greater_equal<>>(rhs) {}
   static const char* Desc() { return "is >="; }
   static const char* NegatedDesc() { return "isn't >="; }
 };
@@ -822,7 +809,7 @@
   template <class MatcheeStringType>
   bool MatchAndExplain(const MatcheeStringType& s,
                        MatchResultListener* /* listener */) const {
-    const std::string& s2(s);
+    const std::string s2(s);
     return full_match_ ? RE::FullMatch(s2, *regex_)
                        : RE::PartialMatch(s2, *regex_);
   }
@@ -872,12 +859,16 @@
 // Note: if the parameter of Eq() were declared as const T&, Eq("foo")
 // wouldn't compile.
 template <typename T>
-inline internal::EqMatcher<T> Eq(T x) { return internal::EqMatcher<T>(x); }
+inline internal::EqMatcher<T> Eq(T x) {
+  return internal::EqMatcher<T>(x);
+}
 
 // Constructs a Matcher<T> from a 'value' of type T.  The constructed
 // matcher matches any value that's equal to 'value'.
 template <typename T>
-Matcher<T>::Matcher(T value) { *this = Eq(value); }
+Matcher<T>::Matcher(T value) {
+  *this = Eq(value);
+}
 
 // Creates a monomorphic matcher that matches anything with type Lhs
 // and equal to rhs.  A user may need to use this instead of Eq(...)
@@ -892,7 +883,9 @@
 // can always write Matcher<T>(Lt(5)) to be explicit about the type,
 // for example.
 template <typename Lhs, typename Rhs>
-inline Matcher<Lhs> TypedEq(const Rhs& rhs) { return Eq(rhs); }
+inline Matcher<Lhs> TypedEq(const Rhs& rhs) {
+  return Eq(rhs);
+}
 
 // Creates a polymorphic matcher that matches anything >= x.
 template <typename Rhs>
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h
index becfd49..448ac6b 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h
@@ -27,7 +27,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the Message class.
@@ -42,17 +41,28 @@
 // to CHANGE WITHOUT NOTICE.  Therefore DO NOT DEPEND ON IT in a user
 // program!
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
 
 #include <limits>
 #include <memory>
+#include <ostream>
 #include <sstream>
+#include <string>
 
 #include "gtest/internal/gtest-port.h"
 
+#ifdef GTEST_HAS_ABSL
+#include <type_traits>
+
+#include "absl/strings/has_absl_stringify.h"
+#include "absl/strings/str_cat.h"
+#endif  // GTEST_HAS_ABSL
+
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
 
@@ -108,10 +118,19 @@
     *ss_ << str;
   }
 
-  // Streams a non-pointer value to this object.
-  template <typename T>
-  inline Message& operator <<(const T& val) {
-    // Some libraries overload << for STL containers.  These
+  // Streams a non-pointer value to this object. If building a version of
+  // GoogleTest with ABSL, this overload is only enabled if the value does not
+  // have an AbslStringify definition.
+  template <
+      typename T
+#ifdef GTEST_HAS_ABSL
+      ,
+      typename std::enable_if<!absl::HasAbslStringify<T>::value,  // NOLINT
+                              int>::type = 0
+#endif  // GTEST_HAS_ABSL
+      >
+  inline Message& operator<<(const T& val) {
+        // Some libraries overload << for STL containers.  These
     // overloads are defined in the global namespace instead of ::std.
     //
     // C++'s symbol lookup rule (i.e. Koenig lookup) says that these
@@ -125,11 +144,26 @@
     // from the global namespace.  With this using declaration,
     // overloads of << defined in the global namespace and those
     // visible via Koenig lookup are both exposed in this function.
-    using ::operator <<;
+    using ::operator<<;
     *ss_ << val;
     return *this;
   }
 
+#ifdef GTEST_HAS_ABSL
+  // Streams a non-pointer value with an AbslStringify definition to this
+  // object.
+  template <typename T,
+            typename std::enable_if<absl::HasAbslStringify<T>::value,  // NOLINT
+                                    int>::type = 0>
+  inline Message& operator<<(const T& val) {
+    // ::operator<< is needed here for a similar reason as with the non-Abseil
+    // version above
+    using ::operator<<;
+    *ss_ << absl::StrCat(val);
+    return *this;
+  }
+#endif  // GTEST_HAS_ABSL
+
   // Streams a pointer value to this object.
   //
   // This function is an overload of the previous one.  When you
@@ -144,7 +178,7 @@
   // ensure consistent result across compilers, we always treat NULL
   // as "(null)".
   template <typename T>
-  inline Message& operator <<(T* const& pointer) {  // NOLINT
+  inline Message& operator<<(T* const& pointer) {  // NOLINT
     if (pointer == nullptr) {
       *ss_ << "(null)";
     } else {
@@ -159,25 +193,23 @@
   // templatized version above.  Without this definition, streaming
   // endl or other basic IO manipulators to Message will confuse the
   // compiler.
-  Message& operator <<(BasicNarrowIoManip val) {
+  Message& operator<<(BasicNarrowIoManip val) {
     *ss_ << val;
     return *this;
   }
 
   // Instead of 1/0, we want to see true/false for bool values.
-  Message& operator <<(bool b) {
-    return *this << (b ? "true" : "false");
-  }
+  Message& operator<<(bool b) { return *this << (b ? "true" : "false"); }
 
   // These two overloads allow streaming a wide C string to a Message
   // using the UTF-8 encoding.
-  Message& operator <<(const wchar_t* wide_c_str);
-  Message& operator <<(wchar_t* wide_c_str);
+  Message& operator<<(const wchar_t* wide_c_str);
+  Message& operator<<(wchar_t* wide_c_str);
 
 #if GTEST_HAS_STD_WSTRING
   // Converts the given wide string to a narrow string using the UTF-8
   // encoding, and streams the result to this Message object.
-  Message& operator <<(const ::std::wstring& wstr);
+  Message& operator<<(const ::std::wstring& wstr);
 #endif  // GTEST_HAS_STD_WSTRING
 
   // Gets the text streamed to this object so far as an std::string.
@@ -196,7 +228,7 @@
 };
 
 // Streams a Message to an ostream.
-inline std::ostream& operator <<(std::ostream& os, const Message& sb) {
+inline std::ostream& operator<<(std::ostream& os, const Message& sb) {
   return os << sb.GetString();
 }
 
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h
index 804e702..49a47ea 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h
@@ -26,11 +26,14 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // Macros and functions for implementing parameterized tests
 // in Google C++ Testing and Mocking Framework (Google Test)
-//
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
+
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
 
@@ -353,9 +356,7 @@
 // }
 // INSTANTIATE_TEST_SUITE_P(BoolSequence, FlagDependentTest, Bool());
 //
-inline internal::ParamGenerator<bool> Bool() {
-  return Values(false, true);
-}
+inline internal::ParamGenerator<bool> Bool() { return Values(false, true); }
 
 // Combine() allows the user to combine two or more sequences to produce
 // values of a Cartesian product of those sequences' elements.
@@ -406,9 +407,50 @@
   return internal::CartesianProductHolder<Generator...>(g...);
 }
 
+// ConvertGenerator() wraps a parameter generator in order to cast each produced
+// value through a known type before supplying it to the test suite
+//
+// Synopsis:
+// ConvertGenerator<T>(gen)
+//   - returns a generator producing the same elements as generated by gen, but
+//     each element is static_cast to type T before being returned
+//
+// It is useful when using the Combine() function to get the generated
+// parameters in a custom type instead of std::tuple
+//
+// Example:
+//
+// This will instantiate tests in test suite AnimalTest each one with
+// the parameter values tuple("cat", BLACK), tuple("cat", WHITE),
+// tuple("dog", BLACK), and tuple("dog", WHITE):
+//
+// enum Color { BLACK, GRAY, WHITE };
+// struct ParamType {
+//   using TupleT = std::tuple<const char*, Color>;
+//   std::string animal;
+//   Color color;
+//   ParamType(TupleT t) : animal(std::get<0>(t)), color(std::get<1>(t)) {}
+// };
+// class AnimalTest
+//     : public testing::TestWithParam<ParamType> {...};
+//
+// TEST_P(AnimalTest, AnimalLooksNice) {...}
+//
+// INSTANTIATE_TEST_SUITE_P(AnimalVariations, AnimalTest,
+//                          ConvertGenerator<ParamType::TupleT>(
+//                              Combine(Values("cat", "dog"),
+//                                      Values(BLACK, WHITE))));
+//
+template <typename T>
+internal::ParamConverterGenerator<T> ConvertGenerator(
+    internal::ParamGenerator<T> gen) {
+  return internal::ParamConverterGenerator<T>(gen);
+}
+
 #define TEST_P(test_suite_name, test_name)                                     \
   class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                     \
-      : public test_suite_name {                                               \
+      : public test_suite_name,                                                \
+        private ::testing::internal::GTestNonCopyable {                        \
    public:                                                                     \
     GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {}                    \
     void TestBody() override;                                                  \
@@ -428,8 +470,6 @@
       return 0;                                                                \
     }                                                                          \
     static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_;               \
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name,    \
-                                                           test_name));        \
   };                                                                           \
   int GTEST_TEST_CLASS_NAME_(test_suite_name,                                  \
                              test_name)::gtest_registering_dummy_ =            \
@@ -453,43 +493,42 @@
 #define GTEST_GET_FIRST_(first, ...) first
 #define GTEST_GET_SECOND_(first, second, ...) second
 
-#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...)                \
-  static ::testing::internal::ParamGenerator<test_suite_name::ParamType>      \
-      gtest_##prefix##test_suite_name##_EvalGenerator_() {                    \
-    return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_));        \
-  }                                                                           \
-  static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_(   \
-      const ::testing::TestParamInfo<test_suite_name::ParamType>& info) {     \
-    if (::testing::internal::AlwaysFalse()) {                                 \
-      ::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_(      \
-          __VA_ARGS__,                                                        \
-          ::testing::internal::DefaultParamName<test_suite_name::ParamType>,  \
-          DUMMY_PARAM_)));                                                    \
-      auto t = std::make_tuple(__VA_ARGS__);                                  \
-      static_assert(std::tuple_size<decltype(t)>::value <= 2,                 \
-                    "Too Many Args!");                                        \
-    }                                                                         \
-    return ((GTEST_EXPAND_(GTEST_GET_SECOND_(                                 \
-        __VA_ARGS__,                                                          \
-        ::testing::internal::DefaultParamName<test_suite_name::ParamType>,    \
-        DUMMY_PARAM_))))(info);                                               \
-  }                                                                           \
-  static int gtest_##prefix##test_suite_name##_dummy_                         \
-      GTEST_ATTRIBUTE_UNUSED_ =                                               \
-          ::testing::UnitTest::GetInstance()                                  \
-              ->parameterized_test_registry()                                 \
-              .GetTestSuitePatternHolder<test_suite_name>(                    \
-                  GTEST_STRINGIFY_(test_suite_name),                          \
-                  ::testing::internal::CodeLocation(__FILE__, __LINE__))      \
-              ->AddTestSuiteInstantiation(                                    \
-                  GTEST_STRINGIFY_(prefix),                                   \
-                  &gtest_##prefix##test_suite_name##_EvalGenerator_,          \
-                  &gtest_##prefix##test_suite_name##_EvalGenerateName_,       \
+#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...)               \
+  static ::testing::internal::ParamGenerator<test_suite_name::ParamType>     \
+      gtest_##prefix##test_suite_name##_EvalGenerator_() {                   \
+    return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_));       \
+  }                                                                          \
+  static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_(  \
+      const ::testing::TestParamInfo<test_suite_name::ParamType>& info) {    \
+    if (::testing::internal::AlwaysFalse()) {                                \
+      ::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_(     \
+          __VA_ARGS__,                                                       \
+          ::testing::internal::DefaultParamName<test_suite_name::ParamType>, \
+          DUMMY_PARAM_)));                                                   \
+      auto t = std::make_tuple(__VA_ARGS__);                                 \
+      static_assert(std::tuple_size<decltype(t)>::value <= 2,                \
+                    "Too Many Args!");                                       \
+    }                                                                        \
+    return ((GTEST_EXPAND_(GTEST_GET_SECOND_(                                \
+        __VA_ARGS__,                                                         \
+        ::testing::internal::DefaultParamName<test_suite_name::ParamType>,   \
+        DUMMY_PARAM_))))(info);                                              \
+  }                                                                          \
+  static int gtest_##prefix##test_suite_name##_dummy_                        \
+      GTEST_ATTRIBUTE_UNUSED_ =                                              \
+          ::testing::UnitTest::GetInstance()                                 \
+              ->parameterized_test_registry()                                \
+              .GetTestSuitePatternHolder<test_suite_name>(                   \
+                  GTEST_STRINGIFY_(test_suite_name),                         \
+                  ::testing::internal::CodeLocation(__FILE__, __LINE__))     \
+              ->AddTestSuiteInstantiation(                                   \
+                  GTEST_STRINGIFY_(prefix),                                  \
+                  &gtest_##prefix##test_suite_name##_EvalGenerator_,         \
+                  &gtest_##prefix##test_suite_name##_EvalGenerateName_,      \
                   __FILE__, __LINE__)
 
-
 // Allow Marking a Parameterized test class as not needing to be instantiated.
-#define GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(T)                   \
+#define GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(T)                  \
   namespace gtest_do_not_use_outside_namespace_scope {}                   \
   static const ::testing::internal::MarkAsIgnored gtest_allow_ignore_##T( \
       GTEST_STRINGIFY_(T))
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h
index 978420e..5928681 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h
@@ -27,7 +27,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-
 // Google Test - The Google C++ Testing and Mocking Framework
 //
 // This file implements a universal value printer that can print a
@@ -44,6 +43,9 @@
 //   1. foo::PrintTo(const T&, ostream*)
 //   2. operator<<(ostream&, const T&) defined in either foo or the
 //      global namespace.
+// * Prefer AbslStringify(..) to operator<<(..), per https://abseil.io/tips/215.
+// * Define foo::PrintTo(..) if the type already has AbslStringify(..), but an
+//   alternative presentation in test results is of interest.
 //
 // However if T is an STL-style container then it is printed element-wise
 // unless foo::PrintTo(const T&, ostream*) is defined. Note that
@@ -95,7 +97,9 @@
 // being defined as many user-defined container types don't have
 // value_type.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
@@ -107,12 +111,21 @@
 #include <string>
 #include <tuple>
 #include <type_traits>
+#include <typeinfo>
 #include <utility>
 #include <vector>
 
+#ifdef GTEST_HAS_ABSL
+#include "absl/strings/has_absl_stringify.h"
+#include "absl/strings/str_cat.h"
+#endif  // GTEST_HAS_ABSL
 #include "gtest/internal/gtest-internal.h"
 #include "gtest/internal/gtest-port.h"
 
+#if GTEST_INTERNAL_HAS_STD_SPAN
+#include <span>  // NOLINT
+#endif  // GTEST_INTERNAL_HAS_STD_SPAN
+
 namespace testing {
 
 // Definitions in the internal* namespaces are subject to change without notice.
@@ -122,13 +135,32 @@
 template <typename T>
 void UniversalPrint(const T& value, ::std::ostream* os);
 
+template <typename T>
+struct IsStdSpan {
+  static constexpr bool value = false;
+};
+
+#if GTEST_INTERNAL_HAS_STD_SPAN
+template <typename E>
+struct IsStdSpan<std::span<E>> {
+  static constexpr bool value = true;
+};
+#endif  // GTEST_INTERNAL_HAS_STD_SPAN
+
 // Used to print an STL-style container when the user doesn't define
 // a PrintTo() for it.
+//
+// NOTE: Since std::span does not have const_iterator until C++23, it would
+// fail IsContainerTest before C++23. However, IsContainerTest only uses
+// the presence of const_iterator to avoid treating iterators as containers
+// because of iterator::iterator. Which means std::span satisfies the *intended*
+// condition of IsContainerTest.
 struct ContainerPrinter {
   template <typename T,
             typename = typename std::enable_if<
-                (sizeof(IsContainerTest<T>(0)) == sizeof(IsContainer)) &&
-                !IsRecursiveContainer<T>::value>::type>
+                ((sizeof(IsContainerTest<T>(0)) == sizeof(IsContainer)) &&
+                 !IsRecursiveContainer<T>::value) ||
+                IsStdSpan<T>::value>::type>
   static void PrintValue(const T& container, std::ostream* os) {
     const size_t kMaxCount = 32;  // The maximum number of elements to print.
     *os << '{';
@@ -176,6 +208,13 @@
   }
 };
 
+// Android local change: There is a non-standard hack in android-base/logging.h
+// which emits a warning when a string pointer is printed. Ignore the warning
+// in this generic printer.
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wuser-defined-warnings"
+#endif
 struct PointerPrinter {
   template <typename T>
   static void PrintValue(T* p, ::std::ostream* os) {
@@ -189,6 +228,9 @@
     }
   }
 };
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
 
 namespace internal_stream_operator_without_lexical_name_lookup {
 
@@ -204,12 +246,13 @@
             // Don't accept member pointers here. We'd print them via implicit
             // conversion to bool, which isn't useful.
             typename = typename std::enable_if<
-                !std::is_member_pointer<T>::value>::type,
-            // Only accept types for which we can find a streaming operator via
-            // ADL (possibly involving implicit conversions).
-            typename = decltype(std::declval<std::ostream&>()
-                                << std::declval<const T&>())>
-  static void PrintValue(const T& value, ::std::ostream* os) {
+                !std::is_member_pointer<T>::value>::type>
+  // Only accept types for which we can find a streaming operator via
+  // ADL (possibly involving implicit conversions).
+  // (Use SFINAE via return type, because it seems GCC < 12 doesn't handle name
+  // lookup properly when we do it in the template parameter list.)
+  static auto PrintValue(const T& value, ::std::ostream* os)
+      -> decltype((void)(*os << value)) {
     // Call streaming operator found by ADL, possibly with implicit conversions
     // of the arguments.
     *os << value;
@@ -257,12 +300,21 @@
 #endif
 };
 
+#ifdef GTEST_HAS_ABSL
+struct ConvertibleToAbslStringifyPrinter {
+  template <typename T,
+            typename = typename std::enable_if<
+                absl::HasAbslStringify<T>::value>::type>  // NOLINT
+  static void PrintValue(const T& value, ::std::ostream* os) {
+    *os << absl::StrCat(value);
+  }
+};
+#endif  // GTEST_HAS_ABSL
 
 // Prints the given number of bytes in the given object to the given
 // ostream.
 GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes,
-                                     size_t count,
-                                     ::std::ostream* os);
+                                     size_t count, ::std::ostream* os);
 struct RawBytesPrinter {
   // SFINAE on `sizeof` to make sure we have a complete type.
   template <typename T, size_t = sizeof(T)>
@@ -297,8 +349,8 @@
 //  - Print containers (they have begin/end/etc).
 //  - Print function pointers.
 //  - Print object pointers.
-//  - Use the stream operator, if available.
 //  - Print protocol buffers.
+//  - Use the stream operator, if available.
 //  - Print types convertible to BiggestInt.
 //  - Print types convertible to StringView, if available.
 //  - Fallback to printing the raw bytes of the object.
@@ -306,9 +358,13 @@
 void PrintWithFallback(const T& value, ::std::ostream* os) {
   using Printer = typename FindFirstPrinter<
       T, void, ContainerPrinter, FunctionPointerPrinter, PointerPrinter,
+      ProtobufPrinter,
+#ifdef GTEST_HAS_ABSL
+      ConvertibleToAbslStringifyPrinter,
+#endif  // GTEST_HAS_ABSL
       internal_stream_operator_without_lexical_name_lookup::StreamPrinter,
-      ProtobufPrinter, ConvertibleToIntegerPrinter,
-      ConvertibleToStringViewPrinter, RawBytesPrinter, FallbackPrinter>::type;
+      ConvertibleToIntegerPrinter, ConvertibleToStringViewPrinter,
+      RawBytesPrinter, FallbackPrinter>::type;
   Printer::PrintValue(value, os);
 }
 
@@ -360,7 +416,7 @@
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char);
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t);
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t);
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char8_t);
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char8_t);
 #endif
@@ -375,17 +431,17 @@
 // to point to a NUL-terminated string, and thus can print it as a string.
 
 #define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \
-  template <>                                                           \
-  class FormatForComparison<CharType*, OtherStringType> {               \
-   public:                                                              \
-    static ::std::string Format(CharType* value) {                      \
-      return ::testing::PrintToString(value);                           \
-    }                                                                   \
+  template <>                                                            \
+  class FormatForComparison<CharType*, OtherStringType> {                \
+   public:                                                               \
+    static ::std::string Format(CharType* value) {                       \
+      return ::testing::PrintToString(value);                            \
+    }                                                                    \
   }
 
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string);
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string);
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char8_t, ::std::u8string);
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char8_t, ::std::u8string);
 #endif
@@ -410,8 +466,8 @@
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 template <typename T1, typename T2>
-std::string FormatForComparisonFailureMessage(
-    const T1& value, const T2& /* other_operand */) {
+std::string FormatForComparisonFailureMessage(const T1& value,
+                                              const T2& /* other_operand */) {
   return FormatForComparison<T1, T2>::Format(value);
 }
 
@@ -473,12 +529,107 @@
 inline void PrintTo(char16_t c, ::std::ostream* os) {
   PrintTo(ImplicitCast_<char32_t>(c), os);
 }
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 inline void PrintTo(char8_t c, ::std::ostream* os) {
   PrintTo(ImplicitCast_<char32_t>(c), os);
 }
 #endif
 
+// gcc/clang __{u,}int128_t
+#if defined(__SIZEOF_INT128__)
+GTEST_API_ void PrintTo(__uint128_t v, ::std::ostream* os);
+GTEST_API_ void PrintTo(__int128_t v, ::std::ostream* os);
+#endif  // __SIZEOF_INT128__
+
+// The default resolution used to print floating-point values uses only
+// 6 digits, which can be confusing if a test compares two values whose
+// difference lies in the 7th digit.  So we'd like to print out numbers
+// in full precision.
+// However if the value is something simple like 1.1, full will print a
+// long string like 1.100000001 due to floating-point numbers not using
+// a base of 10.  This routiune returns an appropriate resolution for a
+// given floating-point number, that is, 6 if it will be accurate, or a
+// max_digits10 value (full precision) if it won't,  for values between
+// 0.0001 and one million.
+// It does this by computing what those digits would be (by multiplying
+// by an appropriate power of 10), then dividing by that power again to
+// see if gets the original value back.
+// A similar algorithm applies for values larger than one million; note
+// that for those values, we must divide to get a six-digit number, and
+// then multiply to possibly get the original value again.
+template <typename FloatType>
+int AppropriateResolution(FloatType val) {
+  int full = std::numeric_limits<FloatType>::max_digits10;
+  if (val < 0) val = -val;
+
+  // Android local change: do not warn about exact float comparison.
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wfloat-equal"
+#endif
+  if (val < 1000000) {
+    FloatType mulfor6 = 1e10;
+    if (val >= 100000.0) {  // 100,000 to 999,999
+      mulfor6 = 1.0;
+    } else if (val >= 10000.0) {
+      mulfor6 = 1e1;
+    } else if (val >= 1000.0) {
+      mulfor6 = 1e2;
+    } else if (val >= 100.0) {
+      mulfor6 = 1e3;
+    } else if (val >= 10.0) {
+      mulfor6 = 1e4;
+    } else if (val >= 1.0) {
+      mulfor6 = 1e5;
+    } else if (val >= 0.1) {
+      mulfor6 = 1e6;
+    } else if (val >= 0.01) {
+      mulfor6 = 1e7;
+    } else if (val >= 0.001) {
+      mulfor6 = 1e8;
+    } else if (val >= 0.0001) {
+      mulfor6 = 1e9;
+    }
+    if (static_cast<FloatType>(static_cast<int32_t>(val * mulfor6 + 0.5)) /
+            mulfor6 ==
+        val)
+      return 6;
+  } else if (val < 1e10) {
+    FloatType divfor6 = 1.0;
+    if (val >= 1e9) {  // 1,000,000,000 to 9,999,999,999
+      divfor6 = 10000;
+    } else if (val >= 1e8) {  // 100,000,000 to 999,999,999
+      divfor6 = 1000;
+    } else if (val >= 1e7) {  // 10,000,000 to 99,999,999
+      divfor6 = 100;
+    } else if (val >= 1e6) {  // 1,000,000 to 9,999,999
+      divfor6 = 10;
+    }
+    if (static_cast<FloatType>(static_cast<int32_t>(val / divfor6 + 0.5)) *
+            divfor6 ==
+        val)
+      return 6;
+  }
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+  return full;
+}
+
+inline void PrintTo(float f, ::std::ostream* os) {
+  auto old_precision = os->precision();
+  os->precision(AppropriateResolution(f));
+  *os << f;
+  os->precision(old_precision);
+}
+
+inline void PrintTo(double d, ::std::ostream* os) {
+  auto old_precision = os->precision();
+  os->precision(AppropriateResolution(d));
+  *os << d;
+  os->precision(old_precision);
+}
+
 // Overloads for C strings.
 GTEST_API_ void PrintTo(const char* s, ::std::ostream* os);
 inline void PrintTo(char* s, ::std::ostream* os) {
@@ -499,20 +650,20 @@
 inline void PrintTo(unsigned char* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const void*>(s), os);
 }
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 // Overloads for u8 strings.
-void PrintTo(const char8_t* s, ::std::ostream* os);
+GTEST_API_ void PrintTo(const char8_t* s, ::std::ostream* os);
 inline void PrintTo(char8_t* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const char8_t*>(s), os);
 }
 #endif
 // Overloads for u16 strings.
-void PrintTo(const char16_t* s, ::std::ostream* os);
+GTEST_API_ void PrintTo(const char16_t* s, ::std::ostream* os);
 inline void PrintTo(char16_t* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const char16_t*>(s), os);
 }
 // Overloads for u32 strings.
-void PrintTo(const char32_t* s, ::std::ostream* os);
+GTEST_API_ void PrintTo(const char32_t* s, ::std::ostream* os);
 inline void PrintTo(char32_t* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const char32_t*>(s), os);
 }
@@ -545,13 +696,13 @@
 }
 
 // Overloads for ::std::string.
-GTEST_API_ void PrintStringTo(const ::std::string&s, ::std::ostream* os);
+GTEST_API_ void PrintStringTo(const ::std::string& s, ::std::ostream* os);
 inline void PrintTo(const ::std::string& s, ::std::ostream* os) {
   PrintStringTo(s, os);
 }
 
 // Overloads for ::std::u8string
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 GTEST_API_ void PrintU8StringTo(const ::std::u8string& s, ::std::ostream* os);
 inline void PrintTo(const ::std::u8string& s, ::std::ostream* os) {
   PrintU8StringTo(s, os);
@@ -572,7 +723,7 @@
 
 // Overloads for ::std::wstring.
 #if GTEST_HAS_STD_WSTRING
-GTEST_API_ void PrintWideStringTo(const ::std::wstring&s, ::std::ostream* os);
+GTEST_API_ void PrintWideStringTo(const ::std::wstring& s, ::std::ostream* os);
 inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) {
   PrintWideStringTo(s, os);
 }
@@ -587,6 +738,12 @@
 
 inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullptr)"; }
 
+#if GTEST_HAS_RTTI
+inline void PrintTo(const std::type_info& info, std::ostream* os) {
+  *os << internal::GetTypeName(info);
+}
+#endif  // GTEST_HAS_RTTI
+
 template <typename T>
 void PrintTo(std::reference_wrapper<T> ref, ::std::ostream* os) {
   UniversalPrinter<T&>::Print(ref.get(), os);
@@ -744,6 +901,14 @@
   }
 };
 
+template <>
+class UniversalPrinter<decltype(Nullopt())> {
+ public:
+  static void Print(decltype(Nullopt()), ::std::ostream* os) {
+    *os << "(nullopt)";
+  }
+};
+
 #endif  // GTEST_INTERNAL_HAS_OPTIONAL
 
 #if GTEST_INTERNAL_HAS_VARIANT
@@ -755,7 +920,7 @@
  public:
   static void Print(const Variant<T...>& value, ::std::ostream* os) {
     *os << '(';
-#if GTEST_HAS_ABSL
+#ifdef GTEST_HAS_ABSL
     absl::visit(Visitor{os, value.index()}, value);
 #else
     std::visit(Visitor{os, value.index()}, value);
@@ -802,10 +967,10 @@
   }
 }
 // This overload prints a (const) char array compactly.
-GTEST_API_ void UniversalPrintArray(
-    const char* begin, size_t len, ::std::ostream* os);
+GTEST_API_ void UniversalPrintArray(const char* begin, size_t len,
+                                    ::std::ostream* os);
 
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 // This overload prints a (const) char8_t array compactly.
 GTEST_API_ void UniversalPrintArray(const char8_t* begin, size_t len,
                                     ::std::ostream* os);
@@ -820,8 +985,8 @@
                                     ::std::ostream* os);
 
 // This overload prints a (const) wchar_t array compactly.
-GTEST_API_ void UniversalPrintArray(
-    const wchar_t* begin, size_t len, ::std::ostream* os);
+GTEST_API_ void UniversalPrintArray(const wchar_t* begin, size_t len,
+                                    ::std::ostream* os);
 
 // Implements printing an array type T[N].
 template <typename T, size_t N>
@@ -872,6 +1037,13 @@
     UniversalPrint(value, os);
   }
 };
+template <typename T>
+class UniversalTersePrinter<std::reference_wrapper<T>> {
+ public:
+  static void Print(std::reference_wrapper<T> value, ::std::ostream* os) {
+    UniversalTersePrinter<T>::Print(value.get(), os);
+  }
+};
 template <typename T, size_t N>
 class UniversalTersePrinter<T[N]> {
  public:
@@ -894,7 +1066,7 @@
 class UniversalTersePrinter<char*> : public UniversalTersePrinter<const char*> {
 };
 
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 template <>
 class UniversalTersePrinter<const char8_t*> {
  public:
@@ -980,10 +1152,10 @@
   UniversalPrinter<T1>::Print(value, os);
 }
 
-typedef ::std::vector< ::std::string> Strings;
+typedef ::std::vector<::std::string> Strings;
 
-  // Tersely prints the first N fields of a tuple to a string vector,
-  // one element for each field.
+// Tersely prints the first N fields of a tuple to a string vector,
+// one element for each field.
 template <typename Tuple>
 void TersePrintPrefixToStrings(const Tuple&, std::integral_constant<size_t, 0>,
                                Strings*) {}
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h
index eacef44..c0613b6 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h
@@ -27,15 +27,14 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // Utilities for testing Google Test itself and code that uses Google Test
 // (e.g. frameworks built on top of Google Test).
 
-// GOOGLETEST_CM0004 DO NOT DELETE
-
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
 
+#include <string>
+
 #include "gtest/gtest.h"
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
@@ -88,7 +87,10 @@
   TestPartResultReporterInterface* old_reporter_;
   TestPartResultArray* const result_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedFakeTestPartResultReporter);
+  ScopedFakeTestPartResultReporter(const ScopedFakeTestPartResultReporter&) =
+      delete;
+  ScopedFakeTestPartResultReporter& operator=(
+      const ScopedFakeTestPartResultReporter&) = delete;
 };
 
 namespace internal {
@@ -104,12 +106,14 @@
   SingleFailureChecker(const TestPartResultArray* results,
                        TestPartResult::Type type, const std::string& substr);
   ~SingleFailureChecker();
+
  private:
   const TestPartResultArray* const results_;
   const TestPartResult::Type type_;
   const std::string substr_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(SingleFailureChecker);
+  SingleFailureChecker(const SingleFailureChecker&) = delete;
+  SingleFailureChecker& operator=(const SingleFailureChecker&) = delete;
 };
 
 }  // namespace internal
@@ -119,7 +123,8 @@
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
 
 // A set of macros for testing Google Test assertions or code that's expected
-// to generate Google Test fatal failures.  It verifies that the given
+// to generate Google Test fatal failures (e.g. a failure from an ASSERT_EQ, but
+// not a non-fatal failure, as from EXPECT_EQ).  It verifies that the given
 // statement will cause exactly one fatal Google Test failure with 'substr'
 // being part of the failure message.
 //
@@ -141,44 +146,46 @@
 // helper macro, due to some peculiarity in how the preprocessor
 // works.  The AcceptsMacroThatExpandsToUnprotectedComma test in
 // gtest_unittest.cc will fail to compile if we do that.
-#define EXPECT_FATAL_FAILURE(statement, substr) \
-  do { \
-    class GTestExpectFatalFailureHelper {\
-     public:\
-      static void Execute() { statement; }\
-    };\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
-        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
-          ::testing::ScopedFakeTestPartResultReporter:: \
-          INTERCEPT_ONLY_CURRENT_THREAD, &gtest_failures);\
-      GTestExpectFatalFailureHelper::Execute();\
-    }\
+#define EXPECT_FATAL_FAILURE(statement, substr)                               \
+  do {                                                                        \
+    class GTestExpectFatalFailureHelper {                                     \
+     public:                                                                  \
+      static void Execute() { statement; }                                    \
+    };                                                                        \
+    ::testing::TestPartResultArray gtest_failures;                            \
+    ::testing::internal::SingleFailureChecker gtest_checker(                  \
+        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \
+    {                                                                         \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(             \
+          ::testing::ScopedFakeTestPartResultReporter::                       \
+              INTERCEPT_ONLY_CURRENT_THREAD,                                  \
+          &gtest_failures);                                                   \
+      GTestExpectFatalFailureHelper::Execute();                               \
+    }                                                                         \
   } while (::testing::internal::AlwaysFalse())
 
-#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
-  do { \
-    class GTestExpectFatalFailureHelper {\
-     public:\
-      static void Execute() { statement; }\
-    };\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
-        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
-          ::testing::ScopedFakeTestPartResultReporter:: \
-          INTERCEPT_ALL_THREADS, &gtest_failures);\
-      GTestExpectFatalFailureHelper::Execute();\
-    }\
+#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr)                \
+  do {                                                                        \
+    class GTestExpectFatalFailureHelper {                                     \
+     public:                                                                  \
+      static void Execute() { statement; }                                    \
+    };                                                                        \
+    ::testing::TestPartResultArray gtest_failures;                            \
+    ::testing::internal::SingleFailureChecker gtest_checker(                  \
+        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \
+    {                                                                         \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(             \
+          ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
+          &gtest_failures);                                                   \
+      GTestExpectFatalFailureHelper::Execute();                               \
+    }                                                                         \
   } while (::testing::internal::AlwaysFalse())
 
 // A macro for testing Google Test assertions or code that's expected to
-// generate Google Test non-fatal failures.  It asserts that the given
-// statement will cause exactly one non-fatal Google Test failure with 'substr'
-// being part of the failure message.
+// generate Google Test non-fatal failures (e.g. a failure from an EXPECT_EQ,
+// but not from an ASSERT_EQ). It asserts that the given statement will cause
+// exactly one non-fatal Google Test failure with 'substr' being part of the
+// failure message.
 //
 // There are two different versions of this macro. EXPECT_NONFATAL_FAILURE only
 // affects and considers failures generated in the current thread and
@@ -207,32 +214,37 @@
 // instead of
 //   GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)
 // to avoid an MSVC warning on unreachable code.
-#define EXPECT_NONFATAL_FAILURE(statement, substr) \
-  do {\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
+#define EXPECT_NONFATAL_FAILURE(statement, substr)                    \
+  do {                                                                \
+    ::testing::TestPartResultArray gtest_failures;                    \
+    ::testing::internal::SingleFailureChecker gtest_checker(          \
         &gtest_failures, ::testing::TestPartResult::kNonFatalFailure, \
-        (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
-          ::testing::ScopedFakeTestPartResultReporter:: \
-          INTERCEPT_ONLY_CURRENT_THREAD, &gtest_failures);\
-      if (::testing::internal::AlwaysTrue()) { statement; }\
-    }\
+        (substr));                                                    \
+    {                                                                 \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(     \
+          ::testing::ScopedFakeTestPartResultReporter::               \
+              INTERCEPT_ONLY_CURRENT_THREAD,                          \
+          &gtest_failures);                                           \
+      if (::testing::internal::AlwaysTrue()) {                        \
+        statement;                                                    \
+      }                                                               \
+    }                                                                 \
   } while (::testing::internal::AlwaysFalse())
 
-#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
-  do {\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
-        &gtest_failures, ::testing::TestPartResult::kNonFatalFailure, \
-        (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
+#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr)             \
+  do {                                                                        \
+    ::testing::TestPartResultArray gtest_failures;                            \
+    ::testing::internal::SingleFailureChecker gtest_checker(                  \
+        &gtest_failures, ::testing::TestPartResult::kNonFatalFailure,         \
+        (substr));                                                            \
+    {                                                                         \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(             \
           ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
-          &gtest_failures);\
-      if (::testing::internal::AlwaysTrue()) { statement; }\
-    }\
+          &gtest_failures);                                                   \
+      if (::testing::internal::AlwaysTrue()) {                                \
+        statement;                                                            \
+      }                                                                       \
+    }                                                                         \
   } while (::testing::internal::AlwaysFalse())
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h
index 203fdf9..41c8a9a 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h
@@ -26,14 +26,19 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
 
 #include <iosfwd>
+#include <ostream>
+#include <string>
 #include <vector>
+
 #include "gtest/internal/gtest-internal.h"
 #include "gtest/internal/gtest-string.h"
 
@@ -128,7 +133,7 @@
 // virtual.
 class GTEST_API_ TestPartResultArray {
  public:
-  TestPartResultArray() {}
+  TestPartResultArray() = default;
 
   // Appends the given TestPartResult to the array.
   void Append(const TestPartResult& result);
@@ -142,13 +147,14 @@
  private:
   std::vector<TestPartResult> array_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestPartResultArray);
+  TestPartResultArray(const TestPartResultArray&) = delete;
+  TestPartResultArray& operator=(const TestPartResultArray&) = delete;
 };
 
 // This interface knows how to report a test part result.
 class GTEST_API_ TestPartResultReporterInterface {
  public:
-  virtual ~TestPartResultReporterInterface() {}
+  virtual ~TestPartResultReporterInterface() = default;
 
   virtual void ReportTestPartResult(const TestPartResult& result) = 0;
 };
@@ -168,11 +174,13 @@
   ~HasNewFatalFailureHelper() override;
   void ReportTestPartResult(const TestPartResult& result) override;
   bool has_new_fatal_failure() const { return has_new_fatal_failure_; }
+
  private:
   bool has_new_fatal_failure_;
   TestPartResultReporterInterface* original_reporter_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(HasNewFatalFailureHelper);
+  HasNewFatalFailureHelper(const HasNewFatalFailureHelper&) = delete;
+  HasNewFatalFailureHelper& operator=(const HasNewFatalFailureHelper&) = delete;
 };
 
 }  // namespace internal
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h
index 9fdc6be..72de536 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h
@@ -27,7 +27,9 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
@@ -190,7 +192,7 @@
   typedef ::testing::internal::GenerateTypeList<Types>::type            \
       GTEST_TYPE_PARAMS_(CaseName);                                     \
   typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \
-      GTEST_NAME_GENERATOR_(CaseName)
+  GTEST_NAME_GENERATOR_(CaseName)
 
 #define TYPED_TEST(CaseName, TestName)                                        \
   static_assert(sizeof(GTEST_STRINGIFY_(TestName)) > 1,                       \
@@ -256,7 +258,7 @@
 // #included in multiple translation units linked together.
 #define TYPED_TEST_SUITE_P(SuiteName)              \
   static ::testing::internal::TypedTestSuitePState \
-      GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName)
+  GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName)
 
 // Legacy API is deprecated but still available
 #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
@@ -265,28 +267,28 @@
   TYPED_TEST_SUITE_P
 #endif  // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
-#define TYPED_TEST_P(SuiteName, TestName)                             \
-  namespace GTEST_SUITE_NAMESPACE_(SuiteName) {                       \
-    template <typename gtest_TypeParam_>                              \
-    class TestName : public SuiteName<gtest_TypeParam_> {             \
-     private:                                                         \
-      typedef SuiteName<gtest_TypeParam_> TestFixture;                \
-      typedef gtest_TypeParam_ TypeParam;                             \
-      void TestBody() override;                                       \
-    };                                                                \
-    static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \
-        GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName(       \
-            __FILE__, __LINE__, GTEST_STRINGIFY_(SuiteName),          \
-            GTEST_STRINGIFY_(TestName));                              \
-  }                                                                   \
-  template <typename gtest_TypeParam_>                                \
-  void GTEST_SUITE_NAMESPACE_(                                        \
+#define TYPED_TEST_P(SuiteName, TestName)                           \
+  namespace GTEST_SUITE_NAMESPACE_(SuiteName) {                     \
+  template <typename gtest_TypeParam_>                              \
+  class TestName : public SuiteName<gtest_TypeParam_> {             \
+   private:                                                         \
+    typedef SuiteName<gtest_TypeParam_> TestFixture;                \
+    typedef gtest_TypeParam_ TypeParam;                             \
+    void TestBody() override;                                       \
+  };                                                                \
+  static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \
+      GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName(       \
+          __FILE__, __LINE__, GTEST_STRINGIFY_(SuiteName),          \
+          GTEST_STRINGIFY_(TestName));                              \
+  }                                                                 \
+  template <typename gtest_TypeParam_>                              \
+  void GTEST_SUITE_NAMESPACE_(                                      \
       SuiteName)::TestName<gtest_TypeParam_>::TestBody()
 
 // Note: this won't work correctly if the trailing arguments are macros.
 #define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...)                         \
   namespace GTEST_SUITE_NAMESPACE_(SuiteName) {                             \
-    typedef ::testing::internal::Templates<__VA_ARGS__> gtest_AllTests_;    \
+  typedef ::testing::internal::Templates<__VA_ARGS__> gtest_AllTests_;      \
   }                                                                         \
   static const char* const GTEST_REGISTERED_TEST_NAMES_(                    \
       SuiteName) GTEST_ATTRIBUTE_UNUSED_ =                                  \
@@ -301,21 +303,21 @@
   REGISTER_TYPED_TEST_SUITE_P
 #endif  // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
-#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...)       \
-  static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1,                       \
-                "test-suit-prefix must not be empty");                      \
-  static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ =        \
-      ::testing::internal::TypeParameterizedTestSuite<                      \
-          SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_,    \
-          ::testing::internal::GenerateTypeList<Types>::type>::             \
-          Register(GTEST_STRINGIFY_(Prefix),                                \
-                   ::testing::internal::CodeLocation(__FILE__, __LINE__),   \
-                   &GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName),             \
-                   GTEST_STRINGIFY_(SuiteName),                             \
-                   GTEST_REGISTERED_TEST_NAMES_(SuiteName),                 \
-                   ::testing::internal::GenerateNames<                      \
-                       ::testing::internal::NameGeneratorSelector<          \
-                           __VA_ARGS__>::type,                              \
+#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...)     \
+  static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1,                     \
+                "test-suit-prefix must not be empty");                    \
+  static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ =      \
+      ::testing::internal::TypeParameterizedTestSuite<                    \
+          SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_,  \
+          ::testing::internal::GenerateTypeList<Types>::type>::           \
+          Register(GTEST_STRINGIFY_(Prefix),                              \
+                   ::testing::internal::CodeLocation(__FILE__, __LINE__), \
+                   &GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName),           \
+                   GTEST_STRINGIFY_(SuiteName),                           \
+                   GTEST_REGISTERED_TEST_NAMES_(SuiteName),               \
+                   ::testing::internal::GenerateNames<                    \
+                       ::testing::internal::NameGeneratorSelector<        \
+                           __VA_ARGS__>::type,                            \
                        ::testing::internal::GenerateTypeList<Types>::type>())
 
 // Legacy API is deprecated but still available
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h
index 7a5d057..a932e68 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h
@@ -27,7 +27,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the public API for Google Test.  It should be
@@ -47,43 +46,36 @@
 // registration from Barthelemy Dagenais' (barthelemy@prologique.com)
 // easyUnit framework.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
-
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_H_
 
 #include <cstddef>
+#include <cstdint>
 #include <limits>
 #include <memory>
 #include <ostream>
+#include <set>
+#include <sstream>
+#include <string>
 #include <type_traits>
 #include <vector>
 
-#include "gtest/internal/gtest-internal.h"
-#include "gtest/internal/gtest-string.h"
+#include "gtest/gtest-assertion-result.h"
 #include "gtest/gtest-death-test.h"
 #include "gtest/gtest-matchers.h"
 #include "gtest/gtest-message.h"
 #include "gtest/gtest-param-test.h"
 #include "gtest/gtest-printers.h"
-#include "gtest/gtest_prod.h"
 #include "gtest/gtest-test-part.h"
 #include "gtest/gtest-typed-test.h"
+#include "gtest/gtest_pred_impl.h"
+#include "gtest/gtest_prod.h"
+#include "gtest/internal/gtest-internal.h"
+#include "gtest/internal/gtest-string.h"
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
 
-namespace testing {
-
-// Silence C4100 (unreferenced formal parameter) and 4805
-// unsafe mix of type 'const int' and type 'const bool'
-#ifdef _MSC_VER
-# pragma warning(push)
-# pragma warning(disable:4805)
-# pragma warning(disable:4100)
-#endif
-
-
 // Declares the flags.
 
 // This flag temporary enables the disabled tests.
@@ -138,6 +130,12 @@
 // is 1. If the value is -1 the tests are repeating forever.
 GTEST_DECLARE_int32_(repeat);
 
+// This flag controls whether Google Test Environments are recreated for each
+// repeat of the tests. The default value is true. If set to false the global
+// test Environment objects are only set up once, for the first iteration, and
+// only torn down once, for the last.
+GTEST_DECLARE_bool_(recreate_environments_when_repeating);
+
 // This flag controls whether Google Test includes Google Test internal
 // stack frames in failure stack traces.
 GTEST_DECLARE_bool_(show_internal_stack_frames);
@@ -163,6 +161,12 @@
 GTEST_DECLARE_string_(flagfile);
 #endif  // GTEST_USE_OWN_FLAGFILE_FLAG_
 
+namespace testing {
+
+// Silence C4100 (unreferenced formal parameter) and 4805
+// unsafe mix of type 'const int' and type 'const bool'
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4805 4100)
+
 // The upper limit for valid stack trace depths.
 const int kMaxStackTraceDepth = 100;
 
@@ -186,6 +190,17 @@
                                     const std::string& message);
 std::set<std::string>* GetIgnoredParameterizedTestSuites();
 
+// A base class that prevents subclasses from being copyable.
+// We do this instead of using '= delete' so as to avoid triggering warnings
+// inside user code regarding any of our declarations.
+class GTestNonCopyable {
+ public:
+  GTestNonCopyable() = default;
+  GTestNonCopyable(const GTestNonCopyable&) = delete;
+  GTestNonCopyable& operator=(const GTestNonCopyable&) = delete;
+  ~GTestNonCopyable() = default;
+};
+
 }  // namespace internal
 
 // The friend relationship of some of these classes is cyclic.
@@ -201,193 +216,6 @@
 class TestInfo;
 class UnitTest;
 
-// A class for indicating whether an assertion was successful.  When
-// the assertion wasn't successful, the AssertionResult object
-// remembers a non-empty message that describes how it failed.
-//
-// To create an instance of this class, use one of the factory functions
-// (AssertionSuccess() and AssertionFailure()).
-//
-// This class is useful for two purposes:
-//   1. Defining predicate functions to be used with Boolean test assertions
-//      EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts
-//   2. Defining predicate-format functions to be
-//      used with predicate assertions (ASSERT_PRED_FORMAT*, etc).
-//
-// For example, if you define IsEven predicate:
-//
-//   testing::AssertionResult IsEven(int n) {
-//     if ((n % 2) == 0)
-//       return testing::AssertionSuccess();
-//     else
-//       return testing::AssertionFailure() << n << " is odd";
-//   }
-//
-// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5)))
-// will print the message
-//
-//   Value of: IsEven(Fib(5))
-//     Actual: false (5 is odd)
-//   Expected: true
-//
-// instead of a more opaque
-//
-//   Value of: IsEven(Fib(5))
-//     Actual: false
-//   Expected: true
-//
-// in case IsEven is a simple Boolean predicate.
-//
-// If you expect your predicate to be reused and want to support informative
-// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up
-// about half as often as positive ones in our tests), supply messages for
-// both success and failure cases:
-//
-//   testing::AssertionResult IsEven(int n) {
-//     if ((n % 2) == 0)
-//       return testing::AssertionSuccess() << n << " is even";
-//     else
-//       return testing::AssertionFailure() << n << " is odd";
-//   }
-//
-// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print
-//
-//   Value of: IsEven(Fib(6))
-//     Actual: true (8 is even)
-//   Expected: false
-//
-// NB: Predicates that support negative Boolean assertions have reduced
-// performance in positive ones so be careful not to use them in tests
-// that have lots (tens of thousands) of positive Boolean assertions.
-//
-// To use this class with EXPECT_PRED_FORMAT assertions such as:
-//
-//   // Verifies that Foo() returns an even number.
-//   EXPECT_PRED_FORMAT1(IsEven, Foo());
-//
-// you need to define:
-//
-//   testing::AssertionResult IsEven(const char* expr, int n) {
-//     if ((n % 2) == 0)
-//       return testing::AssertionSuccess();
-//     else
-//       return testing::AssertionFailure()
-//         << "Expected: " << expr << " is even\n  Actual: it's " << n;
-//   }
-//
-// If Foo() returns 5, you will see the following message:
-//
-//   Expected: Foo() is even
-//     Actual: it's 5
-//
-class GTEST_API_ AssertionResult {
- public:
-  // Copy constructor.
-  // Used in EXPECT_TRUE/FALSE(assertion_result).
-  AssertionResult(const AssertionResult& other);
-
-// C4800 is a level 3 warning in Visual Studio 2015 and earlier.
-// This warning is not emitted in Visual Studio 2017.
-// This warning is off by default starting in Visual Studio 2019 but can be
-// enabled with command-line options.
-#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
-  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */)
-#endif
-
-  // Used in the EXPECT_TRUE/FALSE(bool_expression).
-  //
-  // T must be contextually convertible to bool.
-  //
-  // The second parameter prevents this overload from being considered if
-  // the argument is implicitly convertible to AssertionResult. In that case
-  // we want AssertionResult's copy constructor to be used.
-  template <typename T>
-  explicit AssertionResult(
-      const T& success,
-      typename std::enable_if<
-          !std::is_convertible<T, AssertionResult>::value>::type*
-      /*enabler*/
-      = nullptr)
-      : success_(success) {}
-
-#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
-  GTEST_DISABLE_MSC_WARNINGS_POP_()
-#endif
-
-  // Assignment operator.
-  AssertionResult& operator=(AssertionResult other) {
-    swap(other);
-    return *this;
-  }
-
-  // Returns true if and only if the assertion succeeded.
-  operator bool() const { return success_; }  // NOLINT
-
-  // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
-  AssertionResult operator!() const;
-
-  // Returns the text streamed into this AssertionResult. Test assertions
-  // use it when they fail (i.e., the predicate's outcome doesn't match the
-  // assertion's expectation). When nothing has been streamed into the
-  // object, returns an empty string.
-  const char* message() const {
-    return message_.get() != nullptr ? message_->c_str() : "";
-  }
-  // Deprecated; please use message() instead.
-  const char* failure_message() const { return message(); }
-
-  // Streams a custom failure message into this object.
-  template <typename T> AssertionResult& operator<<(const T& value) {
-    AppendMessage(Message() << value);
-    return *this;
-  }
-
-  // Allows streaming basic output manipulators such as endl or flush into
-  // this object.
-  AssertionResult& operator<<(
-      ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) {
-    AppendMessage(Message() << basic_manipulator);
-    return *this;
-  }
-
- private:
-  // Appends the contents of message to message_.
-  void AppendMessage(const Message& a_message) {
-    if (message_.get() == nullptr) message_.reset(new ::std::string);
-    message_->append(a_message.GetString().c_str());
-  }
-
-  // Swap the contents of this AssertionResult with other.
-  void swap(AssertionResult& other);
-
-  // Stores result of the assertion predicate.
-  bool success_;
-  // Stores the message describing the condition in case the expectation
-  // construct is not satisfied with the predicate's outcome.
-  // Referenced via a pointer to avoid taking too much stack frame space
-  // with test assertions.
-  std::unique_ptr< ::std::string> message_;
-};
-
-// Makes a successful assertion result.
-GTEST_API_ AssertionResult AssertionSuccess();
-
-// Makes a failed assertion result.
-GTEST_API_ AssertionResult AssertionFailure();
-
-// Makes a failed assertion result with the given failure message.
-// Deprecated; use AssertionFailure() << msg.
-GTEST_API_ AssertionResult AssertionFailure(const Message& msg);
-
-}  // namespace testing
-
-// Includes the auto-generated header that implements a family of generic
-// predicate assertion macros. This include comes late because it relies on
-// APIs declared above.
-#include "gtest/gtest_pred_impl.h"
-
-namespace testing {
-
 // The abstract class that all tests inherit from.
 //
 // In Google Test, a unit test program contains one or many TestSuites, and
@@ -468,7 +296,13 @@
   // SetUp/TearDown method of Environment objects registered with Google
   // Test) will be output as attributes of the <testsuites> element.
   static void RecordProperty(const std::string& key, const std::string& value);
-  static void RecordProperty(const std::string& key, int value);
+  // We do not define a custom serialization except for values that can be
+  // converted to int64_t, but other values could be logged in this way.
+  template <typename T, std::enable_if_t<std::is_convertible<T, int64_t>::value,
+                                         bool> = true>
+  static void RecordProperty(const std::string& key, const T& value) {
+    RecordProperty(key, (Message() << value).GetString());
+  }
 
  protected:
   // Creates a Test object.
@@ -522,7 +356,8 @@
   virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; }
 
   // We disallow copying Tests.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Test);
+  Test(const Test&) = delete;
+  Test& operator=(const Test&) = delete;
 };
 
 typedef internal::TimeInMillis TimeInMillis;
@@ -536,24 +371,17 @@
   // C'tor.  TestProperty does NOT have a default constructor.
   // Always use this constructor (with parameters) to create a
   // TestProperty object.
-  TestProperty(const std::string& a_key, const std::string& a_value) :
-    key_(a_key), value_(a_value) {
-  }
+  TestProperty(const std::string& a_key, const std::string& a_value)
+      : key_(a_key), value_(a_value) {}
 
   // Gets the user supplied key.
-  const char* key() const {
-    return key_.c_str();
-  }
+  const char* key() const { return key_.c_str(); }
 
   // Gets the user supplied value.
-  const char* value() const {
-    return value_.c_str();
-  }
+  const char* value() const { return value_.c_str(); }
 
   // Sets a new value, overriding the one supplied in the constructor.
-  void SetValue(const std::string& new_value) {
-    value_ = new_value;
-  }
+  void SetValue(const std::string& new_value) { value_ = new_value; }
 
  private:
   // The key supplied by the user.
@@ -687,7 +515,8 @@
   TimeInMillis elapsed_time_;
 
   // We disallow copying TestResult.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestResult);
+  TestResult(const TestResult&) = delete;
+  TestResult& operator=(const TestResult&) = delete;
 };  // class TestResult
 
 // A TestInfo object stores the following information about a test:
@@ -721,14 +550,14 @@
   // Returns the name of the parameter type, or NULL if this is not a typed
   // or a type-parameterized test.
   const char* type_param() const {
-    if (type_param_.get() != nullptr) return type_param_->c_str();
+    if (type_param_ != nullptr) return type_param_->c_str();
     return nullptr;
   }
 
   // Returns the text representation of the value parameter, or NULL if this
   // is not a value-parameterized test.
   const char* value_param() const {
-    if (value_param_.get() != nullptr) return value_param_->c_str();
+    if (value_param_ != nullptr) return value_param_->c_str();
     return nullptr;
   }
 
@@ -770,7 +599,7 @@
   const TestResult* result() const { return &result_; }
 
  private:
-#if GTEST_HAS_DEATH_TEST
+#ifdef GTEST_HAS_DEATH_TEST
   friend class internal::DefaultDeathTestFactory;
 #endif  // GTEST_HAS_DEATH_TEST
   friend class Test;
@@ -811,8 +640,8 @@
   }
 
   // These fields are immutable properties of the test.
-  const std::string test_suite_name_;    // test suite name
-  const std::string name_;               // Test name
+  const std::string test_suite_name_;  // test suite name
+  const std::string name_;             // Test name
   // Name of the parameter type, or NULL if this is not a typed or a
   // type-parameterized test.
   const std::unique_ptr<const ::std::string> type_param_;
@@ -833,7 +662,8 @@
   // test for the second time.
   TestResult result_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo);
+  TestInfo(const TestInfo&) = delete;
+  TestInfo& operator=(const TestInfo&) = delete;
 };
 
 // A test suite, which consists of a vector of TestInfos.
@@ -866,7 +696,7 @@
   // Returns the name of the parameter type, or NULL if this is not a
   // type-parameterized test suite.
   const char* type_param() const {
-    if (type_param_.get() != nullptr) return type_param_->c_str();
+    if (type_param_ != nullptr) return type_param_->c_str();
     return nullptr;
   }
 
@@ -941,7 +771,7 @@
 
   // Adds a TestInfo to this test suite.  Will delete the TestInfo upon
   // destruction of the TestSuite object.
-  void AddTestInfo(TestInfo * test_info);
+  void AddTestInfo(TestInfo* test_info);
 
   // Clears the results of all tests in this test suite.
   void ClearResult();
@@ -1042,7 +872,8 @@
   TestResult ad_hoc_test_result_;
 
   // We disallow copying TestSuites.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestSuite);
+  TestSuite(const TestSuite&) = delete;
+  TestSuite& operator=(const TestSuite&) = delete;
 };
 
 // An Environment object is capable of setting up and tearing down an
@@ -1062,13 +893,14 @@
 class Environment {
  public:
   // The d'tor is virtual as we need to subclass Environment.
-  virtual ~Environment() {}
+  virtual ~Environment() = default;
 
   // Override this to define how to set up the environment.
   virtual void SetUp() {}
 
   // Override this to define how to tear down the environment.
   virtual void TearDown() {}
+
  private:
   // If you see an error about overriding the following function or
   // about it being private, you have mis-spelled SetUp() as Setup().
@@ -1092,7 +924,7 @@
 // the order the corresponding events are fired.
 class TestEventListener {
  public:
-  virtual ~TestEventListener() {}
+  virtual ~TestEventListener() = default;
 
   // Fired before any test activity starts.
   virtual void OnTestProgramStart(const UnitTest& unit_test) = 0;
@@ -1120,6 +952,9 @@
   // Fired before the test starts.
   virtual void OnTestStart(const TestInfo& test_info) = 0;
 
+  // Fired when a test is disabled
+  virtual void OnTestDisabled(const TestInfo& /*test_info*/) {}
+
   // Fired after a failed assertion or a SUCCEED() invocation.
   // If you want to throw an exception from this function to skip to the next
   // TEST, it must be AssertionException defined above, or inherited from it.
@@ -1143,8 +978,7 @@
   virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) = 0;
 
   // Fired after each iteration of tests finishes.
-  virtual void OnTestIterationEnd(const UnitTest& unit_test,
-                                  int iteration) = 0;
+  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) = 0;
 
   // Fired after all test activities have ended.
   virtual void OnTestProgramEnd(const UnitTest& unit_test) = 0;
@@ -1169,6 +1003,7 @@
 #endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
   void OnTestStart(const TestInfo& /*test_info*/) override {}
+  void OnTestDisabled(const TestInfo& /*test_info*/) override {}
   void OnTestPartResult(const TestPartResult& /*test_part_result*/) override {}
   void OnTestEnd(const TestInfo& /*test_info*/) override {}
   void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
@@ -1219,6 +1054,10 @@
     return default_xml_generator_;
   }
 
+  // Controls whether events will be forwarded by the repeater to the
+  // listeners in the list.
+  void SuppressEventForwarding(bool);
+
  private:
   friend class TestSuite;
   friend class TestInfo;
@@ -1248,7 +1087,6 @@
   // Controls whether events will be forwarded by the repeater to the
   // listeners in the list.
   bool EventForwardingEnabled() const;
-  void SuppressEventForwarding();
 
   // The actual list of listeners.
   internal::TestEventRepeater* repeater_;
@@ -1258,7 +1096,8 @@
   TestEventListener* default_xml_generator_;
 
   // We disallow copying TestEventListeners.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventListeners);
+  TestEventListeners(const TestEventListeners&) = delete;
+  TestEventListeners& operator=(const TestEventListeners&) = delete;
 };
 
 // A UnitTest consists of a vector of TestSuites.
@@ -1301,8 +1140,7 @@
 
   // Returns the TestInfo object for the test that's currently running,
   // or NULL if no test is running.
-  const TestInfo* current_test_info() const
-      GTEST_LOCK_EXCLUDED_(mutex_);
+  const TestInfo* current_test_info() const GTEST_LOCK_EXCLUDED_(mutex_);
 
   // Returns the random seed used at the start of the current test run.
   int random_seed() const;
@@ -1408,8 +1246,7 @@
   // eventually call this to report their results.  The user code
   // should use the assertion macros instead of calling this directly.
   void AddTestPartResult(TestPartResult::Type result_type,
-                         const char* file_name,
-                         int line_number,
+                         const char* file_name, int line_number,
                          const std::string& message,
                          const std::string& os_stack_trace)
       GTEST_LOCK_EXCLUDED_(mutex_);
@@ -1440,8 +1277,7 @@
   friend std::set<std::string>* internal::GetIgnoredParameterizedTestSuites();
   friend internal::UnitTestImpl* internal::GetUnitTestImpl();
   friend void internal::ReportFailureInUnknownLocation(
-      TestPartResult::Type result_type,
-      const std::string& message);
+      TestPartResult::Type result_type, const std::string& message);
 
   // Creates an empty UnitTest.
   UnitTest();
@@ -1455,8 +1291,7 @@
       GTEST_LOCK_EXCLUDED_(mutex_);
 
   // Pops a trace from the per-thread Google Test trace stack.
-  void PopGTestTrace()
-      GTEST_LOCK_EXCLUDED_(mutex_);
+  void PopGTestTrace() GTEST_LOCK_EXCLUDED_(mutex_);
 
   // Protects mutable state in *impl_.  This is mutable as some const
   // methods need to lock it too.
@@ -1469,7 +1304,8 @@
   internal::UnitTestImpl* impl_;
 
   // We disallow copying UnitTest.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTest);
+  UnitTest(const UnitTest&) = delete;
+  UnitTest& operator=(const UnitTest&) = delete;
 };
 
 // A convenient wrapper for adding an environment for the test
@@ -1520,13 +1356,11 @@
 // when calling EXPECT_* in a tight loop.
 template <typename T1, typename T2>
 AssertionResult CmpHelperEQFailure(const char* lhs_expression,
-                                   const char* rhs_expression,
-                                   const T1& lhs, const T2& rhs) {
-  return EqFailure(lhs_expression,
-                   rhs_expression,
+                                   const char* rhs_expression, const T1& lhs,
+                                   const T2& rhs) {
+  return EqFailure(lhs_expression, rhs_expression,
                    FormatForComparisonFailureMessage(lhs, rhs),
-                   FormatForComparisonFailureMessage(rhs, lhs),
-                   false);
+                   FormatForComparisonFailureMessage(rhs, lhs), false);
 }
 
 // This block of code defines operator==/!=
@@ -1539,8 +1373,7 @@
 // The helper function for {ASSERT|EXPECT}_EQ.
 template <typename T1, typename T2>
 AssertionResult CmpHelperEQ(const char* lhs_expression,
-                            const char* rhs_expression,
-                            const T1& lhs,
+                            const char* rhs_expression, const T1& lhs,
                             const T2& rhs) {
   if (lhs == rhs) {
     return AssertionSuccess();
@@ -1571,8 +1404,7 @@
   // Even though its body looks the same as the above version, we
   // cannot merge the two, as it will make anonymous enums unhappy.
   static AssertionResult Compare(const char* lhs_expression,
-                                 const char* rhs_expression,
-                                 BiggestInt lhs,
+                                 const char* rhs_expression, BiggestInt lhs,
                                  BiggestInt rhs) {
     return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
   }
@@ -1607,16 +1439,16 @@
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 
-#define GTEST_IMPL_CMP_HELPER_(op_name, op)\
-template <typename T1, typename T2>\
-AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
-                                   const T1& val1, const T2& val2) {\
-  if (val1 op val2) {\
-    return AssertionSuccess();\
-  } else {\
-    return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\
-  }\
-}
+#define GTEST_IMPL_CMP_HELPER_(op_name, op)                                \
+  template <typename T1, typename T2>                                      \
+  AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
+                                     const T1& val1, const T2& val2) {     \
+    if (val1 op val2) {                                                    \
+      return AssertionSuccess();                                           \
+    } else {                                                               \
+      return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);            \
+    }                                                                      \
+  }
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 
@@ -1638,49 +1470,42 @@
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression,
                                           const char* s2_expression,
-                                          const char* s1,
-                                          const char* s2);
+                                          const char* s1, const char* s2);
 
 // The helper function for {ASSERT|EXPECT}_STRCASEEQ.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char* s1_expression,
                                               const char* s2_expression,
-                                              const char* s1,
-                                              const char* s2);
+                                              const char* s1, const char* s2);
 
 // The helper function for {ASSERT|EXPECT}_STRNE.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
                                           const char* s2_expression,
-                                          const char* s1,
-                                          const char* s2);
+                                          const char* s1, const char* s2);
 
 // The helper function for {ASSERT|EXPECT}_STRCASENE.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
                                               const char* s2_expression,
-                                              const char* s1,
-                                              const char* s2);
-
+                                              const char* s1, const char* s2);
 
 // Helper function for *_STREQ on wide strings.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression,
                                           const char* s2_expression,
-                                          const wchar_t* s1,
-                                          const wchar_t* s2);
+                                          const wchar_t* s1, const wchar_t* s2);
 
 // Helper function for *_STRNE on wide strings.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
                                           const char* s2_expression,
-                                          const wchar_t* s1,
-                                          const wchar_t* s2);
+                                          const wchar_t* s1, const wchar_t* s2);
 
 }  // namespace internal
 
@@ -1692,32 +1517,40 @@
 //
 // The {needle,haystack}_expr arguments are the stringified
 // expressions that generated the two real arguments.
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const char* needle, const char* haystack);
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const wchar_t* needle, const wchar_t* haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const char* needle, const char* haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const wchar_t* needle, const wchar_t* haystack);
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::string& needle, const ::std::string& haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::string& needle, const ::std::string& haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const char* needle,
+                                       const char* haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const wchar_t* needle,
+                                       const wchar_t* haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const char* needle,
+                                          const char* haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const wchar_t* needle,
+                                          const wchar_t* haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const ::std::string& needle,
+                                       const ::std::string& haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const ::std::string& needle,
+                                          const ::std::string& haystack);
 
 #if GTEST_HAS_STD_WSTRING
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::wstring& needle, const ::std::wstring& haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::wstring& needle, const ::std::wstring& haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const ::std::wstring& needle,
+                                       const ::std::wstring& haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const ::std::wstring& needle,
+                                          const ::std::wstring& haystack);
 #endif  // GTEST_HAS_STD_WSTRING
 
 namespace internal {
@@ -1732,8 +1565,7 @@
 template <typename RawType>
 AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression,
                                          const char* rhs_expression,
-                                         RawType lhs_value,
-                                         RawType rhs_value) {
+                                         RawType lhs_value, RawType rhs_value) {
   const FloatingPoint<RawType> lhs(lhs_value), rhs(rhs_value);
 
   if (lhs.AlmostEquals(rhs)) {
@@ -1741,17 +1573,15 @@
   }
 
   ::std::stringstream lhs_ss;
-  lhs_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
-         << lhs_value;
+  lhs_ss.precision(std::numeric_limits<RawType>::digits10 + 2);
+  lhs_ss << lhs_value;
 
   ::std::stringstream rhs_ss;
-  rhs_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
-         << rhs_value;
+  rhs_ss.precision(std::numeric_limits<RawType>::digits10 + 2);
+  rhs_ss << rhs_value;
 
-  return EqFailure(lhs_expression,
-                   rhs_expression,
-                   StringStreamToString(&lhs_ss),
-                   StringStreamToString(&rhs_ss),
+  return EqFailure(lhs_expression, rhs_expression,
+                   StringStreamToString(&lhs_ss), StringStreamToString(&rhs_ss),
                    false);
 }
 
@@ -1761,8 +1591,7 @@
 GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1,
                                                 const char* expr2,
                                                 const char* abs_error_expr,
-                                                double val1,
-                                                double val2,
+                                                double val1, double val2,
                                                 double abs_error);
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
@@ -1770,9 +1599,7 @@
 class GTEST_API_ AssertHelper {
  public:
   // Constructor.
-  AssertHelper(TestPartResult::Type type,
-               const char* file,
-               int line,
+  AssertHelper(TestPartResult::Type type, const char* file, int line,
                const char* message);
   ~AssertHelper();
 
@@ -1786,11 +1613,9 @@
   // re-using stack space even for temporary variables, so every EXPECT_EQ
   // reserves stack space for another AssertHelper.
   struct AssertHelperData {
-    AssertHelperData(TestPartResult::Type t,
-                     const char* srcfile,
-                     int line_num,
+    AssertHelperData(TestPartResult::Type t, const char* srcfile, int line_num,
                      const char* msg)
-        : type(t), file(srcfile), line(line_num), message(msg) { }
+        : type(t), file(srcfile), line(line_num), message(msg) {}
 
     TestPartResult::Type const type;
     const char* const file;
@@ -1798,12 +1623,14 @@
     std::string const message;
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData);
+    AssertHelperData(const AssertHelperData&) = delete;
+    AssertHelperData& operator=(const AssertHelperData&) = delete;
   };
 
   AssertHelperData* const data_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper);
+  AssertHelper(const AssertHelper&) = delete;
+  AssertHelper& operator=(const AssertHelper&) = delete;
 };
 
 }  // namespace internal
@@ -1818,7 +1645,7 @@
 // the GetParam() method.
 //
 // Use it with one of the parameter generator defining functions, like Range(),
-// Values(), ValuesIn(), Bool(), and Combine().
+// Values(), ValuesIn(), Bool(), Combine(), and ConvertGenerator<T>().
 //
 // class FooTest : public ::testing::TestWithParam<int> {
 //  protected:
@@ -1846,7 +1673,7 @@
 class WithParamInterface {
  public:
   typedef T ParamType;
-  virtual ~WithParamInterface() {}
+  virtual ~WithParamInterface() = default;
 
   // The current parameter value. Is also available in the test fixture's
   // constructor.
@@ -1860,15 +1687,14 @@
  private:
   // Sets parameter value. The caller is responsible for making sure the value
   // remains alive and unchanged throughout the current test.
-  static void SetParam(const ParamType* parameter) {
-    parameter_ = parameter;
-  }
+  static void SetParam(const ParamType* parameter) { parameter_ = parameter; }
 
   // Static value used for accessing parameter during a test lifetime.
   static const ParamType* parameter_;
 
   // TestClass must be a subclass of WithParamInterface<T> and Test.
-  template <class TestClass> friend class internal::ParameterizedTestFactory;
+  template <class TestClass>
+  friend class internal::ParameterizedTestFactory;
 };
 
 template <typename T>
@@ -1878,8 +1704,7 @@
 // WithParamInterface, and can just inherit from ::testing::TestWithParam.
 
 template <typename T>
-class TestWithParam : public Test, public WithParamInterface<T> {
-};
+class TestWithParam : public Test, public WithParamInterface<T> {};
 
 // Macros for indicating success/failure in test code.
 
@@ -1910,7 +1735,7 @@
 
 // Generates a nonfatal failure at the given source file location with
 // a generic message.
-#define ADD_FAILURE_AT(file, line) \
+#define ADD_FAILURE_AT(file, line)        \
   GTEST_MESSAGE_AT_(file, line, "Failed", \
                     ::testing::TestPartResult::kNonFatalFailure)
 
@@ -1918,14 +1743,14 @@
 #define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed")
 
 // Like GTEST_FAIL(), but at the given source file location.
-#define GTEST_FAIL_AT(file, line)         \
-  GTEST_MESSAGE_AT_(file, line, "Failed", \
-                    ::testing::TestPartResult::kFatalFailure)
+#define GTEST_FAIL_AT(file, line)                \
+  return GTEST_MESSAGE_AT_(file, line, "Failed", \
+                           ::testing::TestPartResult::kFatalFailure)
 
 // Define this macro to 1 to omit the definition of FAIL(), which is a
 // generic name and clashes with some other libraries.
-#if !GTEST_DONT_DEFINE_FAIL
-# define FAIL() GTEST_FAIL()
+#if !(defined(GTEST_DONT_DEFINE_FAIL) && GTEST_DONT_DEFINE_FAIL)
+#define FAIL() GTEST_FAIL()
 #endif
 
 // Generates a success with a generic message.
@@ -1933,8 +1758,8 @@
 
 // Define this macro to 1 to omit the definition of SUCCEED(), which
 // is a generic name and clashes with some other libraries.
-#if !GTEST_DONT_DEFINE_SUCCEED
-# define SUCCEED() GTEST_SUCCEED()
+#if !(defined(GTEST_DONT_DEFINE_SUCCEED) && GTEST_DONT_DEFINE_SUCCEED)
+#define SUCCEED() GTEST_SUCCEED()
 #endif
 
 // Macros for testing exceptions.
@@ -1962,35 +1787,34 @@
 // Boolean assertions. Condition can be either a Boolean expression or an
 // AssertionResult. For more information on how to use AssertionResult with
 // these macros see comments on that class.
-#define GTEST_EXPECT_TRUE(condition) \
+#define GTEST_EXPECT_TRUE(condition)                      \
   GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
                       GTEST_NONFATAL_FAILURE_)
-#define GTEST_EXPECT_FALSE(condition) \
+#define GTEST_EXPECT_FALSE(condition)                        \
   GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
                       GTEST_NONFATAL_FAILURE_)
 #define GTEST_ASSERT_TRUE(condition) \
-  GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
-                      GTEST_FATAL_FAILURE_)
-#define GTEST_ASSERT_FALSE(condition) \
+  GTEST_TEST_BOOLEAN_(condition, #condition, false, true, GTEST_FATAL_FAILURE_)
+#define GTEST_ASSERT_FALSE(condition)                        \
   GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
                       GTEST_FATAL_FAILURE_)
 
 // Define these macros to 1 to omit the definition of the corresponding
 // EXPECT or ASSERT, which clashes with some users' own code.
 
-#if !GTEST_DONT_DEFINE_EXPECT_TRUE
+#if !(defined(GTEST_DONT_DEFINE_EXPECT_TRUE) && GTEST_DONT_DEFINE_EXPECT_TRUE)
 #define EXPECT_TRUE(condition) GTEST_EXPECT_TRUE(condition)
 #endif
 
-#if !GTEST_DONT_DEFINE_EXPECT_FALSE
+#if !(defined(GTEST_DONT_DEFINE_EXPECT_FALSE) && GTEST_DONT_DEFINE_EXPECT_FALSE)
 #define EXPECT_FALSE(condition) GTEST_EXPECT_FALSE(condition)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_TRUE
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_TRUE) && GTEST_DONT_DEFINE_ASSERT_TRUE)
 #define ASSERT_TRUE(condition) GTEST_ASSERT_TRUE(condition)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_FALSE
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_FALSE) && GTEST_DONT_DEFINE_ASSERT_FALSE)
 #define ASSERT_FALSE(condition) GTEST_ASSERT_FALSE(condition)
 #endif
 
@@ -2069,28 +1893,28 @@
 // Define macro GTEST_DONT_DEFINE_ASSERT_XY to 1 to omit the definition of
 // ASSERT_XY(), which clashes with some users' own code.
 
-#if !GTEST_DONT_DEFINE_ASSERT_EQ
-# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_EQ) && GTEST_DONT_DEFINE_ASSERT_EQ)
+#define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_NE
-# define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_NE) && GTEST_DONT_DEFINE_ASSERT_NE)
+#define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_LE
-# define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_LE) && GTEST_DONT_DEFINE_ASSERT_LE)
+#define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_LT
-# define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_LT) && GTEST_DONT_DEFINE_ASSERT_LT)
+#define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_GE
-# define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_GE) && GTEST_DONT_DEFINE_ASSERT_GE)
+#define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_GT
-# define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_GT) && GTEST_DONT_DEFINE_ASSERT_GT)
+#define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
 #endif
 
 // C-string Comparisons.  All tests treat NULL and any non-NULL string
@@ -2115,7 +1939,7 @@
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
 #define EXPECT_STRCASEEQ(s1, s2) \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
-#define EXPECT_STRCASENE(s1, s2)\
+#define EXPECT_STRCASENE(s1, s2) \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
 
 #define ASSERT_STREQ(s1, s2) \
@@ -2124,7 +1948,7 @@
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
 #define ASSERT_STRCASEEQ(s1, s2) \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
-#define ASSERT_STRCASENE(s1, s2)\
+#define ASSERT_STRCASENE(s1, s2) \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
 
 // Macros for comparing floating-point numbers.
@@ -2141,29 +1965,29 @@
 // FloatingPoint template class in gtest-internal.h if you are
 // interested in the implementation details.
 
-#define EXPECT_FLOAT_EQ(val1, val2)\
+#define EXPECT_FLOAT_EQ(val1, val2)                                         \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
                       val1, val2)
 
-#define EXPECT_DOUBLE_EQ(val1, val2)\
+#define EXPECT_DOUBLE_EQ(val1, val2)                                         \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
                       val1, val2)
 
-#define ASSERT_FLOAT_EQ(val1, val2)\
+#define ASSERT_FLOAT_EQ(val1, val2)                                         \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
                       val1, val2)
 
-#define ASSERT_DOUBLE_EQ(val1, val2)\
+#define ASSERT_DOUBLE_EQ(val1, val2)                                         \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
                       val1, val2)
 
-#define EXPECT_NEAR(val1, val2, abs_error)\
-  EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
-                      val1, val2, abs_error)
+#define EXPECT_NEAR(val1, val2, abs_error)                                   \
+  EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, val1, val2, \
+                      abs_error)
 
-#define ASSERT_NEAR(val1, val2, abs_error)\
-  ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
-                      val1, val2, abs_error)
+#define ASSERT_NEAR(val1, val2, abs_error)                                   \
+  ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, val1, val2, \
+                      abs_error)
 
 // These predicate format functions work on floating-point values, and
 // can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g.
@@ -2177,8 +2001,7 @@
 GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
                                     double val1, double val2);
 
-
-#if GTEST_OS_WINDOWS
+#ifdef GTEST_OS_WINDOWS
 
 // Macros that test for HRESULT failure and success, these are only useful
 // on Windows, and rely on Windows SDK macros and APIs to compile.
@@ -2189,17 +2012,17 @@
 // expected result and the actual result with both a human-readable
 // string representation of the error, if available, as well as the
 // hex result code.
-# define EXPECT_HRESULT_SUCCEEDED(expr) \
-    EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
+#define EXPECT_HRESULT_SUCCEEDED(expr) \
+  EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
 
-# define ASSERT_HRESULT_SUCCEEDED(expr) \
-    ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
+#define ASSERT_HRESULT_SUCCEEDED(expr) \
+  ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
 
-# define EXPECT_HRESULT_FAILED(expr) \
-    EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
+#define EXPECT_HRESULT_FAILED(expr) \
+  EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
 
-# define ASSERT_HRESULT_FAILED(expr) \
-    ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
+#define ASSERT_HRESULT_FAILED(expr) \
+  ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
 
 #endif  // GTEST_OS_WINDOWS
 
@@ -2214,9 +2037,9 @@
 //   ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed";
 //
 #define ASSERT_NO_FATAL_FAILURE(statement) \
-    GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
+  GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
 #define EXPECT_NO_FATAL_FAILURE(statement) \
-    GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
+  GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
 
 // Causes a trace (including the given source file path and line number,
 // and the given message) to be included in every test failure message generated
@@ -2258,10 +2081,9 @@
  private:
   void PushTrace(const char* file, int line, std::string message);
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace);
-} GTEST_ATTRIBUTE_UNUSED_;  // A ScopedTrace object does its job in its
-                            // c'tor and d'tor.  Therefore it doesn't
-                            // need to be used otherwise.
+  ScopedTrace(const ScopedTrace&) = delete;
+  ScopedTrace& operator=(const ScopedTrace&) = delete;
+};
 
 // Causes a trace (including the source file path, the current line
 // number, and the given message) to be included in every test failure
@@ -2278,9 +2100,9 @@
 // Assuming that each thread maintains its own stack of traces.
 // Therefore, a SCOPED_TRACE() would (correctly) only affect the
 // assertions in its own thread.
-#define SCOPED_TRACE(message) \
-  ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
-    __FILE__, __LINE__, (message))
+#define SCOPED_TRACE(message)                                               \
+  const ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)( \
+      __FILE__, __LINE__, (message))
 
 // Compile-time assertion for type equality.
 // StaticAssertTypeEq<type1, type2>() compiles if and only if type1 and type2
@@ -2349,7 +2171,7 @@
 
 // Define this macro to 1 to omit the definition of TEST(), which
 // is a generic name and clashes with some other libraries.
-#if !GTEST_DONT_DEFINE_TEST
+#if !(defined(GTEST_DONT_DEFINE_TEST) && GTEST_DONT_DEFINE_TEST)
 #define TEST(test_suite_name, test_name) GTEST_TEST(test_suite_name, test_name)
 #endif
 
@@ -2378,21 +2200,25 @@
 //     EXPECT_EQ(a_.size(), 0);
 //     EXPECT_EQ(b_.size(), 1);
 //   }
-//
-// GOOGLETEST_CM0011 DO NOT DELETE
-#if !GTEST_DONT_DEFINE_TEST
-#define TEST_F(test_fixture, test_name)\
+#define GTEST_TEST_F(test_fixture, test_name)        \
   GTEST_TEST_(test_fixture, test_name, test_fixture, \
               ::testing::internal::GetTypeId<test_fixture>())
-#endif  // !GTEST_DONT_DEFINE_TEST
+#if !(defined(GTEST_DONT_DEFINE_TEST_F) && GTEST_DONT_DEFINE_TEST_F)
+#define TEST_F(test_fixture, test_name) GTEST_TEST_F(test_fixture, test_name)
+#endif
 
-// Returns a path to temporary directory.
-// Tries to determine an appropriate directory for the platform.
+// Returns a path to a temporary directory, which should be writable. It is
+// implementation-dependent whether or not the path is terminated by the
+// directory-separator character.
 GTEST_API_ std::string TempDir();
 
-#ifdef _MSC_VER
-#  pragma warning(pop)
-#endif
+// Returns a path to a directory that contains ancillary data files that might
+// be used by tests. It is implementation dependent whether or not the path is
+// terminated by the directory-separator character. The directory and the files
+// in it should be considered read-only.
+GTEST_API_ std::string SrcDir();
+
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4805 4100
 
 // Dynamically registers a test with the framework.
 //
@@ -2445,6 +2271,7 @@
 // }
 // ...
 // int main(int argc, char** argv) {
+//   ::testing::InitGoogleTest(&argc, argv);
 //   std::vector<int> values_to_test = LoadValuesFromConfig();
 //   RegisterMyTests(values_to_test);
 //   ...
@@ -2486,9 +2313,7 @@
 // namespace and has an all-caps name.
 int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_;
 
-inline int RUN_ALL_TESTS() {
-  return ::testing::UnitTest::GetInstance()->Run();
-}
+inline int RUN_ALL_TESTS() { return ::testing::UnitTest::GetInstance()->Run(); }
 
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
 
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h
index 5029a9b..47a24aa 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h
@@ -26,17 +26,19 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// This file is AUTOMATICALLY GENERATED on 01/02/2019 by command
-// 'gen_gtest_pred_impl.py 5'.  DO NOT EDIT BY HAND!
 //
 // Implements a family of generic predicate assertion macros.
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
 
-#include "gtest/gtest.h"
+#include "gtest/gtest-assertion-result.h"
+#include "gtest/internal/gtest-internal.h"
+#include "gtest/internal/gtest-port.h"
 
 namespace testing {
 
@@ -72,22 +74,18 @@
 // GTEST_ASSERT_ is the basic statement to which all of the assertions
 // in this file reduce.  Don't use this in your code.
 
-#define GTEST_ASSERT_(expression, on_failure) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
+#define GTEST_ASSERT_(expression, on_failure)                   \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
   if (const ::testing::AssertionResult gtest_ar = (expression)) \
-    ; \
-  else \
+    ;                                                           \
+  else                                                          \
     on_failure(gtest_ar.failure_message())
 
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED1.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1>
-AssertionResult AssertPred1Helper(const char* pred_text,
-                                  const char* e1,
-                                  Pred pred,
-                                  const T1& v1) {
+template <typename Pred, typename T1>
+AssertionResult AssertPred1Helper(const char* pred_text, const char* e1,
+                                  Pred pred, const T1& v1) {
   if (pred(v1)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -98,40 +96,27 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, v1), \
-                on_failure)
+#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED1.  Don't use
 // this in your code.
-#define GTEST_PRED1_(pred, v1, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \
-                                             #v1, \
-                                             pred, \
-                                             v1), on_failure)
+#define GTEST_PRED1_(pred, v1, on_failure) \
+  GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, #v1, pred, v1), on_failure)
 
 // Unary predicate assertion macros.
 #define EXPECT_PRED_FORMAT1(pred_format, v1) \
   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
-#define EXPECT_PRED1(pred, v1) \
-  GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_)
+#define EXPECT_PRED1(pred, v1) GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_)
 #define ASSERT_PRED_FORMAT1(pred_format, v1) \
   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
-#define ASSERT_PRED1(pred, v1) \
-  GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_)
-
-
+#define ASSERT_PRED1(pred, v1) GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_)
 
 // Helper function for implementing {EXPECT|ASSERT}_PRED2.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2>
-AssertionResult AssertPred2Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  Pred pred,
-                                  const T1& v1,
+template <typename Pred, typename T1, typename T2>
+AssertionResult AssertPred2Helper(const char* pred_text, const char* e1,
+                                  const char* e2, Pred pred, const T1& v1,
                                   const T2& v2) {
   if (pred(v1, v2)) return AssertionSuccess();
 
@@ -145,19 +130,14 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \
-                on_failure)
+#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED2.  Don't use
 // this in your code.
-#define GTEST_PRED2_(pred, v1, v2, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             pred, \
-                                             v1, \
-                                             v2), on_failure)
+#define GTEST_PRED2_(pred, v1, v2, on_failure)                               \
+  GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, #v1, #v2, pred, v1, v2), \
+                on_failure)
 
 // Binary predicate assertion macros.
 #define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \
@@ -169,22 +149,12 @@
 #define ASSERT_PRED2(pred, v1, v2) \
   GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_)
 
-
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED3.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2,
-          typename T3>
-AssertionResult AssertPred3Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  const char* e3,
-                                  Pred pred,
-                                  const T1& v1,
-                                  const T2& v2,
-                                  const T3& v3) {
+template <typename Pred, typename T1, typename T2, typename T3>
+AssertionResult AssertPred3Helper(const char* pred_text, const char* e1,
+                                  const char* e2, const char* e3, Pred pred,
+                                  const T1& v1, const T2& v2, const T3& v3) {
   if (pred(v1, v2, v3)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -198,21 +168,15 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \
-                on_failure)
+#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED3.  Don't use
 // this in your code.
-#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             #v3, \
-                                             pred, \
-                                             v1, \
-                                             v2, \
-                                             v3), on_failure)
+#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)                          \
+  GTEST_ASSERT_(                                                            \
+      ::testing::AssertPred3Helper(#pred, #v1, #v2, #v3, pred, v1, v2, v3), \
+      on_failure)
 
 // Ternary predicate assertion macros.
 #define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \
@@ -224,25 +188,13 @@
 #define ASSERT_PRED3(pred, v1, v2, v3) \
   GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_)
 
-
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED4.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2,
-          typename T3,
-          typename T4>
-AssertionResult AssertPred4Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  const char* e3,
-                                  const char* e4,
-                                  Pred pred,
-                                  const T1& v1,
-                                  const T2& v2,
-                                  const T3& v3,
-                                  const T4& v4) {
+template <typename Pred, typename T1, typename T2, typename T3, typename T4>
+AssertionResult AssertPred4Helper(const char* pred_text, const char* e1,
+                                  const char* e2, const char* e3,
+                                  const char* e4, Pred pred, const T1& v1,
+                                  const T2& v2, const T3& v3, const T4& v4) {
   if (pred(v1, v2, v3, v4)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -257,23 +209,15 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \
-                on_failure)
+#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED4.  Don't use
 // this in your code.
-#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             #v3, \
-                                             #v4, \
-                                             pred, \
-                                             v1, \
-                                             v2, \
-                                             v3, \
-                                             v4), on_failure)
+#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)                        \
+  GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, #v1, #v2, #v3, #v4, pred, \
+                                             v1, v2, v3, v4),                 \
+                on_failure)
 
 // 4-ary predicate assertion macros.
 #define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
@@ -285,28 +229,15 @@
 #define ASSERT_PRED4(pred, v1, v2, v3, v4) \
   GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
 
-
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED5.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2,
-          typename T3,
-          typename T4,
+template <typename Pred, typename T1, typename T2, typename T3, typename T4,
           typename T5>
-AssertionResult AssertPred5Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  const char* e3,
-                                  const char* e4,
-                                  const char* e5,
-                                  Pred pred,
-                                  const T1& v1,
-                                  const T2& v2,
-                                  const T3& v3,
-                                  const T4& v4,
-                                  const T5& v5) {
+AssertionResult AssertPred5Helper(const char* pred_text, const char* e1,
+                                  const char* e2, const char* e3,
+                                  const char* e4, const char* e5, Pred pred,
+                                  const T1& v1, const T2& v2, const T3& v3,
+                                  const T4& v4, const T5& v5) {
   if (pred(v1, v2, v3, v4, v5)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -322,25 +253,16 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\
+#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)  \
   GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \
                 on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED5.  Don't use
 // this in your code.
-#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             #v3, \
-                                             #v4, \
-                                             #v5, \
-                                             pred, \
-                                             v1, \
-                                             v2, \
-                                             v3, \
-                                             v4, \
-                                             v5), on_failure)
+#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)                   \
+  GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, #v1, #v2, #v3, #v4, #v5, \
+                                             pred, v1, v2, v3, v4, v5),      \
+                on_failure)
 
 // 5-ary predicate assertion macros.
 #define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
@@ -352,8 +274,6 @@
 #define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \
   GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
 
-
-
 }  // namespace testing
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h
index 38b9d85..1f37dc3 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h
@@ -27,9 +27,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
-// Google C++ Testing and Mocking Framework definitions useful in production code.
-// GOOGLETEST_CM0003 DO NOT DELETE
+// Google C++ Testing and Mocking Framework definitions useful in production
+// code.
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_
@@ -55,7 +54,7 @@
 // Note: The test class must be in the same namespace as the class being tested.
 // For example, putting MyClassTest in an anonymous namespace will not work.
 
-#define FRIEND_TEST(test_case_name, test_name)\
-friend class test_case_name##_##test_name##_Test
+#define FRIEND_TEST(test_case_name, test_name) \
+  friend class test_case_name##_##test_name##_Test
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h
index c4ba098..66bfb48 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h
@@ -34,6 +34,11 @@
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
 
+// TODO: b/302409123 - <iomanip> was previously included by GTest internal
+// headers, but was recently removed. Temporarily add it here to unblock
+// upgrades.
+#include <iomanip>
+
 // Suppress warnings for deprecated *_TEST_CASE_* macros.
 #define GTEST_INTERNAL_DEPRECATED(message)
 
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
index 490296d..8e9c988 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
@@ -26,33 +26,38 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines internal utilities needed for implementing
 // death tests.  They are subject to change without notice.
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
 
+#include <stdio.h>
+
+#include <memory>
+#include <string>
+
 #include "gtest/gtest-matchers.h"
 #include "gtest/internal/gtest-internal.h"
 
-#include <stdio.h>
-#include <memory>
+GTEST_DECLARE_string_(internal_run_death_test);
 
 namespace testing {
 namespace internal {
 
-GTEST_DECLARE_string_(internal_run_death_test);
-
 // Names of the flags (needed for parsing Google Test flags).
 const char kDeathTestStyleFlag[] = "death_test_style";
 const char kDeathTestUseFork[] = "death_test_use_fork";
 const char kInternalRunDeathTestFlag[] = "internal_run_death_test";
 
-#if GTEST_HAS_DEATH_TEST
+#ifdef GTEST_HAS_DEATH_TEST
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
@@ -83,17 +88,19 @@
   static bool Create(const char* statement, Matcher<const std::string&> matcher,
                      const char* file, int line, DeathTest** test);
   DeathTest();
-  virtual ~DeathTest() { }
+  virtual ~DeathTest() = default;
 
   // A helper class that aborts a death test when it's deleted.
   class ReturnSentinel {
    public:
-    explicit ReturnSentinel(DeathTest* test) : test_(test) { }
+    explicit ReturnSentinel(DeathTest* test) : test_(test) {}
     ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); }
+
    private:
     DeathTest* const test_;
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ReturnSentinel);
-  } GTEST_ATTRIBUTE_UNUSED_;
+    ReturnSentinel(const ReturnSentinel&) = delete;
+    ReturnSentinel& operator=(const ReturnSentinel&) = delete;
+  };
 
   // An enumeration of possible roles that may be taken when a death
   // test is encountered.  EXECUTE means that the death test logic should
@@ -137,7 +144,8 @@
   // A string containing a description of the outcome of the last death test.
   static std::string last_death_test_message_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest);
+  DeathTest(const DeathTest&) = delete;
+  DeathTest& operator=(const DeathTest&) = delete;
 };
 
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
@@ -145,7 +153,7 @@
 // Factory interface for death tests.  May be mocked out for testing.
 class DeathTestFactory {
  public:
-  virtual ~DeathTestFactory() { }
+  virtual ~DeathTestFactory() = default;
   virtual bool Create(const char* statement,
                       Matcher<const std::string&> matcher, const char* file,
                       int line, DeathTest** test) = 0;
@@ -186,28 +194,28 @@
 
 // Traps C++ exceptions escaping statement and reports them as test
 // failures. Note that trapping SEH exceptions is not implemented here.
-# if GTEST_HAS_EXCEPTIONS
-#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
-  try { \
-    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-  } catch (const ::std::exception& gtest_exception) { \
-    fprintf(\
-        stderr, \
-        "\n%s: Caught std::exception-derived exception escaping the " \
-        "death test statement. Exception message: %s\n", \
+#if GTEST_HAS_EXCEPTIONS
+#define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test)           \
+  try {                                                                      \
+    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);               \
+  } catch (const ::std::exception& gtest_exception) {                        \
+    fprintf(                                                                 \
+        stderr,                                                              \
+        "\n%s: Caught std::exception-derived exception escaping the "        \
+        "death test statement. Exception message: %s\n",                     \
         ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \
-        gtest_exception.what()); \
-    fflush(stderr); \
+        gtest_exception.what());                                             \
+    fflush(stderr);                                                          \
     death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
-  } catch (...) { \
+  } catch (...) {                                                            \
     death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
   }
 
-# else
-#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
+#else
+#define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
   GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)
 
-# endif
+#endif
 
 // This macro is for implementing ASSERT_DEATH*, EXPECT_DEATH*,
 // ASSERT_EXIT*, and EXPECT_EXIT*.
@@ -230,14 +238,12 @@
           }                                                                    \
           break;                                                               \
         case ::testing::internal::DeathTest::EXECUTE_TEST: {                   \
-          ::testing::internal::DeathTest::ReturnSentinel gtest_sentinel(       \
+          const ::testing::internal::DeathTest::ReturnSentinel gtest_sentinel( \
               gtest_dt);                                                       \
           GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt);            \
           gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE);   \
           break;                                                               \
         }                                                                      \
-        default:                                                               \
-          break;                                                               \
       }                                                                        \
     }                                                                          \
   } else                                                                       \
@@ -265,16 +271,12 @@
 // RUN_ALL_TESTS was called.
 class InternalRunDeathTestFlag {
  public:
-  InternalRunDeathTestFlag(const std::string& a_file,
-                           int a_line,
-                           int an_index,
+  InternalRunDeathTestFlag(const std::string& a_file, int a_line, int an_index,
                            int a_write_fd)
-      : file_(a_file), line_(a_line), index_(an_index),
-        write_fd_(a_write_fd) {}
+      : file_(a_file), line_(a_line), index_(an_index), write_fd_(a_write_fd) {}
 
   ~InternalRunDeathTestFlag() {
-    if (write_fd_ >= 0)
-      posix::Close(write_fd_);
+    if (write_fd_ >= 0) posix::Close(write_fd_);
   }
 
   const std::string& file() const { return file_; }
@@ -288,7 +290,8 @@
   int index_;
   int write_fd_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(InternalRunDeathTestFlag);
+  InternalRunDeathTestFlag(const InternalRunDeathTestFlag&) = delete;
+  InternalRunDeathTestFlag& operator=(const InternalRunDeathTestFlag&) = delete;
 };
 
 // Returns a newly created InternalRunDeathTestFlag object with fields
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h
index 0c033ab..5189c81 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // Google Test filepath utilities
 //
 // This header file declares classes and functions used internally by
@@ -35,16 +35,23 @@
 // This file is #included in gtest/internal/gtest-internal.h.
 // Do not include this header file separately!
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
 
+#include <string>
+
+#include "gtest/internal/gtest-port.h"
 #include "gtest/internal/gtest-string.h"
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
 
+#if GTEST_HAS_FILE_SYSTEM
+
 namespace testing {
 namespace internal {
 
@@ -61,8 +68,8 @@
 
 class GTEST_API_ FilePath {
  public:
-  FilePath() : pathname_("") { }
-  FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { }
+  FilePath() : pathname_("") {}
+  FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) {}
 
   explicit FilePath(const std::string& pathname) : pathname_(pathname) {
     Normalize();
@@ -73,9 +80,7 @@
     return *this;
   }
 
-  void Set(const FilePath& rhs) {
-    pathname_ = rhs.pathname_;
-  }
+  void Set(const FilePath& rhs) { pathname_ = rhs.pathname_; }
 
   const std::string& string() const { return pathname_; }
   const char* c_str() const { return pathname_.c_str(); }
@@ -88,8 +93,7 @@
   // than zero (e.g., 12), returns "dir/test_12.xml".
   // On Windows platform, uses \ as the separator rather than /.
   static FilePath MakeFileName(const FilePath& directory,
-                               const FilePath& base_name,
-                               int number,
+                               const FilePath& base_name, int number,
                                const char* extension);
 
   // Given directory = "dir", relative_path = "test.xml",
@@ -200,6 +204,16 @@
   // separators. Returns NULL if no path separator was found.
   const char* FindLastPathSeparator() const;
 
+  // Returns the length of the path root, including the directory separator at
+  // the end of the prefix. Returns zero by definition if the path is relative.
+  // Examples:
+  // - [Windows] "..\Sibling" => 0
+  // - [Windows] "\Windows" => 1
+  // - [Windows] "C:/Windows\Notepad.exe" => 3
+  // - [Windows] "\\Host\Share\C$/Windows" => 13
+  // - [UNIX] "/bin" => 1
+  size_t CalculateRootLength() const;
+
   std::string pathname_;
 };  // class FilePath
 
@@ -208,4 +222,6 @@
 
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
 
+#endif  // GTEST_HAS_FILE_SYSTEM
+
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h
index f8cbdbd..4f077fc 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h
@@ -26,40 +26,44 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file declares functions and macros used internally by
 // Google Test.  They are subject to change without notice.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
 
 #include "gtest/internal/gtest-port.h"
 
-#if GTEST_OS_LINUX
-# include <stdlib.h>
-# include <sys/types.h>
-# include <sys/wait.h>
-# include <unistd.h>
+#ifdef GTEST_OS_LINUX
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
 #endif  // GTEST_OS_LINUX
 
 #if GTEST_HAS_EXCEPTIONS
-# include <stdexcept>
+#include <stdexcept>
 #endif
 
 #include <ctype.h>
 #include <float.h>
 #include <string.h>
+
 #include <cstdint>
-#include <iomanip>
+#include <functional>
 #include <limits>
 #include <map>
 #include <set>
 #include <string>
 #include <type_traits>
+#include <utility>
 #include <vector>
 
 #include "gtest/gtest-message.h"
@@ -74,9 +78,9 @@
 //
 // will result in the token foo__LINE__, instead of foo followed by
 // the current line number.  For more details, see
-// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6
+// https://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6
 #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
-#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
+#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo##bar
 
 // Stringifies its argument.
 // Work around a bug in visual studio which doesn't accept code like this:
@@ -98,21 +102,21 @@
 
 // Forward declarations.
 
-class AssertionResult;                 // Result of an assertion.
-class Message;                         // Represents a failure message.
-class Test;                            // Represents a test.
-class TestInfo;                        // Information about a test.
-class TestPartResult;                  // Result of a test part.
-class UnitTest;                        // A collection of test suites.
+class AssertionResult;  // Result of an assertion.
+class Message;          // Represents a failure message.
+class Test;             // Represents a test.
+class TestInfo;         // Information about a test.
+class TestPartResult;   // Result of a test part.
+class UnitTest;         // A collection of test suites.
 
 template <typename T>
 ::std::string PrintToString(const T& value);
 
 namespace internal {
 
-struct TraceInfo;                      // Information about a trace point.
-class TestInfoImpl;                    // Opaque implementation of TestInfo
-class UnitTestImpl;                    // Opaque implementation of UnitTest
+struct TraceInfo;    // Information about a trace point.
+class TestInfoImpl;  // Opaque implementation of TestInfo
+class UnitTestImpl;  // Opaque implementation of UnitTest
 
 // The text used in failure messages to indicate the start of the
 // stack trace.
@@ -121,6 +125,7 @@
 // An IgnoredValue object can be implicitly constructed from ANY value.
 class IgnoredValue {
   struct Sink {};
+
  public:
   // This constructor template allows any value to be implicitly
   // converted to IgnoredValue.  The object has no data member and
@@ -136,13 +141,13 @@
 };
 
 // Appends the user-supplied message to the Google-Test-generated message.
-GTEST_API_ std::string AppendUserMessage(
-    const std::string& gtest_msg, const Message& user_msg);
+GTEST_API_ std::string AppendUserMessage(const std::string& gtest_msg,
+                                         const Message& user_msg);
 
 #if GTEST_HAS_EXCEPTIONS
 
-GTEST_DISABLE_MSC_WARNINGS_PUSH_(4275 \
-/* an exported class was derived from a class that was not exported */)
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(
+    4275 /* an exported class was derived from a class that was not exported */)
 
 // This exception is thrown by (and only by) a failed Google Test
 // assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions
@@ -164,7 +169,7 @@
 // All edits cost the same, with replace having lower priority than
 // add/remove.
 // Simple implementation of the Wagner-Fischer algorithm.
-// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
+// See https://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
 enum EditType { kMatch, kAdd, kRemove, kReplace };
 GTEST_API_ std::vector<EditType> CalculateOptimalEdits(
     const std::vector<size_t>& left, const std::vector<size_t>& right);
@@ -181,14 +186,6 @@
 
 }  // namespace edit_distance
 
-// Calculate the diff between 'left' and 'right' and return it in unified diff
-// format.
-// If not null, stores in 'total_line_count' the total number of lines found
-// in left + right.
-GTEST_API_ std::string DiffStrings(const std::string& left,
-                                   const std::string& right,
-                                   size_t* total_line_count);
-
 // Constructs and returns the message for an equality assertion
 // (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure.
 //
@@ -212,10 +209,8 @@
 
 // Constructs a failure message for Boolean assertions such as EXPECT_TRUE.
 GTEST_API_ std::string GetBoolAssertionFailureMessage(
-    const AssertionResult& assertion_result,
-    const char* expression_text,
-    const char* actual_predicate_value,
-    const char* expected_predicate_value);
+    const AssertionResult& assertion_result, const char* expression_text,
+    const char* actual_predicate_value, const char* expected_predicate_value);
 
 // This template class represents an IEEE floating-point number
 // (either single-precision or double-precision, depending on the
@@ -241,7 +236,7 @@
 //   For double, there are 11 exponent bits and 52 fraction bits.
 //
 //   More details can be found at
-//   http://en.wikipedia.org/wiki/IEEE_floating-point_standard.
+//   https://en.wikipedia.org/wiki/IEEE_floating-point_standard.
 //
 // Template parameter:
 //
@@ -256,11 +251,11 @@
   // Constants.
 
   // # of bits in a number.
-  static const size_t kBitCount = 8*sizeof(RawType);
+  static const size_t kBitCount = 8 * sizeof(RawType);
 
   // # of fraction bits in a number.
   static const size_t kFractionBitCount =
-    std::numeric_limits<RawType>::digits - 1;
+      std::numeric_limits<RawType>::digits - 1;
 
   // # of exponent bits in a number.
   static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount;
@@ -269,8 +264,8 @@
   static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1);
 
   // The mask for the fraction bits.
-  static const Bits kFractionBitMask =
-    ~static_cast<Bits>(0) >> (kExponentBitCount + 1);
+  static const Bits kFractionBitMask = ~static_cast<Bits>(0) >>
+                                       (kExponentBitCount + 1);
 
   // The mask for the exponent bits.
   static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask);
@@ -286,7 +281,7 @@
   // bits.  Therefore, 4 should be enough for ordinary use.
   //
   // See the following article for more details on ULP:
-  // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
+  // https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
   static const uint32_t kMaxUlps = 4;
 
   // Constructs a FloatingPoint from a raw floating-point number.
@@ -309,17 +304,12 @@
   }
 
   // Returns the floating-point number that represent positive infinity.
-  static RawType Infinity() {
-    return ReinterpretBits(kExponentBitMask);
-  }
-
-  // Returns the maximum representable finite floating-point number.
-  static RawType Max();
+  static RawType Infinity() { return ReinterpretBits(kExponentBitMask); }
 
   // Non-static methods
 
   // Returns the bits that represents this number.
-  const Bits &bits() const { return u_.bits_; }
+  const Bits& bits() const { return u_.bits_; }
 
   // Returns the exponent bits of this number.
   Bits exponent_bits() const { return kExponentBitMask & u_.bits_; }
@@ -348,8 +338,8 @@
     // a NAN must return false.
     if (is_nan() || rhs.is_nan()) return false;
 
-    return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_)
-        <= kMaxUlps;
+    return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) <=
+           kMaxUlps;
   }
 
  private:
@@ -372,9 +362,9 @@
   //   N - 1  (the biggest number representable using
   //          sign-and-magnitude) is represented by 2N - 1.
   //
-  // Read http://en.wikipedia.org/wiki/Signed_number_representations
+  // Read https://en.wikipedia.org/wiki/Signed_number_representations
   // for more details on signed number representations.
-  static Bits SignAndMagnitudeToBiased(const Bits &sam) {
+  static Bits SignAndMagnitudeToBiased(const Bits& sam) {
     if (kSignBitMask & sam) {
       // sam represents a negative number.
       return ~sam + 1;
@@ -386,8 +376,8 @@
 
   // Given two numbers in the sign-and-magnitude representation,
   // returns the distance between them as an unsigned number.
-  static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1,
-                                                     const Bits &sam2) {
+  static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits& sam1,
+                                                     const Bits& sam2) {
     const Bits biased1 = SignAndMagnitudeToBiased(sam1);
     const Bits biased2 = SignAndMagnitudeToBiased(sam2);
     return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);
@@ -396,13 +386,6 @@
   FloatingPointUnion u_;
 };
 
-// We cannot use std::numeric_limits<T>::max() as it clashes with the max()
-// macro defined by <windows.h>.
-template <>
-inline float FloatingPoint<float>::Max() { return FLT_MAX; }
-template <>
-inline double FloatingPoint<double>::Max() { return DBL_MAX; }
-
 // Typedefs the instances of the FloatingPoint template class that we
 // care to use.
 typedef FloatingPoint<float> Float;
@@ -451,7 +434,7 @@
 // of a Test object.
 class TestFactoryBase {
  public:
-  virtual ~TestFactoryBase() {}
+  virtual ~TestFactoryBase() = default;
 
   // Creates a test instance to run. The instance is both created and destroyed
   // within TestInfoImpl::Run()
@@ -461,10 +444,11 @@
   TestFactoryBase() {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestFactoryBase);
+  TestFactoryBase(const TestFactoryBase&) = delete;
+  TestFactoryBase& operator=(const TestFactoryBase&) = delete;
 };
 
-// This class provides implementation of TeastFactoryBase interface.
+// This class provides implementation of TestFactoryBase interface.
 // It is used in TEST and TEST_F macros.
 template <class TestClass>
 class TestFactoryImpl : public TestFactoryBase {
@@ -472,7 +456,7 @@
   Test* CreateTest() override { return new TestClass; }
 };
 
-#if GTEST_OS_WINDOWS
+#ifdef GTEST_OS_WINDOWS
 
 // Predicate-formatters for implementing the HRESULT checking macros
 // {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}
@@ -510,11 +494,11 @@
 
 template <typename T>
 //  Note that SuiteApiResolver inherits from T because
-//  SetUpTestSuite()/TearDownTestSuite() could be protected. Ths way
+//  SetUpTestSuite()/TearDownTestSuite() could be protected. This way
 //  SuiteApiResolver can access them.
 struct SuiteApiResolver : T {
   // testing::Test is only forward declared at this point. So we make it a
-  // dependend class for the compiler to be OK with it.
+  // dependent class for the compiler to be OK with it.
   using Test =
       typename std::conditional<sizeof(T) != 0, ::testing::Test, void>::type;
 
@@ -634,7 +618,7 @@
                                         const char* registered_tests);
 
  private:
-  typedef ::std::map<std::string, CodeLocation> RegisteredTestsMap;
+  typedef ::std::map<std::string, CodeLocation, std::less<>> RegisteredTestsMap;
 
   bool registered_;
   RegisteredTestsMap registered_tests_;
@@ -654,7 +638,8 @@
   if (comma == nullptr) {
     return nullptr;
   }
-  while (IsSpace(*(++comma))) {}
+  while (IsSpace(*(++comma))) {
+  }
   return comma;
 }
 
@@ -668,7 +653,7 @@
 // Splits a given string on a given delimiter, populating a given
 // vector with the fields.
 void SplitString(const ::std::string& str, char delimiter,
-                 ::std::vector< ::std::string>* dest);
+                 ::std::vector<::std::string>* dest);
 
 // The default argument to the template below for the case when the user does
 // not provide a name generator.
@@ -781,13 +766,13 @@
                        const std::vector<std::string>& type_names =
                            GenerateNames<DefaultNameGenerator, Types>()) {
     RegisterTypeParameterizedTestSuiteInstantiation(case_name);
-    std::string test_name = StripTrailingSpaces(
-        GetPrefixUntilComma(test_names));
+    std::string test_name =
+        StripTrailingSpaces(GetPrefixUntilComma(test_names));
     if (!state->TestExists(test_name)) {
       fprintf(stderr, "Failed to get code location for test %s.%s at %s.",
               case_name, test_name.c_str(),
-              FormatFileLocation(code_location.file.c_str(),
-                                 code_location.line).c_str());
+              FormatFileLocation(code_location.file.c_str(), code_location.line)
+                  .c_str());
       fflush(stderr);
       posix::Abort();
     }
@@ -831,8 +816,7 @@
 // For example, if Foo() calls Bar(), which in turn calls
 // GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in
 // the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't.
-GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(
-    UnitTest* unit_test, int skip_count);
+GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(int skip_count);
 
 // Helpers for suppressing warnings on unreachable code or constant
 // condition.
@@ -881,7 +865,8 @@
 
  private:
   uint32_t state_;
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Random);
+  Random(const Random&) = delete;
+  Random& operator=(const Random&) = delete;
 };
 
 // Turns const U&, U&, const U, and U all into U.
@@ -914,8 +899,10 @@
       HasDebugStringType::value && HasShortDebugStringType::value;
 };
 
+#ifdef GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
 template <typename T>
 constexpr bool HasDebugStringAndShortDebugString<T>::value;
+#endif
 
 // When the compiler sees expression IsContainerTest<C>(0), if C is an
 // STL-style container class, the first overload of IsContainerTest
@@ -954,7 +941,9 @@
 
 typedef char IsNotContainer;
 template <class C>
-IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; }
+IsNotContainer IsContainerTest(long /* dummy */) {
+  return '\0';
+}
 
 // Trait to detect whether a type T is a hash table.
 // The heuristic used is that the type contains an inner type `hasher` and does
@@ -1017,11 +1006,13 @@
 
 // This generic version is used when k is 0.
 template <typename T, typename U>
-inline bool ArrayEq(const T& lhs, const U& rhs) { return lhs == rhs; }
+inline bool ArrayEq(const T& lhs, const U& rhs) {
+  return lhs == rhs;
+}
 
 // This overload is used when k >= 1.
 template <typename T, typename U, size_t N>
-inline bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N]) {
+inline bool ArrayEq(const T (&lhs)[N], const U (&rhs)[N]) {
   return internal::ArrayEq(lhs, N, rhs);
 }
 
@@ -1031,8 +1022,7 @@
 template <typename T, typename U>
 bool ArrayEq(const T* lhs, size_t size, const U* rhs) {
   for (size_t i = 0; i != size; i++) {
-    if (!internal::ArrayEq(lhs[i], rhs[i]))
-      return false;
+    if (!internal::ArrayEq(lhs[i], rhs[i])) return false;
   }
   return true;
 }
@@ -1042,8 +1032,7 @@
 template <typename Iter, typename Element>
 Iter ArrayAwareFind(Iter begin, Iter end, const Element& elem) {
   for (Iter it = begin; it != end; ++it) {
-    if (internal::ArrayEq(*it, elem))
-      return it;
+    if (internal::ArrayEq(*it, elem)) return it;
   }
   return end;
 }
@@ -1057,11 +1046,13 @@
 
 // This generic version is used when k is 0.
 template <typename T, typename U>
-inline void CopyArray(const T& from, U* to) { *to = from; }
+inline void CopyArray(const T& from, U* to) {
+  *to = from;
+}
 
 // This overload is used when k >= 1.
 template <typename T, typename U, size_t N>
-inline void CopyArray(const T(&from)[N], U(*to)[N]) {
+inline void CopyArray(const T (&from)[N], U (*to)[N]) {
   internal::CopyArray(from, N, *to);
 }
 
@@ -1114,8 +1105,7 @@
   }
 
   ~NativeArray() {
-    if (clone_ != &NativeArray::InitRef)
-      delete[] array_;
+    if (clone_ != &NativeArray::InitRef) delete[] array_;
   }
 
   // STL-style container methods.
@@ -1123,8 +1113,7 @@
   const_iterator begin() const { return array_; }
   const_iterator end() const { return array_ + size_; }
   bool operator==(const NativeArray& rhs) const {
-    return size() == rhs.size() &&
-        ArrayEq(begin(), size(), rhs.begin());
+    return size() == rhs.size() && ArrayEq(begin(), size(), rhs.begin());
   }
 
  private:
@@ -1335,9 +1324,9 @@
 #endif
 }  // namespace std
 
-#define GTEST_MESSAGE_AT_(file, line, message, result_type) \
-  ::testing::internal::AssertHelper(result_type, file, line, message) \
-    = ::testing::Message()
+#define GTEST_MESSAGE_AT_(file, line, message, result_type)             \
+  ::testing::internal::AssertHelper(result_type, file, line, message) = \
+      ::testing::Message()
 
 #define GTEST_MESSAGE_(message, result_type) \
   GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type)
@@ -1458,103 +1447,113 @@
 
 #endif  // GTEST_HAS_EXCEPTIONS
 
-#define GTEST_TEST_NO_THROW_(statement, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (::testing::internal::TrueWithString gtest_msg{}) { \
-    try { \
-      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-    } \
-    GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_() \
-    catch (...) { \
-      gtest_msg.value = "it throws."; \
-      goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \
-    } \
-  } else \
-    GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \
-      fail(("Expected: " #statement " doesn't throw an exception.\n" \
-            "  Actual: " + gtest_msg.value).c_str())
+#define GTEST_TEST_NO_THROW_(statement, fail)                            \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                          \
+  if (::testing::internal::TrueWithString gtest_msg{}) {                 \
+    try {                                                                \
+      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);         \
+    }                                                                    \
+    GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_()                           \
+    catch (...) {                                                        \
+      gtest_msg.value = "it throws.";                                    \
+      goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__);      \
+    }                                                                    \
+  } else                                                                 \
+    GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__)              \
+        : fail(("Expected: " #statement " doesn't throw an exception.\n" \
+                "  Actual: " +                                           \
+                gtest_msg.value)                                         \
+                   .c_str())
 
-#define GTEST_TEST_ANY_THROW_(statement, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (::testing::internal::AlwaysTrue()) { \
-    bool gtest_caught_any = false; \
-    try { \
-      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-    } \
-    catch (...) { \
-      gtest_caught_any = true; \
-    } \
-    if (!gtest_caught_any) { \
+#define GTEST_TEST_ANY_THROW_(statement, fail)                       \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                      \
+  if (::testing::internal::AlwaysTrue()) {                           \
+    bool gtest_caught_any = false;                                   \
+    try {                                                            \
+      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);     \
+    } catch (...) {                                                  \
+      gtest_caught_any = true;                                       \
+    }                                                                \
+    if (!gtest_caught_any) {                                         \
       goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \
-    } \
-  } else \
-    GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \
-      fail("Expected: " #statement " throws an exception.\n" \
-           "  Actual: it doesn't.")
-
+    }                                                                \
+  } else                                                             \
+    GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__)         \
+        : fail("Expected: " #statement                               \
+               " throws an exception.\n"                             \
+               "  Actual: it doesn't.")
 
 // Implements Boolean test assertions such as EXPECT_TRUE. expression can be
 // either a boolean expression or an AssertionResult. text is a textual
 // representation of expression as it was passed into the EXPECT_TRUE.
 #define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (const ::testing::AssertionResult gtest_ar_ = \
-      ::testing::AssertionResult(expression)) \
-    ; \
-  else \
-    fail(::testing::internal::GetBoolAssertionFailureMessage(\
-        gtest_ar_, text, #actual, #expected).c_str())
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                       \
+  if (const ::testing::AssertionResult gtest_ar_ =                    \
+          ::testing::AssertionResult(expression))                     \
+    ;                                                                 \
+  else                                                                \
+    fail(::testing::internal::GetBoolAssertionFailureMessage(         \
+             gtest_ar_, text, #actual, #expected)                     \
+             .c_str())
 
-#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (::testing::internal::AlwaysTrue()) { \
-    ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \
-    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-    if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \
+#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail)               \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                     \
+  if (::testing::internal::AlwaysTrue()) {                          \
+    const ::testing::internal::HasNewFatalFailureHelper             \
+        gtest_fatal_failure_checker;                                \
+    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);      \
+    if (gtest_fatal_failure_checker.has_new_fatal_failure()) {      \
       goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \
-    } \
-  } else \
-    GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \
-      fail("Expected: " #statement " doesn't generate new fatal " \
-           "failures in the current thread.\n" \
-           "  Actual: it does.")
+    }                                                               \
+  } else /* NOLINT */                                               \
+    GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__)         \
+        : fail("Expected: " #statement                              \
+               " doesn't generate new fatal "                       \
+               "failures in the current thread.\n"                  \
+               "  Actual: it does.")
 
 // Expands to the name of the class that implements the given test.
 #define GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \
   test_suite_name##_##test_name##_Test
 
 // Helper macro for defining tests.
-#define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id)      \
-  static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1,                \
-                "test_suite_name must not be empty");                         \
-  static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1,                      \
-                "test_name must not be empty");                               \
-  class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                    \
-      : public parent_class {                                                 \
-   public:                                                                    \
-    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default;           \
-    ~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default; \
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name,   \
-                                                           test_name));       \
-    GTEST_DISALLOW_MOVE_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name,   \
-                                                           test_name));       \
-                                                                              \
-   private:                                                                   \
-    void TestBody() override;                                                 \
-    static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;     \
-  };                                                                          \
-                                                                              \
-  ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name,          \
-                                                    test_name)::test_info_ =  \
-      ::testing::internal::MakeAndRegisterTestInfo(                           \
-          #test_suite_name, #test_name, nullptr, nullptr,                     \
-          ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id), \
-          ::testing::internal::SuiteApiResolver<                              \
-              parent_class>::GetSetUpCaseOrSuite(__FILE__, __LINE__),         \
-          ::testing::internal::SuiteApiResolver<                              \
-              parent_class>::GetTearDownCaseOrSuite(__FILE__, __LINE__),      \
-          new ::testing::internal::TestFactoryImpl<GTEST_TEST_CLASS_NAME_(    \
-              test_suite_name, test_name)>);                                  \
+#define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id)       \
+  static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1,                 \
+                "test_suite_name must not be empty");                          \
+  static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1,                       \
+                "test_name must not be empty");                                \
+  class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                     \
+      : public parent_class {                                                  \
+   public:                                                                     \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default;            \
+    ~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default;  \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                         \
+    (const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) &) = delete;     \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) & operator=(            \
+        const GTEST_TEST_CLASS_NAME_(test_suite_name,                          \
+                                     test_name) &) = delete; /* NOLINT */      \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                         \
+    (GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) &&) noexcept = delete; \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) & operator=(            \
+        GTEST_TEST_CLASS_NAME_(test_suite_name,                                \
+                               test_name) &&) noexcept = delete; /* NOLINT */  \
+                                                                               \
+   private:                                                                    \
+    void TestBody() override;                                                  \
+    static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;      \
+  };                                                                           \
+                                                                               \
+  ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name,           \
+                                                    test_name)::test_info_ =   \
+      ::testing::internal::MakeAndRegisterTestInfo(                            \
+          #test_suite_name, #test_name, nullptr, nullptr,                      \
+          ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id),  \
+          ::testing::internal::SuiteApiResolver<                               \
+              parent_class>::GetSetUpCaseOrSuite(__FILE__, __LINE__),          \
+          ::testing::internal::SuiteApiResolver<                               \
+              parent_class>::GetTearDownCaseOrSuite(__FILE__, __LINE__),       \
+          new ::testing::internal::TestFactoryImpl<GTEST_TEST_CLASS_NAME_(     \
+              test_suite_name, test_name)>);                                   \
   void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody()
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h
index 3e49a6b..dd39e98 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h
@@ -27,10 +27,11 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-
 // Type and function utilities for implementing parameterized tests.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
@@ -39,26 +40,28 @@
 
 #include <cassert>
 #include <iterator>
+#include <map>
 #include <memory>
+#include <ostream>
 #include <set>
+#include <string>
 #include <tuple>
 #include <type_traits>
 #include <utility>
 #include <vector>
 
-#include "gtest/internal/gtest-internal.h"
-#include "gtest/internal/gtest-port.h"
 #include "gtest/gtest-printers.h"
 #include "gtest/gtest-test-part.h"
+#include "gtest/internal/gtest-internal.h"
+#include "gtest/internal/gtest-port.h"
 
 namespace testing {
 // Input to a parameterized test name generator, describing a test parameter.
 // Consists of the parameter value and the integer parameter index.
 template <class ParamType>
 struct TestParamInfo {
-  TestParamInfo(const ParamType& a_param, size_t an_index) :
-    param(a_param),
-    index(an_index) {}
+  TestParamInfo(const ParamType& a_param, size_t an_index)
+      : param(a_param), index(an_index) {}
   ParamType param;
   size_t index;
 };
@@ -84,15 +87,17 @@
 GTEST_API_ void ReportInvalidTestSuiteType(const char* test_suite_name,
                                            CodeLocation code_location);
 
-template <typename> class ParamGeneratorInterface;
-template <typename> class ParamGenerator;
+template <typename>
+class ParamGeneratorInterface;
+template <typename>
+class ParamGenerator;
 
 // Interface for iterating over elements provided by an implementation
 // of ParamGeneratorInterface<T>.
 template <typename T>
 class ParamIteratorInterface {
  public:
-  virtual ~ParamIteratorInterface() {}
+  virtual ~ParamIteratorInterface() = default;
   // A pointer to the base generator instance.
   // Used only for the purposes of iterator comparison
   // to make sure that two iterators belong to the same generator.
@@ -129,8 +134,7 @@
   // ParamIterator assumes ownership of the impl_ pointer.
   ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {}
   ParamIterator& operator=(const ParamIterator& other) {
-    if (this != &other)
-      impl_.reset(other.impl_->Clone());
+    if (this != &other) impl_.reset(other.impl_->Clone());
     return *this;
   }
 
@@ -157,7 +161,7 @@
  private:
   friend class ParamGenerator<T>;
   explicit ParamIterator(ParamIteratorInterface<T>* impl) : impl_(impl) {}
-  std::unique_ptr<ParamIteratorInterface<T> > impl_;
+  std::unique_ptr<ParamIteratorInterface<T>> impl_;
 };
 
 // ParamGeneratorInterface<T> is the binary interface to access generators
@@ -167,7 +171,7 @@
  public:
   typedef T ParamType;
 
-  virtual ~ParamGeneratorInterface() {}
+  virtual ~ParamGeneratorInterface() = default;
 
   // Generator interface definition
   virtual ParamIteratorInterface<T>* Begin() const = 0;
@@ -179,7 +183,7 @@
 // This class implements copy initialization semantics and the contained
 // ParamGeneratorInterface<T> instance is shared among all copies
 // of the original object. This is possible because that instance is immutable.
-template<typename T>
+template <typename T>
 class ParamGenerator {
  public:
   typedef ParamIterator<T> iterator;
@@ -196,7 +200,7 @@
   iterator end() const { return iterator(impl_->End()); }
 
  private:
-  std::shared_ptr<const ParamGeneratorInterface<T> > impl_;
+  std::shared_ptr<const ParamGeneratorInterface<T>> impl_;
 };
 
 // Generates values from a range of two comparable values. Can be used to
@@ -207,9 +211,11 @@
 class RangeGenerator : public ParamGeneratorInterface<T> {
  public:
   RangeGenerator(T begin, T end, IncrementT step)
-      : begin_(begin), end_(end),
-        step_(step), end_index_(CalculateEndIndex(begin, end, step)) {}
-  ~RangeGenerator() override {}
+      : begin_(begin),
+        end_(end),
+        step_(step),
+        end_index_(CalculateEndIndex(begin, end, step)) {}
+  ~RangeGenerator() override = default;
 
   ParamIteratorInterface<T>* Begin() const override {
     return new Iterator(this, begin_, 0, step_);
@@ -224,7 +230,7 @@
     Iterator(const ParamGeneratorInterface<T>* base, T value, int index,
              IncrementT step)
         : base_(base), value_(value), index_(index), step_(step) {}
-    ~Iterator() override {}
+    ~Iterator() override = default;
 
     const ParamGeneratorInterface<T>* BaseGenerator() const override {
       return base_;
@@ -251,7 +257,9 @@
    private:
     Iterator(const Iterator& other)
         : ParamIteratorInterface<T>(),
-          base_(other.base_), value_(other.value_), index_(other.index_),
+          base_(other.base_),
+          value_(other.value_),
+          index_(other.index_),
           step_(other.step_) {}
 
     // No implementation - assignment is unsupported.
@@ -263,12 +271,10 @@
     const IncrementT step_;
   };  // class RangeGenerator::Iterator
 
-  static int CalculateEndIndex(const T& begin,
-                               const T& end,
+  static int CalculateEndIndex(const T& begin, const T& end,
                                const IncrementT& step) {
     int end_index = 0;
-    for (T i = begin; i < end; i = static_cast<T>(i + step))
-      end_index++;
+    for (T i = begin; i < end; i = static_cast<T>(i + step)) end_index++;
     return end_index;
   }
 
@@ -283,7 +289,6 @@
   const int end_index_;
 };  // class RangeGenerator
 
-
 // Generates values from a pair of STL-style iterators. Used in the
 // ValuesIn() function. The elements are copied from the source range
 // since the source can be located on the stack, and the generator
@@ -294,7 +299,7 @@
   template <typename ForwardIterator>
   ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end)
       : container_(begin, end) {}
-  ~ValuesInIteratorRangeGenerator() override {}
+  ~ValuesInIteratorRangeGenerator() override = default;
 
   ParamIteratorInterface<T>* Begin() const override {
     return new Iterator(this, container_.begin());
@@ -311,7 +316,7 @@
     Iterator(const ParamGeneratorInterface<T>* base,
              typename ContainerType::const_iterator iterator)
         : base_(base), iterator_(iterator) {}
-    ~Iterator() override {}
+    ~Iterator() override = default;
 
     const ParamGeneratorInterface<T>* BaseGenerator() const override {
       return base_;
@@ -341,13 +346,13 @@
           << "The program attempted to compare iterators "
           << "from different generators." << std::endl;
       return iterator_ ==
-          CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
+             CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
     }
 
    private:
     Iterator(const Iterator& other)
-          // The explicit constructor call suppresses a false warning
-          // emitted by gcc when supplied with the -Wextra option.
+        // The explicit constructor call suppresses a false warning
+        // emitted by gcc when supplied with the -Wextra option.
         : ParamIteratorInterface<T>(),
           base_(other.base_),
           iterator_(other.iterator_) {}
@@ -394,8 +399,8 @@
 class ParameterizedTestFactory : public TestFactoryBase {
  public:
   typedef typename TestClass::ParamType ParamType;
-  explicit ParameterizedTestFactory(ParamType parameter) :
-      parameter_(parameter) {}
+  explicit ParameterizedTestFactory(ParamType parameter)
+      : parameter_(parameter) {}
   Test* CreateTest() override {
     TestClass::SetParam(&parameter_);
     return new TestClass();
@@ -404,7 +409,8 @@
  private:
   const ParamType parameter_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestFactory);
+  ParameterizedTestFactory(const ParameterizedTestFactory&) = delete;
+  ParameterizedTestFactory& operator=(const ParameterizedTestFactory&) = delete;
 };
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
@@ -414,7 +420,7 @@
 template <class ParamType>
 class TestMetaFactoryBase {
  public:
-  virtual ~TestMetaFactoryBase() {}
+  virtual ~TestMetaFactoryBase() = default;
 
   virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0;
 };
@@ -433,14 +439,15 @@
  public:
   using ParamType = typename TestSuite::ParamType;
 
-  TestMetaFactory() {}
+  TestMetaFactory() = default;
 
   TestFactoryBase* CreateTestFactory(ParamType parameter) override {
     return new ParameterizedTestFactory<TestSuite>(parameter);
   }
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestMetaFactory);
+  TestMetaFactory(const TestMetaFactory&) = delete;
+  TestMetaFactory& operator=(const TestMetaFactory&) = delete;
 };
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
@@ -455,7 +462,7 @@
 // and calls RegisterTests() on each of them when asked.
 class ParameterizedTestSuiteInfoBase {
  public:
-  virtual ~ParameterizedTestSuiteInfoBase() {}
+  virtual ~ParameterizedTestSuiteInfoBase() = default;
 
   // Base part of test suite name for display purposes.
   virtual const std::string& GetTestSuiteName() const = 0;
@@ -471,14 +478,17 @@
   ParameterizedTestSuiteInfoBase() {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfoBase);
+  ParameterizedTestSuiteInfoBase(const ParameterizedTestSuiteInfoBase&) =
+      delete;
+  ParameterizedTestSuiteInfoBase& operator=(
+      const ParameterizedTestSuiteInfoBase&) = delete;
 };
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
 //
 // Report a the name of a test_suit as safe to ignore
 // as the side effect of construction of this type.
-struct MarkAsIgnored {
+struct GTEST_API_ MarkAsIgnored {
   explicit MarkAsIgnored(const char* test_suite);
 };
 
@@ -547,8 +557,8 @@
          test_it != tests_.end(); ++test_it) {
       std::shared_ptr<TestInfo> test_info = *test_it;
       for (typename InstantiationContainer::iterator gen_it =
-               instantiations_.begin(); gen_it != instantiations_.end();
-               ++gen_it) {
+               instantiations_.begin();
+           gen_it != instantiations_.end(); ++gen_it) {
         const std::string& instantiation_name = gen_it->name;
         ParamGenerator<ParamType> generator((*gen_it->generator)());
         ParamNameGeneratorFunc* name_func = gen_it->name_func;
@@ -556,7 +566,7 @@
         int line = gen_it->line;
 
         std::string test_suite_name;
-        if ( !instantiation_name.empty() )
+        if (!instantiation_name.empty())
           test_suite_name = instantiation_name + "/";
         test_suite_name += test_info->test_suite_base_name;
 
@@ -569,17 +579,18 @@
 
           Message test_name_stream;
 
-          std::string param_name = name_func(
-              TestParamInfo<ParamType>(*param_it, i));
+          std::string param_name =
+              name_func(TestParamInfo<ParamType>(*param_it, i));
 
           GTEST_CHECK_(IsValidParamName(param_name))
               << "Parameterized test name '" << param_name
-              << "' is invalid, in " << file
-              << " line " << line << std::endl;
+              << "' is invalid (contains spaces, dashes, underscores, or "
+                 "non-alphanumeric characters), in "
+              << file << " line " << line << "" << std::endl;
 
           GTEST_CHECK_(test_param_names.count(param_name) == 0)
-              << "Duplicate parameterized test name '" << param_name
-              << "', in " << file << " line " << line << std::endl;
+              << "Duplicate parameterized test name '" << param_name << "', in "
+              << file << " line " << line << std::endl;
 
           test_param_names.insert(param_name);
 
@@ -596,15 +607,15 @@
               SuiteApiResolver<TestSuite>::GetTearDownCaseOrSuite(file, line),
               test_info->test_meta_factory->CreateTestFactory(*param_it));
         }  // for param_it
-      }  // for gen_it
-    }  // for test_it
+      }    // for gen_it
+    }      // for test_it
 
     if (!generated_instantiations) {
       // There are no generaotrs, or they all generate nothing ...
       InsertSyntheticTestCase(GetTestSuiteName(), code_location_,
                               !tests_.empty());
     }
-  }    // RegisterTests
+  }  // RegisterTests
 
  private:
   // LocalTestInfo structure keeps information about a single test registered
@@ -620,42 +631,39 @@
 
     const std::string test_suite_base_name;
     const std::string test_base_name;
-    const std::unique_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
+    const std::unique_ptr<TestMetaFactoryBase<ParamType>> test_meta_factory;
     const CodeLocation code_location;
   };
-  using TestInfoContainer = ::std::vector<std::shared_ptr<TestInfo> >;
+  using TestInfoContainer = ::std::vector<std::shared_ptr<TestInfo>>;
   // Records data received from INSTANTIATE_TEST_SUITE_P macros:
   //  <Instantiation name, Sequence generator creation function,
   //     Name generator function, Source file, Source line>
   struct InstantiationInfo {
-      InstantiationInfo(const std::string &name_in,
-                        GeneratorCreationFunc* generator_in,
-                        ParamNameGeneratorFunc* name_func_in,
-                        const char* file_in,
-                        int line_in)
-          : name(name_in),
-            generator(generator_in),
-            name_func(name_func_in),
-            file(file_in),
-            line(line_in) {}
+    InstantiationInfo(const std::string& name_in,
+                      GeneratorCreationFunc* generator_in,
+                      ParamNameGeneratorFunc* name_func_in, const char* file_in,
+                      int line_in)
+        : name(name_in),
+          generator(generator_in),
+          name_func(name_func_in),
+          file(file_in),
+          line(line_in) {}
 
-      std::string name;
-      GeneratorCreationFunc* generator;
-      ParamNameGeneratorFunc* name_func;
-      const char* file;
-      int line;
+    std::string name;
+    GeneratorCreationFunc* generator;
+    ParamNameGeneratorFunc* name_func;
+    const char* file;
+    int line;
   };
   typedef ::std::vector<InstantiationInfo> InstantiationContainer;
 
   static bool IsValidParamName(const std::string& name) {
     // Check for empty string
-    if (name.empty())
-      return false;
+    if (name.empty()) return false;
 
     // Check for invalid characters
     for (std::string::size_type index = 0; index < name.size(); ++index) {
-      if (!isalnum(name[index]) && name[index] != '_')
-        return false;
+      if (!IsAlNum(name[index]) && name[index] != '_') return false;
     }
 
     return true;
@@ -666,7 +674,9 @@
   TestInfoContainer tests_;
   InstantiationContainer instantiations_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfo);
+  ParameterizedTestSuiteInfo(const ParameterizedTestSuiteInfo&) = delete;
+  ParameterizedTestSuiteInfo& operator=(const ParameterizedTestSuiteInfo&) =
+      delete;
 };  // class ParameterizedTestSuiteInfo
 
 //  Legacy API is deprecated but still available
@@ -683,7 +693,7 @@
 // ParameterizedTestSuiteInfo descriptors.
 class ParameterizedTestSuiteRegistry {
  public:
-  ParameterizedTestSuiteRegistry() {}
+  ParameterizedTestSuiteRegistry() = default;
   ~ParameterizedTestSuiteRegistry() {
     for (auto& test_suite_info : test_suite_infos_) {
       delete test_suite_info;
@@ -709,7 +719,7 @@
           // type we are looking for, so we downcast it to that type
           // without further checks.
           typed_test_info = CheckedDowncastToActualType<
-              ParameterizedTestSuiteInfo<TestSuite> >(test_suite_info);
+              ParameterizedTestSuiteInfo<TestSuite>>(test_suite_info);
         }
         break;
       }
@@ -741,7 +751,10 @@
 
   TestSuiteInfoContainer test_suite_infos_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteRegistry);
+  ParameterizedTestSuiteRegistry(const ParameterizedTestSuiteRegistry&) =
+      delete;
+  ParameterizedTestSuiteRegistry& operator=(
+      const ParameterizedTestSuiteRegistry&) = delete;
 };
 
 // Keep track of what type-parameterized test suite are defined and
@@ -783,10 +796,7 @@
 namespace internal {
 // Used in the Values() function to provide polymorphic capabilities.
 
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable : 4100)
-#endif
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4100)
 
 template <typename... Ts>
 class ValueArray {
@@ -807,9 +817,7 @@
   FlatTuple<Ts...> v_;
 };
 
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4100
 
 template <typename... T>
 class CartesianProductGenerator
@@ -819,7 +827,7 @@
 
   CartesianProductGenerator(const std::tuple<ParamGenerator<T>...>& g)
       : generators_(g) {}
-  ~CartesianProductGenerator() override {}
+  ~CartesianProductGenerator() override = default;
 
   ParamIteratorInterface<ParamType>* Begin() const override {
     return new Iterator(this, generators_, false);
@@ -836,14 +844,15 @@
       : public ParamIteratorInterface<ParamType> {
    public:
     IteratorImpl(const ParamGeneratorInterface<ParamType>* base,
-             const std::tuple<ParamGenerator<T>...>& generators, bool is_end)
+                 const std::tuple<ParamGenerator<T>...>& generators,
+                 bool is_end)
         : base_(base),
           begin_(std::get<I>(generators).begin()...),
           end_(std::get<I>(generators).end()...),
           current_(is_end ? end_ : begin_) {
       ComputeCurrentValue();
     }
-    ~IteratorImpl() override {}
+    ~IteratorImpl() override = default;
 
     const ParamGeneratorInterface<ParamType>* BaseGenerator() const override {
       return base_;
@@ -941,6 +950,78 @@
   std::tuple<Gen...> generators_;
 };
 
+template <typename From, typename To>
+class ParamGeneratorConverter : public ParamGeneratorInterface<To> {
+ public:
+  ParamGeneratorConverter(ParamGenerator<From> gen)  // NOLINT
+      : generator_(std::move(gen)) {}
+
+  ParamIteratorInterface<To>* Begin() const override {
+    return new Iterator(this, generator_.begin(), generator_.end());
+  }
+  ParamIteratorInterface<To>* End() const override {
+    return new Iterator(this, generator_.end(), generator_.end());
+  }
+
+ private:
+  class Iterator : public ParamIteratorInterface<To> {
+   public:
+    Iterator(const ParamGeneratorInterface<To>* base, ParamIterator<From> it,
+             ParamIterator<From> end)
+        : base_(base), it_(it), end_(end) {
+      if (it_ != end_) value_ = std::make_shared<To>(static_cast<To>(*it_));
+    }
+    ~Iterator() override = default;
+
+    const ParamGeneratorInterface<To>* BaseGenerator() const override {
+      return base_;
+    }
+    void Advance() override {
+      ++it_;
+      if (it_ != end_) value_ = std::make_shared<To>(static_cast<To>(*it_));
+    }
+    ParamIteratorInterface<To>* Clone() const override {
+      return new Iterator(*this);
+    }
+    const To* Current() const override { return value_.get(); }
+    bool Equals(const ParamIteratorInterface<To>& other) const override {
+      // Having the same base generator guarantees that the other
+      // iterator is of the same type and we can downcast.
+      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
+          << "The program attempted to compare iterators "
+          << "from different generators." << std::endl;
+      const ParamIterator<From> other_it =
+          CheckedDowncastToActualType<const Iterator>(&other)->it_;
+      return it_ == other_it;
+    }
+
+   private:
+    Iterator(const Iterator& other) = default;
+
+    const ParamGeneratorInterface<To>* const base_;
+    ParamIterator<From> it_;
+    ParamIterator<From> end_;
+    std::shared_ptr<To> value_;
+  };  // class ParamGeneratorConverter::Iterator
+
+  ParamGenerator<From> generator_;
+};  // class ParamGeneratorConverter
+
+template <class Gen>
+class ParamConverterGenerator {
+ public:
+  ParamConverterGenerator(ParamGenerator<Gen> g)  // NOLINT
+      : generator_(std::move(g)) {}
+
+  template <typename T>
+  operator ParamGenerator<T>() const {  // NOLINT
+    return ParamGenerator<T>(new ParamGeneratorConverter<Gen, T>(generator_));
+  }
+
+ private:
+  ParamGenerator<Gen> generator_;
+};
+
 }  // namespace internal
 }  // namespace testing
 
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h
index dd84591..3162f2b 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the GTEST_OS_* macro.
@@ -37,70 +37,72 @@
 
 // Determines the platform on which Google Test is compiled.
 #ifdef __CYGWIN__
-# define GTEST_OS_CYGWIN 1
-# elif defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__)
-#  define GTEST_OS_WINDOWS_MINGW 1
-#  define GTEST_OS_WINDOWS 1
+#define GTEST_OS_CYGWIN 1
+#elif defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__)
+#define GTEST_OS_WINDOWS_MINGW 1
+#define GTEST_OS_WINDOWS 1
 #elif defined _WIN32
-# define GTEST_OS_WINDOWS 1
-# ifdef _WIN32_WCE
-#  define GTEST_OS_WINDOWS_MOBILE 1
-# elif defined(WINAPI_FAMILY)
-#  include <winapifamily.h>
-#  if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
-#   define GTEST_OS_WINDOWS_DESKTOP 1
-#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
-#   define GTEST_OS_WINDOWS_PHONE 1
-#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-#   define GTEST_OS_WINDOWS_RT 1
-#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE)
-#   define GTEST_OS_WINDOWS_PHONE 1
-#   define GTEST_OS_WINDOWS_TV_TITLE 1
-#  else
-    // WINAPI_FAMILY defined but no known partition matched.
-    // Default to desktop.
-#   define GTEST_OS_WINDOWS_DESKTOP 1
-#  endif
-# else
-#  define GTEST_OS_WINDOWS_DESKTOP 1
-# endif  // _WIN32_WCE
+#define GTEST_OS_WINDOWS 1
+#ifdef _WIN32_WCE
+#define GTEST_OS_WINDOWS_MOBILE 1
+#elif defined(WINAPI_FAMILY)
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#define GTEST_OS_WINDOWS_DESKTOP 1
+#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
+#define GTEST_OS_WINDOWS_PHONE 1
+#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#define GTEST_OS_WINDOWS_RT 1
+#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE)
+#define GTEST_OS_WINDOWS_PHONE 1
+#define GTEST_OS_WINDOWS_TV_TITLE 1
+#else
+// WINAPI_FAMILY defined but no known partition matched.
+// Default to desktop.
+#define GTEST_OS_WINDOWS_DESKTOP 1
+#endif
+#else
+#define GTEST_OS_WINDOWS_DESKTOP 1
+#endif  // _WIN32_WCE
 #elif defined __OS2__
-# define GTEST_OS_OS2 1
+#define GTEST_OS_OS2 1
 #elif defined __APPLE__
-# define GTEST_OS_MAC 1
-# include <TargetConditionals.h>
-# if TARGET_OS_IPHONE
-#  define GTEST_OS_IOS 1
-# endif
+#define GTEST_OS_MAC 1
+#include <TargetConditionals.h>
+#if TARGET_OS_IPHONE
+#define GTEST_OS_IOS 1
+#endif
 #elif defined __DragonFly__
-# define GTEST_OS_DRAGONFLY 1
+#define GTEST_OS_DRAGONFLY 1
 #elif defined __FreeBSD__
-# define GTEST_OS_FREEBSD 1
+#define GTEST_OS_FREEBSD 1
 #elif defined __Fuchsia__
-# define GTEST_OS_FUCHSIA 1
+#define GTEST_OS_FUCHSIA 1
+#elif defined(__GNU__)
+#define GTEST_OS_GNU_HURD 1
 #elif defined(__GLIBC__) && defined(__FreeBSD_kernel__)
-# define GTEST_OS_GNU_KFREEBSD 1
+#define GTEST_OS_GNU_KFREEBSD 1
 #elif defined __linux__
-# define GTEST_OS_LINUX 1
-# if defined __ANDROID__
-#  define GTEST_OS_LINUX_ANDROID 1
-# endif
+#define GTEST_OS_LINUX 1
+#if defined __ANDROID__
+#define GTEST_OS_LINUX_ANDROID 1
+#endif
 #elif defined __MVS__
-# define GTEST_OS_ZOS 1
+#define GTEST_OS_ZOS 1
 #elif defined(__sun) && defined(__SVR4)
-# define GTEST_OS_SOLARIS 1
+#define GTEST_OS_SOLARIS 1
 #elif defined(_AIX)
-# define GTEST_OS_AIX 1
+#define GTEST_OS_AIX 1
 #elif defined(__hpux)
-# define GTEST_OS_HPUX 1
+#define GTEST_OS_HPUX 1
 #elif defined __native_client__
-# define GTEST_OS_NACL 1
+#define GTEST_OS_NACL 1
 #elif defined __NetBSD__
-# define GTEST_OS_NETBSD 1
+#define GTEST_OS_NETBSD 1
 #elif defined __OpenBSD__
-# define GTEST_OS_OPENBSD 1
+#define GTEST_OS_OPENBSD 1
 #elif defined __QNX__
-# define GTEST_OS_QNX 1
+#define GTEST_OS_QNX 1
 #elif defined(__HAIKU__)
 #define GTEST_OS_HAIKU 1
 #elif defined ESP8266
@@ -109,6 +111,12 @@
 #define GTEST_OS_ESP32 1
 #elif defined(__XTENSA__)
 #define GTEST_OS_XTENSA 1
+#elif defined(__hexagon__)
+#define GTEST_OS_QURT 1
+#elif defined(CPU_QN9090) || defined(CPU_QN9090HN)
+#define GTEST_OS_NXP_QN9090 1
+#elif defined(NRF52)
+#define GTEST_OS_NRF52 1
 #endif  // __CYGWIN__
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h
index 0953a78..daaaa74 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // Low-level types and utilities for porting Google Test to various
 // platforms.  All macros ending with _ and symbols defined in an
 // internal namespace are subject to change without notice.  Code
@@ -38,7 +38,9 @@
 // files are expected to #include this.  Therefore, it cannot #include
 // any other Google Test header.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
@@ -81,6 +83,8 @@
 //   GTEST_HAS_STD_WSTRING    - Define it to 1/0 to indicate that
 //                              std::wstring does/doesn't work (Google Test can
 //                              be used where std::wstring is unavailable).
+//   GTEST_HAS_FILE_SYSTEM    - Define it to 1/0 to indicate whether or not a
+//                              file system is/isn't available.
 //   GTEST_HAS_SEH            - Define it to 1/0 to indicate whether the
 //                              compiler supports Microsoft's "Structured
 //                              Exception Handling".
@@ -116,6 +120,7 @@
 //   GTEST_OS_DRAGONFLY - DragonFlyBSD
 //   GTEST_OS_FREEBSD  - FreeBSD
 //   GTEST_OS_FUCHSIA  - Fuchsia
+//   GTEST_OS_GNU_HURD - GNU/Hurd
 //   GTEST_OS_GNU_KFREEBSD - GNU/kFreeBSD
 //   GTEST_OS_HAIKU    - Haiku
 //   GTEST_OS_HPUX     - HP-UX
@@ -156,10 +161,10 @@
 // NOT define them.
 //
 // These macros are public so that portable tests can be written.
-// Such tests typically surround code using a feature with an #if
+// Such tests typically surround code using a feature with an #ifdef
 // which controls that code.  For example:
 //
-// #if GTEST_HAS_DEATH_TEST
+// #ifdef GTEST_HAS_DEATH_TEST
 //   EXPECT_DEATH(DoSomethingDeadly());
 // #endif
 //
@@ -167,12 +172,13 @@
 //   GTEST_HAS_TYPED_TEST   - typed tests
 //   GTEST_HAS_TYPED_TEST_P - type-parameterized tests
 //   GTEST_IS_THREADSAFE    - Google Test is thread-safe.
-//   GOOGLETEST_CM0007 DO NOT DELETE
+//   GTEST_USES_RE2         - the RE2 regular expression library is used
 //   GTEST_USES_POSIX_RE    - enhanced POSIX regex is used. Do not confuse with
 //                            GTEST_HAS_POSIX_RE (see above) which users can
 //                            define themselves.
 //   GTEST_USES_SIMPLE_RE   - our own simple regex is used;
 //                            the above RE\b(s) are mutually exclusive.
+//   GTEST_HAS_ABSL         - Google Test is compiled with Abseil.
 
 // Misc public macros
 // ------------------
@@ -190,10 +196,6 @@
 //   GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning.
 //   GTEST_ATTRIBUTE_UNUSED_  - declares that a class' instances or a
 //                              variable don't have to be used.
-//   GTEST_DISALLOW_ASSIGN_   - disables copy operator=.
-//   GTEST_DISALLOW_COPY_AND_ASSIGN_ - disables copy ctor and operator=.
-//   GTEST_DISALLOW_MOVE_ASSIGN_   - disables move operator=.
-//   GTEST_DISALLOW_MOVE_AND_ASSIGN_ - disables move ctor and operator=.
 //   GTEST_MUST_USE_RESULT_   - declares that a function's result must be used.
 //   GTEST_INTENTIONAL_CONST_COND_PUSH_ - start code section where MSVC C4127 is
 //                                        suppressed (constant conditional).
@@ -201,27 +203,39 @@
 //                                        is suppressed.
 //   GTEST_INTERNAL_HAS_ANY - for enabling UniversalPrinter<std::any> or
 //                            UniversalPrinter<absl::any> specializations.
+//                            Always defined to 0 or 1.
 //   GTEST_INTERNAL_HAS_OPTIONAL - for enabling UniversalPrinter<std::optional>
 //   or
 //                                 UniversalPrinter<absl::optional>
-//                                 specializations.
+//                                 specializations. Always defined to 0 or 1.
+//   GTEST_INTERNAL_HAS_STD_SPAN - for enabling UniversalPrinter<std::span>
+//                                 specializations. Always defined to 0 or 1
 //   GTEST_INTERNAL_HAS_STRING_VIEW - for enabling Matcher<std::string_view> or
 //                                    Matcher<absl::string_view>
-//                                    specializations.
+//                                    specializations. Always defined to 0 or 1.
 //   GTEST_INTERNAL_HAS_VARIANT - for enabling UniversalPrinter<std::variant> or
 //                                UniversalPrinter<absl::variant>
-//                                specializations.
+//                                specializations. Always defined to 0 or 1.
+//   GTEST_USE_OWN_FLAGFILE_FLAG_ - Always defined to 0 or 1.
+//   GTEST_HAS_CXXABI_H_ - Always defined to 0 or 1.
+//   GTEST_CAN_STREAM_RESULTS_ - Always defined to 0 or 1.
+//   GTEST_HAS_ALT_PATH_SEP_ - Always defined to 0 or 1.
+//   GTEST_WIDE_STRING_USES_UTF16_ - Always defined to 0 or 1.
+//   GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - Always defined to 0 or 1.
+//   GTEST_HAS_NOTIFICATION_- Always defined to 0 or 1.
 //
 // Synchronization:
 //   Mutex, MutexLock, ThreadLocal, GetThreadCount()
 //                            - synchronization primitives.
 //
 // Regular expressions:
-//   RE             - a simple regular expression class using the POSIX
-//                    Extended Regular Expression syntax on UNIX-like platforms
-//                    GOOGLETEST_CM0008 DO NOT DELETE
-//                    or a reduced regular exception syntax on other
-//                    platforms, including Windows.
+//   RE             - a simple regular expression class using
+//                     1) the RE2 syntax on all platforms when built with RE2
+//                        and Abseil as dependencies
+//                     2) the POSIX Extended Regular Expression syntax on
+//                        UNIX-like platforms,
+//                     3) A reduced regular exception syntax on other platforms,
+//                        including Windows.
 // Logging:
 //   GTEST_LOG_()   - logs messages at the specified severity level.
 //   LogToStderr()  - directs all log messages to stderr.
@@ -241,8 +255,6 @@
 //   BiggestInt     - the biggest signed integer type.
 //
 // Command-line utilities:
-//   GTEST_DECLARE_*()  - declares a flag.
-//   GTEST_DEFINE_*()   - defines a flag.
 //   GetInjectableArgvs() - returns the command line as a vector of strings.
 //
 // Environment variable utilities:
@@ -256,6 +268,35 @@
 //                                        deprecated; calling a marked function
 //                                        should generate a compiler warning
 
+// The definition of GTEST_INTERNAL_CPLUSPLUS_LANG comes first because it can
+// potentially be used as an #include guard.
+#if defined(_MSVC_LANG)
+#define GTEST_INTERNAL_CPLUSPLUS_LANG _MSVC_LANG
+#elif defined(__cplusplus)
+#define GTEST_INTERNAL_CPLUSPLUS_LANG __cplusplus
+#endif
+
+#if !defined(GTEST_INTERNAL_CPLUSPLUS_LANG) || \
+    GTEST_INTERNAL_CPLUSPLUS_LANG < 201402L
+#error C++ versions less than C++14 are not supported.
+#endif
+
+// MSVC >= 19.11 (VS 2017 Update 3) supports __has_include.
+#ifdef __has_include
+#define GTEST_INTERNAL_HAS_INCLUDE __has_include
+#else
+#define GTEST_INTERNAL_HAS_INCLUDE(...) 0
+#endif
+
+// Detect C++ feature test macros as gracefully as possible.
+// MSVC >= 19.15, Clang >= 3.4.1, and GCC >= 4.1.2 support feature test macros.
+#if GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L && \
+    (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE(<version>))
+#include <version>  // C++20 and later
+#elif (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE(<ciso646>))
+#include <ciso646>  // Pre-C++20
+#endif
+
 #include <ctype.h>   // for isspace, etc
 #include <stddef.h>  // for ptrdiff_t
 #include <stdio.h>
@@ -263,48 +304,64 @@
 #include <string.h>
 
 #include <cerrno>
+// #include <condition_variable>  // Guarded by GTEST_IS_THREADSAFE below
 #include <cstdint>
+#include <iostream>
 #include <limits>
+#include <locale>
+#include <memory>
+#include <ostream>
+#include <string>
+// #include <mutex>  // Guarded by GTEST_IS_THREADSAFE below
+#include <tuple>
 #include <type_traits>
+#include <vector>
 
 #ifndef _WIN32_WCE
-# include <sys/types.h>
-# include <sys/stat.h>
+#include <sys/stat.h>
+#include <sys/types.h>
 #endif  // !_WIN32_WCE
 
 #if defined __APPLE__
-# include <AvailabilityMacros.h>
-# include <TargetConditionals.h>
+#include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
 #endif
 
-#include <iostream>  // NOLINT
-#include <locale>
-#include <memory>
-#include <string>  // NOLINT
-#include <tuple>
-#include <vector>  // NOLINT
-
 #include "gtest/internal/custom/gtest-port.h"
 #include "gtest/internal/gtest-port-arch.h"
 
+#ifndef GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#define GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ 0
+#endif
+
+#ifndef GTEST_HAS_NOTIFICATION_
+#define GTEST_HAS_NOTIFICATION_ 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
+#include "absl/flags/declare.h"
+#include "absl/flags/flag.h"
+#include "absl/flags/reflection.h"
+#endif
+
 #if !defined(GTEST_DEV_EMAIL_)
-# define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
-# define GTEST_FLAG_PREFIX_ "gtest_"
-# define GTEST_FLAG_PREFIX_DASH_ "gtest-"
-# define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
-# define GTEST_NAME_ "Google Test"
-# define GTEST_PROJECT_URL_ "https://github.com/google/googletest/"
+#define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
+#define GTEST_FLAG_PREFIX_ "gtest_"
+#define GTEST_FLAG_PREFIX_DASH_ "gtest-"
+#define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
+#define GTEST_NAME_ "Google Test"
+#define GTEST_PROJECT_URL_ "https://github.com/google/googletest/"
 #endif  // !defined(GTEST_DEV_EMAIL_)
 
 #if !defined(GTEST_INIT_GOOGLE_TEST_NAME_)
-# define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest"
+#define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest"
 #endif  // !defined(GTEST_INIT_GOOGLE_TEST_NAME_)
 
 // Determines the version of gcc that is used to compile this.
 #ifdef __GNUC__
 // 40302 means version 4.3.2.
-# define GTEST_GCC_VER_ \
-    (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__)
+#define GTEST_GCC_VER_ \
+  (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 #endif  // __GNUC__
 
 // Macros for disabling Microsoft Visual C++ warnings.
@@ -313,43 +370,39 @@
 //   /* code that triggers warnings C4800 and C4385 */
 //   GTEST_DISABLE_MSC_WARNINGS_POP_()
 #if defined(_MSC_VER)
-# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \
-    __pragma(warning(push))                        \
-    __pragma(warning(disable: warnings))
-# define GTEST_DISABLE_MSC_WARNINGS_POP_()          \
-    __pragma(warning(pop))
+#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \
+  __pragma(warning(push)) __pragma(warning(disable : warnings))
+#define GTEST_DISABLE_MSC_WARNINGS_POP_() __pragma(warning(pop))
 #else
 // Not all compilers are MSVC
-# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
-# define GTEST_DISABLE_MSC_WARNINGS_POP_()
+#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
+#define GTEST_DISABLE_MSC_WARNINGS_POP_()
 #endif
 
 // Clang on Windows does not understand MSVC's pragma warning.
 // We need clang-specific way to disable function deprecation warning.
 #ifdef __clang__
-# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_()                         \
-    _Pragma("clang diagnostic push")                                  \
-    _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
-    _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"")
-#define GTEST_DISABLE_MSC_DEPRECATED_POP_() \
-    _Pragma("clang diagnostic pop")
+#define GTEST_DISABLE_MSC_DEPRECATED_PUSH_()                            \
+  _Pragma("clang diagnostic push")                                      \
+      _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
+          _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"")
+#define GTEST_DISABLE_MSC_DEPRECATED_POP_() _Pragma("clang diagnostic pop")
 #else
-# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \
-    GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
-# define GTEST_DISABLE_MSC_DEPRECATED_POP_() \
-    GTEST_DISABLE_MSC_WARNINGS_POP_()
+#define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \
+  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
+#define GTEST_DISABLE_MSC_DEPRECATED_POP_() GTEST_DISABLE_MSC_WARNINGS_POP_()
 #endif
 
 // Brings in definitions for functions used in the testing::internal::posix
 // namespace (read, write, close, chdir, isatty, stat). We do not currently
 // use them on Windows Mobile.
-#if GTEST_OS_WINDOWS
-# if !GTEST_OS_WINDOWS_MOBILE
-#  include <direct.h>
-#  include <io.h>
-# endif
+#ifdef GTEST_OS_WINDOWS
+#ifndef GTEST_OS_WINDOWS_MOBILE
+#include <direct.h>
+#include <io.h>
+#endif
 // In order to avoid having to include <windows.h>, use forward declaration
-#if GTEST_OS_WINDOWS_MINGW && !defined(__MINGW64_VERSION_MAJOR)
+#if defined(GTEST_OS_WINDOWS_MINGW) && !defined(__MINGW64_VERSION_MAJOR)
 // MinGW defined _CRITICAL_SECTION and _RTL_CRITICAL_SECTION as two
 // separate (equivalent) structs, instead of using typedef
 typedef struct _CRITICAL_SECTION GTEST_CRITICAL_SECTION;
@@ -359,7 +412,7 @@
 // WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION.
 typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
 #endif
-#elif GTEST_OS_XTENSA
+#elif defined(GTEST_OS_XTENSA)
 #include <unistd.h>
 // Xtensa toolchains define strcasecmp in the string.h header instead of
 // strings.h. string.h is already included.
@@ -367,68 +420,60 @@
 // This assumes that non-Windows OSes provide unistd.h. For OSes where this
 // is not the case, we need to include headers that provide the functions
 // mentioned above.
-# include <unistd.h>
-# include <strings.h>
+#include <strings.h>
+#include <unistd.h>
 #endif  // GTEST_OS_WINDOWS
 
-#if GTEST_OS_LINUX_ANDROID
+#ifdef GTEST_OS_LINUX_ANDROID
 // Used to define __ANDROID_API__ matching the target NDK API level.
-#  include <android/api-level.h>  // NOLINT
+#include <android/api-level.h>  // NOLINT
 #endif
 
 // Defines this to true if and only if Google Test can use POSIX regular
 // expressions.
 #ifndef GTEST_HAS_POSIX_RE
-# if GTEST_OS_LINUX_ANDROID
+#ifdef GTEST_OS_LINUX_ANDROID
 // On Android, <regex.h> is only available starting with Gingerbread.
-#  define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9)
-# else
-#define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS && !GTEST_OS_XTENSA)
-# endif
+#define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9)
+#else
+#if !(defined(GTEST_OS_WINDOWS) || defined(GTEST_OS_XTENSA) || \
+      defined(GTEST_OS_QURT))
+#define GTEST_HAS_POSIX_RE 1
+#else
+#define GTEST_HAS_POSIX_RE 0
+#endif
+#endif  // GTEST_OS_LINUX_ANDROID
 #endif
 
-#if GTEST_USES_PCRE
-// The appropriate headers have already been included.
-
+// Select the regular expression implementation.
+#ifdef GTEST_HAS_ABSL
+// When using Abseil, RE2 is required.
+#include "absl/strings/string_view.h"
+#include "re2/re2.h"
+#define GTEST_USES_RE2 1
 #elif GTEST_HAS_POSIX_RE
-
-// On some platforms, <regex.h> needs someone to define size_t, and
-// won't compile otherwise.  We can #include it here as we already
-// included <stdlib.h>, which is guaranteed to define size_t through
-// <stddef.h>.
-# include <regex.h>  // NOLINT
-
-# define GTEST_USES_POSIX_RE 1
-
-#elif GTEST_OS_WINDOWS
-
-// <regex.h> is not available on Windows.  Use our own simple regex
-// implementation instead.
-# define GTEST_USES_SIMPLE_RE 1
-
+#include <regex.h>  // NOLINT
+#define GTEST_USES_POSIX_RE 1
 #else
-
-// <regex.h> may not be available on this platform.  Use our own
-// simple regex implementation instead.
-# define GTEST_USES_SIMPLE_RE 1
-
-#endif  // GTEST_USES_PCRE
+// Use our own simple regex implementation.
+#define GTEST_USES_SIMPLE_RE 1
+#endif
 
 #ifndef GTEST_HAS_EXCEPTIONS
 // The user didn't tell us whether exceptions are enabled, so we need
 // to figure it out.
-# if defined(_MSC_VER) && defined(_CPPUNWIND)
+#if defined(_MSC_VER) && defined(_CPPUNWIND)
 // MSVC defines _CPPUNWIND to 1 if and only if exceptions are enabled.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__BORLANDC__)
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__BORLANDC__)
 // C++Builder's implementation of the STL uses the _HAS_EXCEPTIONS
 // macro to enable exceptions, so we'll do the same.
 // Assumes that exceptions are enabled by default.
-#  ifndef _HAS_EXCEPTIONS
-#   define _HAS_EXCEPTIONS 1
-#  endif  // _HAS_EXCEPTIONS
-#  define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
-# elif defined(__clang__)
+#ifndef _HAS_EXCEPTIONS
+#define _HAS_EXCEPTIONS 1
+#endif  // _HAS_EXCEPTIONS
+#define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
+#elif defined(__clang__)
 // clang defines __EXCEPTIONS if and only if exceptions are enabled before clang
 // 220714, but if and only if cleanups are enabled after that. In Obj-C++ files,
 // there can be cleanups for ObjC exceptions which also need cleanups, even if
@@ -437,27 +482,31 @@
 // cleanups prior to that. To reliably check for C++ exception availability with
 // clang, check for
 // __EXCEPTIONS && __has_feature(cxx_exceptions).
-#  define GTEST_HAS_EXCEPTIONS (__EXCEPTIONS && __has_feature(cxx_exceptions))
-# elif defined(__GNUC__) && __EXCEPTIONS
+#if defined(__EXCEPTIONS) && __EXCEPTIONS && __has_feature(cxx_exceptions)
+#define GTEST_HAS_EXCEPTIONS 1
+#else
+#define GTEST_HAS_EXCEPTIONS 0
+#endif
+#elif defined(__GNUC__) && defined(__EXCEPTIONS) && __EXCEPTIONS
 // gcc defines __EXCEPTIONS to 1 if and only if exceptions are enabled.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__SUNPRO_CC)
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__SUNPRO_CC)
 // Sun Pro CC supports exceptions.  However, there is no compile-time way of
 // detecting whether they are enabled or not.  Therefore, we assume that
 // they are enabled unless the user tells us otherwise.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__IBMCPP__) && __EXCEPTIONS
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__IBMCPP__) && defined(__EXCEPTIONS) && __EXCEPTIONS
 // xlC defines __EXCEPTIONS to 1 if and only if exceptions are enabled.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__HP_aCC)
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__HP_aCC)
 // Exception handling is in effect by default in HP aCC compiler. It has to
 // be turned of by +noeh compiler option if desired.
-#  define GTEST_HAS_EXCEPTIONS 1
-# else
+#define GTEST_HAS_EXCEPTIONS 1
+#else
 // For other compilers, we assume exceptions are disabled to be
 // conservative.
-#  define GTEST_HAS_EXCEPTIONS 0
-# endif  // defined(_MSC_VER) || defined(__BORLANDC__)
+#define GTEST_HAS_EXCEPTIONS 0
+#endif  // defined(_MSC_VER) || defined(__BORLANDC__)
 #endif  // GTEST_HAS_EXCEPTIONS
 
 #ifndef GTEST_HAS_STD_WSTRING
@@ -466,74 +515,84 @@
 // Cygwin 1.7 and below doesn't support ::std::wstring.
 // Solaris' libc++ doesn't support it either.  Android has
 // no support for it at least as recent as Froyo (2.2).
-#define GTEST_HAS_STD_WSTRING                                         \
-  (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \
-     GTEST_OS_HAIKU || GTEST_OS_ESP32 || GTEST_OS_ESP8266 || GTEST_OS_XTENSA))
-
+#if (!(defined(GTEST_OS_LINUX_ANDROID) || defined(GTEST_OS_CYGWIN) || \
+       defined(GTEST_OS_SOLARIS) || defined(GTEST_OS_HAIKU) ||        \
+       defined(GTEST_OS_ESP32) || defined(GTEST_OS_ESP8266) ||        \
+       defined(GTEST_OS_XTENSA) || defined(GTEST_OS_QURT) ||          \
+       defined(GTEST_OS_NXP_QN9090) || defined(GTEST_OS_NRF52)))
+#define GTEST_HAS_STD_WSTRING 1
+#else
+#define GTEST_HAS_STD_WSTRING 0
+#endif
 #endif  // GTEST_HAS_STD_WSTRING
 
+#ifndef GTEST_HAS_FILE_SYSTEM
+// Most platforms support a file system.
+#define GTEST_HAS_FILE_SYSTEM 1
+#endif  // GTEST_HAS_FILE_SYSTEM
+
 // Determines whether RTTI is available.
 #ifndef GTEST_HAS_RTTI
 // The user didn't tell us whether RTTI is enabled, so we need to
 // figure it out.
 
-# ifdef _MSC_VER
+#ifdef _MSC_VER
 
 #ifdef _CPPRTTI  // MSVC defines this macro if and only if RTTI is enabled.
-#   define GTEST_HAS_RTTI 1
-#  else
-#   define GTEST_HAS_RTTI 0
-#  endif
+#define GTEST_HAS_RTTI 1
+#else
+#define GTEST_HAS_RTTI 0
+#endif
 
 // Starting with version 4.3.2, gcc defines __GXX_RTTI if and only if RTTI is
 // enabled.
-# elif defined(__GNUC__)
+#elif defined(__GNUC__)
 
-#  ifdef __GXX_RTTI
+#ifdef __GXX_RTTI
 // When building against STLport with the Android NDK and with
 // -frtti -fno-exceptions, the build fails at link time with undefined
 // references to __cxa_bad_typeid. Note sure if STL or toolchain bug,
 // so disable RTTI when detected.
-#   if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \
-       !defined(__EXCEPTIONS)
-#    define GTEST_HAS_RTTI 0
-#   else
-#    define GTEST_HAS_RTTI 1
-#   endif  // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS
-#  else
-#   define GTEST_HAS_RTTI 0
-#  endif  // __GXX_RTTI
+#if defined(GTEST_OS_LINUX_ANDROID) && defined(_STLPORT_MAJOR) && \
+    !defined(__EXCEPTIONS)
+#define GTEST_HAS_RTTI 0
+#else
+#define GTEST_HAS_RTTI 1
+#endif  // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS
+#else
+#define GTEST_HAS_RTTI 0
+#endif  // __GXX_RTTI
 
 // Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends
 // using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the
 // first version with C++ support.
-# elif defined(__clang__)
+#elif defined(__clang__)
 
-#  define GTEST_HAS_RTTI __has_feature(cxx_rtti)
+#define GTEST_HAS_RTTI __has_feature(cxx_rtti)
 
 // Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if
 // both the typeid and dynamic_cast features are present.
-# elif defined(__IBMCPP__) && (__IBMCPP__ >= 900)
+#elif defined(__IBMCPP__) && (__IBMCPP__ >= 900)
 
-#  ifdef __RTTI_ALL__
-#   define GTEST_HAS_RTTI 1
-#  else
-#   define GTEST_HAS_RTTI 0
-#  endif
+#ifdef __RTTI_ALL__
+#define GTEST_HAS_RTTI 1
+#else
+#define GTEST_HAS_RTTI 0
+#endif
 
-# else
+#else
 
 // For all other compilers, we assume RTTI is enabled.
-#  define GTEST_HAS_RTTI 1
+#define GTEST_HAS_RTTI 1
 
-# endif  // _MSC_VER
+#endif  // _MSC_VER
 
 #endif  // GTEST_HAS_RTTI
 
 // It's this header's responsibility to #include <typeinfo> when RTTI
 // is enabled.
 #if GTEST_HAS_RTTI
-# include <typeinfo>
+#include <typeinfo>
 #endif
 
 // Determines whether Google Test can use the pthreads library.
@@ -543,47 +602,52 @@
 //
 // To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0
 // to your compiler flags.
-#define GTEST_HAS_PTHREAD                                                      \
-  (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX || GTEST_OS_QNX ||          \
-   GTEST_OS_FREEBSD || GTEST_OS_NACL || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \
-   GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_OPENBSD ||          \
-   GTEST_OS_HAIKU)
+#if (defined(GTEST_OS_LINUX) || defined(GTEST_OS_MAC) ||              \
+     defined(GTEST_OS_HPUX) || defined(GTEST_OS_QNX) ||               \
+     defined(GTEST_OS_FREEBSD) || defined(GTEST_OS_NACL) ||           \
+     defined(GTEST_OS_NETBSD) || defined(GTEST_OS_FUCHSIA) ||         \
+     defined(GTEST_OS_DRAGONFLY) || defined(GTEST_OS_GNU_KFREEBSD) || \
+     defined(GTEST_OS_OPENBSD) || defined(GTEST_OS_HAIKU) ||          \
+     defined(GTEST_OS_GNU_HURD))
+#define GTEST_HAS_PTHREAD 1
+#else
+#define GTEST_HAS_PTHREAD 0
+#endif
 #endif  // GTEST_HAS_PTHREAD
 
 #if GTEST_HAS_PTHREAD
 // gtest-port.h guarantees to #include <pthread.h> when GTEST_HAS_PTHREAD is
 // true.
-# include <pthread.h>  // NOLINT
+#include <pthread.h>  // NOLINT
 
 // For timespec and nanosleep, used below.
-# include <time.h>  // NOLINT
+#include <time.h>  // NOLINT
 #endif
 
 // Determines whether clone(2) is supported.
 // Usually it will only be available on Linux, excluding
 // Linux on the Itanium architecture.
-// Also see http://linux.die.net/man/2/clone.
+// Also see https://linux.die.net/man/2/clone.
 #ifndef GTEST_HAS_CLONE
 // The user didn't tell us, so we need to figure it out.
 
-# if GTEST_OS_LINUX && !defined(__ia64__)
-#  if GTEST_OS_LINUX_ANDROID
+#if defined(GTEST_OS_LINUX) && !defined(__ia64__)
+#if defined(GTEST_OS_LINUX_ANDROID)
 // On Android, clone() became available at different API levels for each 32-bit
 // architecture.
-#    if defined(__LP64__) || \
-        (defined(__arm__) && __ANDROID_API__ >= 9) || \
-        (defined(__mips__) && __ANDROID_API__ >= 12) || \
-        (defined(__i386__) && __ANDROID_API__ >= 17)
-#     define GTEST_HAS_CLONE 1
-#    else
-#     define GTEST_HAS_CLONE 0
-#    endif
-#  else
-#   define GTEST_HAS_CLONE 1
-#  endif
-# else
-#  define GTEST_HAS_CLONE 0
-# endif  // GTEST_OS_LINUX && !defined(__ia64__)
+#if defined(__LP64__) || (defined(__arm__) && __ANDROID_API__ >= 9) || \
+    (defined(__mips__) && __ANDROID_API__ >= 12) ||                    \
+    (defined(__i386__) && __ANDROID_API__ >= 17)
+#define GTEST_HAS_CLONE 1
+#else
+#define GTEST_HAS_CLONE 0
+#endif
+#else
+#define GTEST_HAS_CLONE 1
+#endif
+#else
+#define GTEST_HAS_CLONE 0
+#endif  // GTEST_OS_LINUX && !defined(__ia64__)
 
 #endif  // GTEST_HAS_CLONE
 
@@ -591,24 +655,36 @@
 // output correctness and to implement death tests.
 #ifndef GTEST_HAS_STREAM_REDIRECTION
 // By default, we assume that stream redirection is supported on all
-// platforms except known mobile ones.
-#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \
-    GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_XTENSA
-#  define GTEST_HAS_STREAM_REDIRECTION 0
-# else
-#  define GTEST_HAS_STREAM_REDIRECTION 1
-# endif  // !GTEST_OS_WINDOWS_MOBILE
+// platforms except known mobile / embedded ones. Also, if the port doesn't have
+// a file system, stream redirection is not supported.
+#if defined(GTEST_OS_WINDOWS_MOBILE) || defined(GTEST_OS_WINDOWS_PHONE) || \
+    defined(GTEST_OS_WINDOWS_RT) || defined(GTEST_OS_ESP8266) ||           \
+    defined(GTEST_OS_XTENSA) || defined(GTEST_OS_QURT) ||                  \
+    !GTEST_HAS_FILE_SYSTEM
+#define GTEST_HAS_STREAM_REDIRECTION 0
+#else
+#define GTEST_HAS_STREAM_REDIRECTION 1
+#endif  // !GTEST_OS_WINDOWS_MOBILE
 #endif  // GTEST_HAS_STREAM_REDIRECTION
 
 // Determines whether to support death tests.
 // pops up a dialog window that cannot be suppressed programmatically.
-#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS ||             \
-     (GTEST_OS_MAC && !GTEST_OS_IOS) ||                                   \
-     (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER) || GTEST_OS_WINDOWS_MINGW ||  \
-     GTEST_OS_AIX || GTEST_OS_HPUX || GTEST_OS_OPENBSD || GTEST_OS_QNX || \
-     GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA ||           \
-     GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_HAIKU)
-# define GTEST_HAS_DEATH_TEST 1
+#if (defined(GTEST_OS_LINUX) || defined(GTEST_OS_CYGWIN) ||           \
+     defined(GTEST_OS_SOLARIS) ||                                     \
+     (defined(GTEST_OS_MAC) && !defined(GTEST_OS_IOS)) ||             \
+     (defined(GTEST_OS_WINDOWS_DESKTOP) && _MSC_VER) ||               \
+     defined(GTEST_OS_WINDOWS_MINGW) || defined(GTEST_OS_AIX) ||      \
+     defined(GTEST_OS_HPUX) || defined(GTEST_OS_OPENBSD) ||           \
+     defined(GTEST_OS_QNX) || defined(GTEST_OS_FREEBSD) ||            \
+     defined(GTEST_OS_NETBSD) || defined(GTEST_OS_FUCHSIA) ||         \
+     defined(GTEST_OS_DRAGONFLY) || defined(GTEST_OS_GNU_KFREEBSD) || \
+     defined(GTEST_OS_HAIKU) || defined(GTEST_OS_GNU_HURD))
+// Death tests require a file system to work properly.
+// Android local change: Trusty force-disables stream redirection, which is also
+// required for death tests.
+#if GTEST_HAS_FILE_SYSTEM && GTEST_HAS_STREAM_REDIRECTION
+#define GTEST_HAS_DEATH_TEST 1
+#endif  // GTEST_HAS_FILE_SYSTEM
 #endif
 
 // Determines whether to support type-driven tests.
@@ -617,18 +693,26 @@
 // Sun Pro CC, IBM Visual Age, and HP aCC support.
 #if defined(__GNUC__) || defined(_MSC_VER) || defined(__SUNPRO_CC) || \
     defined(__IBMCPP__) || defined(__HP_aCC)
-# define GTEST_HAS_TYPED_TEST 1
-# define GTEST_HAS_TYPED_TEST_P 1
+#define GTEST_HAS_TYPED_TEST 1
+#define GTEST_HAS_TYPED_TEST_P 1
 #endif
 
 // Determines whether the system compiler uses UTF-16 for encoding wide strings.
-#define GTEST_WIDE_STRING_USES_UTF16_ \
-  (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_AIX || GTEST_OS_OS2)
+#if defined(GTEST_OS_WINDOWS) || defined(GTEST_OS_CYGWIN) || \
+    defined(GTEST_OS_AIX) || defined(GTEST_OS_OS2)
+#define GTEST_WIDE_STRING_USES_UTF16_ 1
+#else
+#define GTEST_WIDE_STRING_USES_UTF16_ 0
+#endif
 
 // Determines whether test results can be streamed to a socket.
-#if GTEST_OS_LINUX || GTEST_OS_GNU_KFREEBSD || GTEST_OS_DRAGONFLY || \
-    GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_OPENBSD
-# define GTEST_CAN_STREAM_RESULTS_ 1
+#if defined(GTEST_OS_LINUX) || defined(GTEST_OS_GNU_KFREEBSD) || \
+    defined(GTEST_OS_DRAGONFLY) || defined(GTEST_OS_FREEBSD) ||  \
+    defined(GTEST_OS_NETBSD) || defined(GTEST_OS_OPENBSD) ||     \
+    defined(GTEST_OS_GNU_HURD) || defined(GTEST_OS_MAC)
+#define GTEST_CAN_STREAM_RESULTS_ 1
+#else
+#define GTEST_CAN_STREAM_RESULTS_ 0
 #endif
 
 // Defines some utility macros.
@@ -642,83 +726,75 @@
 //
 // The "switch (0) case 0:" idiom is used to suppress this.
 #ifdef __INTEL_COMPILER
-# define GTEST_AMBIGUOUS_ELSE_BLOCKER_
+#define GTEST_AMBIGUOUS_ELSE_BLOCKER_
 #else
-# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default:  // NOLINT
+#define GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
+  switch (0)                          \
+  case 0:                             \
+  default:  // NOLINT
 #endif
 
-// Use this annotation at the end of a struct/class definition to
-// prevent the compiler from optimizing away instances that are never
-// used.  This is useful when all interesting logic happens inside the
-// c'tor and / or d'tor.  Example:
+// GTEST_HAVE_ATTRIBUTE_
 //
-//   struct Foo {
-//     Foo() { ... }
-//   } GTEST_ATTRIBUTE_UNUSED_;
+// A function-like feature checking macro that is a wrapper around
+// `__has_attribute`, which is defined by GCC 5+ and Clang and evaluates to a
+// nonzero constant integer if the attribute is supported or 0 if not.
 //
-// Also use it after a variable or parameter declaration to tell the
-// compiler the variable/parameter does not have to be used.
-#if defined(__GNUC__) && !defined(COMPILER_ICC)
-# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused))
-#elif defined(__clang__)
-# if __has_attribute(unused)
-#  define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused))
-# endif
+// It evaluates to zero if `__has_attribute` is not defined by the compiler.
+//
+// GCC: https://gcc.gnu.org/gcc-5/changes.html
+// Clang: https://clang.llvm.org/docs/LanguageExtensions.html
+#ifdef __has_attribute
+#define GTEST_HAVE_ATTRIBUTE_(x) __has_attribute(x)
+#else
+#define GTEST_HAVE_ATTRIBUTE_(x) 0
 #endif
-#ifndef GTEST_ATTRIBUTE_UNUSED_
-# define GTEST_ATTRIBUTE_UNUSED_
+
+// GTEST_HAVE_FEATURE_
+//
+// A function-like feature checking macro that is a wrapper around
+// `__has_feature`.
+#ifdef __has_feature
+#define GTEST_HAVE_FEATURE_(x) __has_feature(x)
+#else
+#define GTEST_HAVE_FEATURE_(x) 0
+#endif
+
+// Use this annotation after a variable or parameter declaration to tell the
+// compiler the variable/parameter does not have to be used.
+// Example:
+//
+//   GTEST_ATTRIBUTE_UNUSED_ int foo = bar();
+#if GTEST_HAVE_ATTRIBUTE_(unused)
+#define GTEST_ATTRIBUTE_UNUSED_ __attribute__((unused))
+#else
+#define GTEST_ATTRIBUTE_UNUSED_
 #endif
 
 // Use this annotation before a function that takes a printf format string.
-#if (defined(__GNUC__) || defined(__clang__)) && !defined(COMPILER_ICC)
-# if defined(__MINGW_PRINTF_FORMAT)
+#if GTEST_HAVE_ATTRIBUTE_(format) && defined(__MINGW_PRINTF_FORMAT)
 // MinGW has two different printf implementations. Ensure the format macro
 // matches the selected implementation. See
 // https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/.
-#  define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
-       __attribute__((__format__(__MINGW_PRINTF_FORMAT, string_index, \
-                                 first_to_check)))
-# else
-#  define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
-       __attribute__((__format__(__printf__, string_index, first_to_check)))
-# endif
+#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
+  __attribute__((format(__MINGW_PRINTF_FORMAT, string_index, first_to_check)))
+#elif GTEST_HAVE_ATTRIBUTE_(format)
+#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
+  __attribute__((format(printf, string_index, first_to_check)))
 #else
-# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check)
+#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check)
 #endif
 
-
-// A macro to disallow copy operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_ASSIGN_(type) \
-  type& operator=(type const &) = delete
-
-// A macro to disallow copy constructor and operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
-  type(type const&) = delete;                 \
-  type& operator=(type const&) = delete
-
-// A macro to disallow move operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_MOVE_ASSIGN_(type) \
-  type& operator=(type &&) noexcept = delete
-
-// A macro to disallow move constructor and operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_MOVE_AND_ASSIGN_(type) \
-  type(type&&) noexcept = delete;             \
-  type& operator=(type&&) noexcept = delete
-
 // Tell the compiler to warn about unused return values for functions declared
 // with this macro.  The macro should be used on function declarations
 // following the argument list:
 //
 //   Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT_;
-#if defined(__GNUC__) && !defined(COMPILER_ICC)
-# define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result))
+#if GTEST_HAVE_ATTRIBUTE_(warn_unused_result)
+#define GTEST_MUST_USE_RESULT_ __attribute__((warn_unused_result))
 #else
-# define GTEST_MUST_USE_RESULT_
-#endif  // __GNUC__ && !COMPILER_ICC
+#define GTEST_MUST_USE_RESULT_
+#endif
 
 // MS C++ compiler emits warning when a conditional expression is compile time
 // constant. In some contexts this warning is false positive and needs to be
@@ -728,10 +804,9 @@
 // while (true) {
 // GTEST_INTENTIONAL_CONST_COND_POP_()
 // }
-# define GTEST_INTENTIONAL_CONST_COND_PUSH_() \
-    GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127)
-# define GTEST_INTENTIONAL_CONST_COND_POP_() \
-    GTEST_DISABLE_MSC_WARNINGS_POP_()
+#define GTEST_INTENTIONAL_CONST_COND_PUSH_() \
+  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127)
+#define GTEST_INTENTIONAL_CONST_COND_POP_() GTEST_DISABLE_MSC_WARNINGS_POP_()
 
 // Determine whether the compiler supports Microsoft's Structured Exception
 // Handling.  This is supported by several Windows compilers but generally
@@ -739,114 +814,116 @@
 #ifndef GTEST_HAS_SEH
 // The user didn't tell us, so we need to figure it out.
 
-# if defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(_MSC_VER) || defined(__BORLANDC__)
 // These two compilers are known to support SEH.
-#  define GTEST_HAS_SEH 1
-# else
+#define GTEST_HAS_SEH 1
+#else
 // Assume no SEH.
-#  define GTEST_HAS_SEH 0
-# endif
+#define GTEST_HAS_SEH 0
+#endif
 
 #endif  // GTEST_HAS_SEH
 
 #ifndef GTEST_IS_THREADSAFE
 
-#define GTEST_IS_THREADSAFE                                                 \
-  (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ ||                                     \
-   (GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT) || \
-   GTEST_HAS_PTHREAD)
+#if (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ ||                              \
+     (defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_WINDOWS_PHONE) && \
+      !defined(GTEST_OS_WINDOWS_RT)) ||                                \
+     GTEST_HAS_PTHREAD)
+#define GTEST_IS_THREADSAFE 1
+#endif
 
 #endif  // GTEST_IS_THREADSAFE
 
+#ifdef GTEST_IS_THREADSAFE
+// Some platforms don't support including these threading related headers.
+#include <condition_variable>  // NOLINT
+#include <mutex>               // NOLINT
+#endif                         // GTEST_IS_THREADSAFE
+
 // GTEST_API_ qualifies all symbols that must be exported. The definitions below
 // are guarded by #ifndef to give embedders a chance to define GTEST_API_ in
 // gtest/internal/custom/gtest-port.h
 #ifndef GTEST_API_
 
 #ifdef _MSC_VER
-# if GTEST_LINKED_AS_SHARED_LIBRARY
-#  define GTEST_API_ __declspec(dllimport)
-# elif GTEST_CREATE_SHARED_LIBRARY
-#  define GTEST_API_ __declspec(dllexport)
-# endif
-#elif __GNUC__ >= 4 || defined(__clang__)
-# define GTEST_API_ __attribute__((visibility ("default")))
+#if defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY
+#define GTEST_API_ __declspec(dllimport)
+#elif defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY
+#define GTEST_API_ __declspec(dllexport)
+#endif
+#elif GTEST_HAVE_ATTRIBUTE_(visibility)
+#define GTEST_API_ __attribute__((visibility("default")))
 #endif  // _MSC_VER
 
 #endif  // GTEST_API_
 
 #ifndef GTEST_API_
-# define GTEST_API_
+#define GTEST_API_
 #endif  // GTEST_API_
 
 #ifndef GTEST_DEFAULT_DEATH_TEST_STYLE
-# define GTEST_DEFAULT_DEATH_TEST_STYLE  "fast"
+#define GTEST_DEFAULT_DEATH_TEST_STYLE "fast"
 #endif  // GTEST_DEFAULT_DEATH_TEST_STYLE
 
-#ifdef __GNUC__
+#if GTEST_HAVE_ATTRIBUTE_(noinline)
 // Ask the compiler to never inline a given function.
-# define GTEST_NO_INLINE_ __attribute__((noinline))
+#define GTEST_NO_INLINE_ __attribute__((noinline))
 #else
-# define GTEST_NO_INLINE_
+#define GTEST_NO_INLINE_
+#endif
+
+#if GTEST_HAVE_ATTRIBUTE_(disable_tail_calls)
+// Ask the compiler not to perform tail call optimization inside
+// the marked function.
+#define GTEST_NO_TAIL_CALL_ __attribute__((disable_tail_calls))
+#elif defined(__GNUC__) && !defined(__NVCOMPILER)
+#define GTEST_NO_TAIL_CALL_ \
+  __attribute__((optimize("no-optimize-sibling-calls")))
+#else
+#define GTEST_NO_TAIL_CALL_
 #endif
 
 // _LIBCPP_VERSION is defined by the libc++ library from the LLVM project.
 #if !defined(GTEST_HAS_CXXABI_H_)
-# if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER))
-#  define GTEST_HAS_CXXABI_H_ 1
-# else
-#  define GTEST_HAS_CXXABI_H_ 0
-# endif
+#if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER))
+#define GTEST_HAS_CXXABI_H_ 1
+#else
+#define GTEST_HAS_CXXABI_H_ 0
+#endif
 #endif
 
 // A function level attribute to disable checking for use of uninitialized
 // memory when built with MemorySanitizer.
-#if defined(__clang__)
-# if __has_feature(memory_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ \
-       __attribute__((no_sanitize_memory))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
-# endif  // __has_feature(memory_sanitizer)
+#if GTEST_HAVE_ATTRIBUTE_(no_sanitize_memory)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ __attribute__((no_sanitize_memory))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
+#endif
 
 // A function level attribute to disable AddressSanitizer instrumentation.
-#if defined(__clang__)
-# if __has_feature(address_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \
-       __attribute__((no_sanitize_address))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
-# endif  // __has_feature(address_sanitizer)
+#if GTEST_HAVE_ATTRIBUTE_(no_sanitize_address)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \
+  __attribute__((no_sanitize_address))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
+#endif
 
 // A function level attribute to disable HWAddressSanitizer instrumentation.
-#if defined(__clang__)
-# if __has_feature(hwaddress_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ \
-       __attribute__((no_sanitize("hwaddress")))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
-# endif  // __has_feature(hwaddress_sanitizer)
+#if GTEST_HAVE_FEATURE_(hwaddress_sanitizer) && \
+    GTEST_HAVE_ATTRIBUTE_(no_sanitize)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ \
+  __attribute__((no_sanitize("hwaddress")))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
+#endif
 
 // A function level attribute to disable ThreadSanitizer instrumentation.
-#if defined(__clang__)
-# if __has_feature(thread_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ \
-       __attribute__((no_sanitize_thread))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
-# endif  // __has_feature(thread_sanitizer)
+#if GTEST_HAVE_ATTRIBUTE_(no_sanitize_thread)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ __attribute((no_sanitize_thread))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
+#endif
 
 namespace testing {
 
@@ -863,20 +940,11 @@
 namespace internal {
 
 // A secret type that Google Test users don't know about.  It has no
-// definition on purpose.  Therefore it's impossible to create a
+// accessible constructors on purpose.  Therefore it's impossible to create a
 // Secret object, which is what we want.
-class Secret;
-
-// The GTEST_COMPILE_ASSERT_ is a legacy macro used to verify that a compile
-// time expression is true (in new code, use static_assert instead). For
-// example, you could use it to verify the size of a static array:
-//
-//   GTEST_COMPILE_ASSERT_(GTEST_ARRAY_SIZE_(names) == NUM_NAMES,
-//                         names_incorrect_size);
-//
-// The second argument to the macro must be a valid C++ identifier. If the
-// expression is false, compiler will issue an error containing this identifier.
-#define GTEST_COMPILE_ASSERT_(expr, msg) static_assert(expr, #msg)
+class Secret {
+  Secret(const Secret&) = delete;
+};
 
 // A helper for suppressing warnings on constant condition.  It just
 // returns 'condition'.
@@ -884,9 +952,34 @@
 
 // Defines RE.
 
-#if GTEST_USES_PCRE
-// if used, PCRE is injected by custom/gtest-port.h
-#elif GTEST_USES_POSIX_RE || GTEST_USES_SIMPLE_RE
+#ifdef GTEST_USES_RE2
+
+// This is almost `using RE = ::RE2`, except it is copy-constructible, and it
+// needs to disambiguate the `std::string`, `absl::string_view`, and `const
+// char*` constructors.
+class GTEST_API_ RE {
+ public:
+  RE(absl::string_view regex) : regex_(regex) {}                  // NOLINT
+  RE(const char* regex) : RE(absl::string_view(regex)) {}         // NOLINT
+  RE(const std::string& regex) : RE(absl::string_view(regex)) {}  // NOLINT
+  RE(const RE& other) : RE(other.pattern()) {}
+
+  const std::string& pattern() const { return regex_.pattern(); }
+
+  static bool FullMatch(absl::string_view str, const RE& re) {
+    return RE2::FullMatch(str, re.regex_);
+  }
+  static bool PartialMatch(absl::string_view str, const RE& re) {
+    return RE2::PartialMatch(str, re.regex_);
+  }
+
+ private:
+  RE2 regex_;
+};
+
+#elif defined(GTEST_USES_POSIX_RE) || defined(GTEST_USES_SIMPLE_RE)
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
+/* class A needs to have dll-interface to be used by clients of class B */)
 
 // A simple C++ wrapper for <regex.h>.  It uses the POSIX Extended
 // Regular Expression syntax.
@@ -903,7 +996,7 @@
   ~RE();
 
   // Returns the string representation of the regex.
-  const char* pattern() const { return pattern_; }
+  const char* pattern() const { return pattern_.c_str(); }
 
   // FullMatch(str, re) returns true if and only if regular expression re
   // matches the entire str.
@@ -921,22 +1014,22 @@
 
  private:
   void Init(const char* regex);
-  const char* pattern_;
+  std::string pattern_;
   bool is_valid_;
 
-# if GTEST_USES_POSIX_RE
+#ifdef GTEST_USES_POSIX_RE
 
   regex_t full_regex_;     // For FullMatch().
   regex_t partial_regex_;  // For PartialMatch().
 
-# else  // GTEST_USES_SIMPLE_RE
+#else  // GTEST_USES_SIMPLE_RE
 
-  const char* full_pattern_;  // For FullMatch();
+  std::string full_pattern_;  // For FullMatch();
 
-# endif
+#endif
 };
-
-#endif  // GTEST_USES_PCRE
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4251
+#endif  // ::testing::internal::RE implementation
 
 // Formats a source file path and a line number as they would appear
 // in an error message from the compiler used to compile this code.
@@ -954,12 +1047,7 @@
 //   LogToStderr()  - directs all log messages to stderr.
 //   FlushInfoLog() - flushes informational log messages.
 
-enum GTestLogSeverity {
-  GTEST_INFO,
-  GTEST_WARNING,
-  GTEST_ERROR,
-  GTEST_FATAL
-};
+enum GTestLogSeverity { GTEST_INFO, GTEST_WARNING, GTEST_ERROR, GTEST_FATAL };
 
 // Formats log entry severity, provides a stream object for streaming the
 // log message, and terminates the message with a newline when going out of
@@ -976,14 +1064,16 @@
  private:
   const GTestLogSeverity severity_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog);
+  GTestLog(const GTestLog&) = delete;
+  GTestLog& operator=(const GTestLog&) = delete;
 };
 
 #if !defined(GTEST_LOG_)
 
-# define GTEST_LOG_(severity) \
-    ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \
-                                  __FILE__, __LINE__).GetStream()
+#define GTEST_LOG_(severity)                                           \
+  ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \
+                                __FILE__, __LINE__)                    \
+      .GetStream()
 
 inline void LogToStderr() {}
 inline void FlushInfoLog() { fflush(nullptr); }
@@ -995,7 +1085,7 @@
 //
 // GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition
 // is not satisfied.
-//  Synopsys:
+//  Synopsis:
 //    GTEST_CHECK_(boolean_condition);
 //     or
 //    GTEST_CHECK_(boolean_condition) << "Additional message";
@@ -1005,12 +1095,12 @@
 //    condition itself, plus additional message streamed into it, if any,
 //    and then it aborts the program. It aborts the program irrespective of
 //    whether it is built in the debug mode or not.
-# define GTEST_CHECK_(condition) \
-    GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-    if (::testing::internal::IsTrue(condition)) \
-      ; \
-    else \
-      GTEST_LOG_(FATAL) << "Condition " #condition " failed. "
+#define GTEST_CHECK_(condition)               \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_               \
+  if (::testing::internal::IsTrue(condition)) \
+    ;                                         \
+  else                                        \
+    GTEST_LOG_(FATAL) << "Condition " #condition " failed. "
 #endif  // !defined(GTEST_CHECK_)
 
 // An all-mode assert to verify that the given POSIX-style function
@@ -1019,9 +1109,8 @@
 // in {} if you need to use it as the only statement in an 'if'
 // branch.
 #define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \
-  if (const int gtest_error = (posix_call)) \
-    GTEST_LOG_(FATAL) << #posix_call << "failed with error " \
-                      << gtest_error
+  if (const int gtest_error = (posix_call))    \
+  GTEST_LOG_(FATAL) << #posix_call << "failed with error " << gtest_error
 
 // Transforms "T" into "const T&" according to standard reference collapsing
 // rules (this is only needed as a backport for C++98 compilers that do not
@@ -1035,9 +1124,13 @@
 // Note that the non-const reference will not have "const" added. This is
 // standard, and necessary so that "T" can always bind to "const T&".
 template <typename T>
-struct ConstRef { typedef const T& type; };
+struct ConstRef {
+  typedef const T& type;
+};
 template <typename T>
-struct ConstRef<T&> { typedef T& type; };
+struct ConstRef<T&> {
+  typedef T& type;
+};
 
 // The argument T must depend on some template parameters.
 #define GTEST_REFERENCE_TO_CONST_(T) \
@@ -1050,7 +1143,7 @@
 // const Foo*).  When you use ImplicitCast_, the compiler checks that
 // the cast is safe.  Such explicit ImplicitCast_s are necessary in
 // surprisingly many situations where C++ demands an exact type match
-// instead of an argument type convertable to a target type.
+// instead of an argument type convertible to a target type.
 //
 // The syntax for using ImplicitCast_ is the same as for static_cast:
 //
@@ -1063,48 +1156,9 @@
 // This relatively ugly name is intentional. It prevents clashes with
 // similar functions users may have (e.g., implicit_cast). The internal
 // namespace alone is not enough because the function can be found by ADL.
-template<typename To>
-inline To ImplicitCast_(To x) { return x; }
-
-// When you upcast (that is, cast a pointer from type Foo to type
-// SuperclassOfFoo), it's fine to use ImplicitCast_<>, since upcasts
-// always succeed.  When you downcast (that is, cast a pointer from
-// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because
-// how do you know the pointer is really of type SubclassOfFoo?  It
-// could be a bare Foo, or of type DifferentSubclassOfFoo.  Thus,
-// when you downcast, you should use this macro.  In debug mode, we
-// use dynamic_cast<> to double-check the downcast is legal (we die
-// if it's not).  In normal mode, we do the efficient static_cast<>
-// instead.  Thus, it's important to test in debug mode to make sure
-// the cast is legal!
-//    This is the only place in the code we should use dynamic_cast<>.
-// In particular, you SHOULDN'T be using dynamic_cast<> in order to
-// do RTTI (eg code like this:
-//    if (dynamic_cast<Subclass1>(foo)) HandleASubclass1Object(foo);
-//    if (dynamic_cast<Subclass2>(foo)) HandleASubclass2Object(foo);
-// You should design the code some other way not to need this.
-//
-// This relatively ugly name is intentional. It prevents clashes with
-// similar functions users may have (e.g., down_cast). The internal
-// namespace alone is not enough because the function can be found by ADL.
-template<typename To, typename From>  // use like this: DownCast_<T*>(foo);
-inline To DownCast_(From* f) {  // so we only accept pointers
-  // Ensures that To is a sub-type of From *.  This test is here only
-  // for compile-time type checking, and has no overhead in an
-  // optimized build at run-time, as it will be optimized away
-  // completely.
-  GTEST_INTENTIONAL_CONST_COND_PUSH_()
-  if (false) {
-  GTEST_INTENTIONAL_CONST_COND_POP_()
-  const To to = nullptr;
-  ::testing::internal::ImplicitCast_<From*>(to);
-  }
-
-#if GTEST_HAS_RTTI
-  // RTTI: debug mode only!
-  GTEST_CHECK_(f == nullptr || dynamic_cast<To>(f) != nullptr);
-#endif
-  return static_cast<To>(f);
+template <typename To>
+inline To ImplicitCast_(To x) {
+  return x;
 }
 
 // Downcasts the pointer of type Base to Derived.
@@ -1114,17 +1168,12 @@
 // check to enforce this.
 template <class Derived, class Base>
 Derived* CheckedDowncastToActualType(Base* base) {
+  static_assert(std::is_base_of<Base, Derived>::value,
+                "target type not derived from source type");
 #if GTEST_HAS_RTTI
-  GTEST_CHECK_(typeid(*base) == typeid(Derived));
+  GTEST_CHECK_(base == nullptr || dynamic_cast<Derived*>(base) != nullptr);
 #endif
-
-#if GTEST_HAS_DOWNCAST_
-  return ::down_cast<Derived*>(base);
-#elif GTEST_HAS_RTTI
-  return dynamic_cast<Derived*>(base);  // NOLINT
-#else
-  return static_cast<Derived*>(base);  // Poor man's downcast.
-#endif
+  return static_cast<Derived*>(base);
 }
 
 #if GTEST_HAS_STREAM_REDIRECTION
@@ -1150,7 +1199,7 @@
 // All command line arguments.
 GTEST_API_ std::vector<std::string> GetArgvs();
 
-#if GTEST_HAS_DEATH_TEST
+#ifdef GTEST_HAS_DEATH_TEST
 
 std::vector<std::string> GetInjectableArgvs();
 // Deprecated: pass the args vector by value instead.
@@ -1161,72 +1210,9 @@
 #endif  // GTEST_HAS_DEATH_TEST
 
 // Defines synchronization primitives.
-#if GTEST_IS_THREADSAFE
-# if GTEST_HAS_PTHREAD
-// Sleeps for (roughly) n milliseconds.  This function is only for testing
-// Google Test's own constructs.  Don't use it in user tests, either
-// directly or indirectly.
-inline void SleepMilliseconds(int n) {
-  const timespec time = {
-    0,                  // 0 seconds.
-    n * 1000L * 1000L,  // And n ms.
-  };
-  nanosleep(&time, nullptr);
-}
-# endif  // GTEST_HAS_PTHREAD
+#ifdef GTEST_IS_THREADSAFE
 
-# if GTEST_HAS_NOTIFICATION_
-// Notification has already been imported into the namespace.
-// Nothing to do here.
-
-# elif GTEST_HAS_PTHREAD
-// Allows a controller thread to pause execution of newly created
-// threads until notified.  Instances of this class must be created
-// and destroyed in the controller thread.
-//
-// This class is only for testing Google Test's own constructs. Do not
-// use it in user tests, either directly or indirectly.
-class Notification {
- public:
-  Notification() : notified_(false) {
-    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr));
-  }
-  ~Notification() {
-    pthread_mutex_destroy(&mutex_);
-  }
-
-  // Notifies all threads created with this notification to start. Must
-  // be called from the controller thread.
-  void Notify() {
-    pthread_mutex_lock(&mutex_);
-    notified_ = true;
-    pthread_mutex_unlock(&mutex_);
-  }
-
-  // Blocks until the controller thread notifies. Must be called from a test
-  // thread.
-  void WaitForNotification() {
-    for (;;) {
-      pthread_mutex_lock(&mutex_);
-      const bool notified = notified_;
-      pthread_mutex_unlock(&mutex_);
-      if (notified)
-        break;
-      SleepMilliseconds(10);
-    }
-  }
-
- private:
-  pthread_mutex_t mutex_;
-  bool notified_;
-
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification);
-};
-
-# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
-
-GTEST_API_ void SleepMilliseconds(int n);
-
+#ifdef GTEST_OS_WINDOWS
 // Provides leak-safe Windows kernel handle ownership.
 // Used in death tests and in threading support.
 class GTEST_API_ AutoHandle {
@@ -1253,8 +1239,24 @@
 
   Handle handle_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(AutoHandle);
+  AutoHandle(const AutoHandle&) = delete;
+  AutoHandle& operator=(const AutoHandle&) = delete;
 };
+#endif
+
+#if GTEST_HAS_NOTIFICATION_
+// Notification has already been imported into the namespace.
+// Nothing to do here.
+
+#else
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
+/* class A needs to have dll-interface to be used by clients of class B */)
+
+// Android local change: disable overzealous thread safety warning.
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wthread-safety-negative"
+#endif
 
 // Allows a controller thread to pause execution of newly created
 // threads until notified.  Instances of this class must be created
@@ -1262,23 +1264,44 @@
 //
 // This class is only for testing Google Test's own constructs. Do not
 // use it in user tests, either directly or indirectly.
+// TODO(b/203539622): Replace unconditionally with absl::Notification.
 class GTEST_API_ Notification {
  public:
-  Notification();
-  void Notify();
-  void WaitForNotification();
+  Notification() : notified_(false) {}
+  Notification(const Notification&) = delete;
+  Notification& operator=(const Notification&) = delete;
+
+  // Notifies all threads created with this notification to start. Must
+  // be called from the controller thread.
+  void Notify() {
+    std::lock_guard<std::mutex> lock(mu_);
+    notified_ = true;
+    cv_.notify_all();
+  }
+
+  // Blocks until the controller thread notifies. Must be called from a test
+  // thread.
+  void WaitForNotification() {
+    std::unique_lock<std::mutex> lock(mu_);
+    cv_.wait(lock, [this]() { return notified_; });
+  }
 
  private:
-  AutoHandle event_;
-
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification);
+  std::mutex mu_;
+  std::condition_variable cv_;
+  bool notified_;
 };
-# endif  // GTEST_HAS_NOTIFICATION_
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4251
+#endif  // GTEST_HAS_NOTIFICATION_
 
 // On MinGW, we can have both GTEST_OS_WINDOWS and GTEST_HAS_PTHREAD
 // defined, but we don't want to use MinGW's pthreads implementation, which
 // has conformance problems with some versions of the POSIX standard.
-# if GTEST_HAS_PTHREAD && !GTEST_OS_WINDOWS_MINGW
+#if GTEST_HAS_PTHREAD && !defined(GTEST_OS_WINDOWS_MINGW)
 
 // As a C-function, ThreadFuncWithCLinkage cannot be templated itself.
 // Consequently, it cannot select a correct instantiation of ThreadWithParam
@@ -1287,7 +1310,7 @@
 // problem.
 class ThreadWithParamBase {
  public:
-  virtual ~ThreadWithParamBase() {}
+  virtual ~ThreadWithParamBase() = default;
   virtual void Run() = 0;
 };
 
@@ -1354,16 +1377,18 @@
                    // finished.
   pthread_t thread_;  // The native thread object.
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam);
+  ThreadWithParam(const ThreadWithParam&) = delete;
+  ThreadWithParam& operator=(const ThreadWithParam&) = delete;
 };
-# endif  // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD ||
-         // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#endif  // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD ||
+        // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 
-# if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 // Mutex and ThreadLocal have already been imported into the namespace.
 // Nothing to do here.
 
-# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
+#elif defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_WINDOWS_PHONE) && \
+    !defined(GTEST_OS_WINDOWS_RT)
 
 // Mutex implements mutex on Windows platforms.  It is used in conjunction
 // with class MutexLock:
@@ -1417,14 +1442,15 @@
   long critical_section_init_phase_;  // NOLINT
   GTEST_CRITICAL_SECTION* critical_section_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex);
+  Mutex(const Mutex&) = delete;
+  Mutex& operator=(const Mutex&) = delete;
 };
 
-# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
-    extern ::testing::internal::Mutex mutex
+#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
+  extern ::testing::internal::Mutex mutex
 
-# define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
-    ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex)
+#define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
+  ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex)
 
 // We cannot name this class MutexLock because the ctor declaration would
 // conflict with a macro named MutexLock, which is defined on some
@@ -1433,15 +1459,15 @@
 // "MutexLock l(&mu)".  Hence the typedef trick below.
 class GTestMutexLock {
  public:
-  explicit GTestMutexLock(Mutex* mutex)
-      : mutex_(mutex) { mutex_->Lock(); }
+  explicit GTestMutexLock(Mutex* mutex) : mutex_(mutex) { mutex_->Lock(); }
 
   ~GTestMutexLock() { mutex_->Unlock(); }
 
  private:
   Mutex* const mutex_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock);
+  GTestMutexLock(const GTestMutexLock&) = delete;
+  GTestMutexLock& operator=(const GTestMutexLock&) = delete;
 };
 
 typedef GTestMutexLock MutexLock;
@@ -1468,7 +1494,8 @@
   virtual ~ThreadLocalBase() {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocalBase);
+  ThreadLocalBase(const ThreadLocalBase&) = delete;
+  ThreadLocalBase& operator=(const ThreadLocalBase&) = delete;
 };
 
 // Maps a thread to a set of ThreadLocals that have values instantiated on that
@@ -1497,7 +1524,7 @@
     virtual void Run() = 0;
   };
 
-  ThreadWithParamBase(Runnable *runnable, Notification* thread_can_start);
+  ThreadWithParamBase(Runnable* runnable, Notification* thread_can_start);
   virtual ~ThreadWithParamBase();
 
  private:
@@ -1511,30 +1538,26 @@
   typedef void UserThreadFunc(T);
 
   ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start)
-      : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) {
-  }
+      : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) {}
   virtual ~ThreadWithParam() {}
 
  private:
   class RunnableImpl : public Runnable {
    public:
-    RunnableImpl(UserThreadFunc* func, T param)
-        : func_(func),
-          param_(param) {
-    }
+    RunnableImpl(UserThreadFunc* func, T param) : func_(func), param_(param) {}
     virtual ~RunnableImpl() {}
-    virtual void Run() {
-      func_(param_);
-    }
+    virtual void Run() { func_(param_); }
 
    private:
     UserThreadFunc* const func_;
     const T param_;
 
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(RunnableImpl);
+    RunnableImpl(const RunnableImpl&) = delete;
+    RunnableImpl& operator=(const RunnableImpl&) = delete;
   };
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam);
+  ThreadWithParam(const ThreadWithParam&) = delete;
+  ThreadWithParam& operator=(const ThreadWithParam&) = delete;
 };
 
 // Implements thread-local storage on Windows systems.
@@ -1571,7 +1594,7 @@
   explicit ThreadLocal(const T& value)
       : default_factory_(new InstanceValueHolderFactory(value)) {}
 
-  ~ThreadLocal() { ThreadLocalRegistry::OnThreadLocalDestroyed(this); }
+  ~ThreadLocal() override { ThreadLocalRegistry::OnThreadLocalDestroyed(this); }
 
   T* pointer() { return GetOrCreateValue(); }
   const T* pointer() const { return GetOrCreateValue(); }
@@ -1590,16 +1613,17 @@
 
    private:
     T value_;
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder);
+    ValueHolder(const ValueHolder&) = delete;
+    ValueHolder& operator=(const ValueHolder&) = delete;
   };
 
-
   T* GetOrCreateValue() const {
     return static_cast<ValueHolder*>(
-        ThreadLocalRegistry::GetValueOnCurrentThread(this))->pointer();
+               ThreadLocalRegistry::GetValueOnCurrentThread(this))
+        ->pointer();
   }
 
-  virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const {
+  ThreadLocalValueHolderBase* NewValueForCurrentThread() const override {
     return default_factory_->MakeNewHolder();
   }
 
@@ -1610,7 +1634,8 @@
     virtual ValueHolder* MakeNewHolder() const = 0;
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory);
+    ValueHolderFactory(const ValueHolderFactory&) = delete;
+    ValueHolderFactory& operator=(const ValueHolderFactory&) = delete;
   };
 
   class DefaultValueHolderFactory : public ValueHolderFactory {
@@ -1619,7 +1644,9 @@
     ValueHolder* MakeNewHolder() const override { return new ValueHolder(); }
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory);
+    DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete;
+    DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) =
+        delete;
   };
 
   class InstanceValueHolderFactory : public ValueHolderFactory {
@@ -1632,15 +1659,18 @@
    private:
     const T value_;  // The value for each thread.
 
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory);
+    InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete;
+    InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) =
+        delete;
   };
 
   std::unique_ptr<ValueHolderFactory> default_factory_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
+  ThreadLocal(const ThreadLocal&) = delete;
+  ThreadLocal& operator=(const ThreadLocal&) = delete;
 };
 
-# elif GTEST_HAS_PTHREAD
+#elif GTEST_HAS_PTHREAD
 
 // MutexBase and Mutex implement mutex on pthreads-based platforms.
 class MutexBase {
@@ -1687,8 +1717,8 @@
 };
 
 // Forward-declares a static mutex.
-#  define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
-     extern ::testing::internal::MutexBase mutex
+#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
+  extern ::testing::internal::MutexBase mutex
 
 // Defines and statically (i.e. at link time) initializes a static mutex.
 // The initialization list here does not explicitly initialize each field,
@@ -1707,12 +1737,11 @@
     GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr));
     has_owner_ = false;
   }
-  ~Mutex() {
-    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_));
-  }
+  ~Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); }
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex);
+  Mutex(const Mutex&) = delete;
+  Mutex& operator=(const Mutex&) = delete;
 };
 
 // We cannot name this class MutexLock because the ctor declaration would
@@ -1722,15 +1751,15 @@
 // "MutexLock l(&mu)".  Hence the typedef trick below.
 class GTestMutexLock {
  public:
-  explicit GTestMutexLock(MutexBase* mutex)
-      : mutex_(mutex) { mutex_->Lock(); }
+  explicit GTestMutexLock(MutexBase* mutex) : mutex_(mutex) { mutex_->Lock(); }
 
   ~GTestMutexLock() { mutex_->Unlock(); }
 
  private:
   MutexBase* const mutex_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock);
+  GTestMutexLock(const GTestMutexLock&) = delete;
+  GTestMutexLock& operator=(const GTestMutexLock&) = delete;
 };
 
 typedef GTestMutexLock MutexLock;
@@ -1741,9 +1770,9 @@
 // C-linkage.  Therefore it cannot be templatized to access
 // ThreadLocal<T>.  Hence the need for class
 // ThreadLocalValueHolderBase.
-class ThreadLocalValueHolderBase {
+class GTEST_API_ ThreadLocalValueHolderBase {
  public:
-  virtual ~ThreadLocalValueHolderBase() {}
+  virtual ~ThreadLocalValueHolderBase() = default;
 };
 
 // Called by pthread to delete thread-local data stored by
@@ -1787,7 +1816,8 @@
 
    private:
     T value_;
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder);
+    ValueHolder(const ValueHolder&) = delete;
+    ValueHolder& operator=(const ValueHolder&) = delete;
   };
 
   static pthread_key_t CreateKey() {
@@ -1814,21 +1844,24 @@
 
   class ValueHolderFactory {
    public:
-    ValueHolderFactory() {}
-    virtual ~ValueHolderFactory() {}
+    ValueHolderFactory() = default;
+    virtual ~ValueHolderFactory() = default;
     virtual ValueHolder* MakeNewHolder() const = 0;
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory);
+    ValueHolderFactory(const ValueHolderFactory&) = delete;
+    ValueHolderFactory& operator=(const ValueHolderFactory&) = delete;
   };
 
   class DefaultValueHolderFactory : public ValueHolderFactory {
    public:
-    DefaultValueHolderFactory() {}
+    DefaultValueHolderFactory() = default;
     ValueHolder* MakeNewHolder() const override { return new ValueHolder(); }
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory);
+    DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete;
+    DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) =
+        delete;
   };
 
   class InstanceValueHolderFactory : public ValueHolderFactory {
@@ -1841,17 +1874,20 @@
    private:
     const T value_;  // The value for each thread.
 
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory);
+    InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete;
+    InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) =
+        delete;
   };
 
   // A key pthreads uses for looking up per-thread values.
   const pthread_key_t key_;
   std::unique_ptr<ValueHolderFactory> default_factory_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
+  ThreadLocal(const ThreadLocal&) = delete;
+  ThreadLocal& operator=(const ThreadLocal&) = delete;
 };
 
-# endif  // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#endif  // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 
 #else  // GTEST_IS_THREADSAFE
 
@@ -1868,10 +1904,10 @@
   void AssertHeld() const {}
 };
 
-# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
+#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
   extern ::testing::internal::Mutex mutex
 
-# define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex
+#define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex
 
 // We cannot name this class MutexLock because the ctor declaration would
 // conflict with a macro named MutexLock, which is defined on some
@@ -1894,6 +1930,7 @@
   const T* pointer() const { return &value_; }
   const T& get() const { return value_; }
   void set(const T& value) { value_ = value; }
+
  private:
   T value_;
 };
@@ -1904,12 +1941,12 @@
 // we cannot detect it.
 GTEST_API_ size_t GetThreadCount();
 
-#if GTEST_OS_WINDOWS
-# define GTEST_PATH_SEP_ "\\"
-# define GTEST_HAS_ALT_PATH_SEP_ 1
+#ifdef GTEST_OS_WINDOWS
+#define GTEST_PATH_SEP_ "\\"
+#define GTEST_HAS_ALT_PATH_SEP_ 1
 #else
-# define GTEST_PATH_SEP_ "/"
-# define GTEST_HAS_ALT_PATH_SEP_ 0
+#define GTEST_PATH_SEP_ "/"
+#define GTEST_HAS_ALT_PATH_SEP_ 0
 #endif  // GTEST_OS_WINDOWS
 
 // Utilities for char.
@@ -1940,7 +1977,7 @@
 inline bool IsXDigit(char ch) {
   return isxdigit(static_cast<unsigned char>(ch)) != 0;
 }
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 inline bool IsXDigit(char8_t ch) {
   return isxdigit(static_cast<unsigned char>(ch)) != 0;
 }
@@ -1967,8 +2004,7 @@
 
 inline std::string StripTrailingSpaces(std::string str) {
   std::string::iterator it = str.end();
-  while (it != str.begin() && IsSpace(*--it))
-    it = str.erase(it);
+  while (it != str.begin() && IsSpace(*--it)) it = str.erase(it);
   return str;
 }
 
@@ -1980,56 +2016,31 @@
 
 namespace posix {
 
-// Functions with a different name on Windows.
-
-#if GTEST_OS_WINDOWS
+// File system porting.
+#if GTEST_HAS_FILE_SYSTEM
+#ifdef GTEST_OS_WINDOWS
 
 typedef struct _stat StatStruct;
 
-# ifdef __BORLANDC__
-inline int DoIsATTY(int fd) { return isatty(fd); }
-inline int StrCaseCmp(const char* s1, const char* s2) {
-  return stricmp(s1, s2);
-}
-inline char* StrDup(const char* src) { return strdup(src); }
-# else  // !__BORLANDC__
-#  if GTEST_OS_WINDOWS_MOBILE
-inline int DoIsATTY(int /* fd */) { return 0; }
-#  else
-inline int DoIsATTY(int fd) { return _isatty(fd); }
-#  endif  // GTEST_OS_WINDOWS_MOBILE
-inline int StrCaseCmp(const char* s1, const char* s2) {
-  return _stricmp(s1, s2);
-}
-inline char* StrDup(const char* src) { return _strdup(src); }
-# endif  // __BORLANDC__
-
-# if GTEST_OS_WINDOWS_MOBILE
+#ifdef GTEST_OS_WINDOWS_MOBILE
 inline int FileNo(FILE* file) { return reinterpret_cast<int>(_fileno(file)); }
 // Stat(), RmDir(), and IsDir() are not needed on Windows CE at this
 // time and thus not defined there.
-# else
+#else
 inline int FileNo(FILE* file) { return _fileno(file); }
 inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); }
 inline int RmDir(const char* dir) { return _rmdir(dir); }
-inline bool IsDir(const StatStruct& st) {
-  return (_S_IFDIR & st.st_mode) != 0;
-}
-# endif  // GTEST_OS_WINDOWS_MOBILE
+inline bool IsDir(const StatStruct& st) { return (_S_IFDIR & st.st_mode) != 0; }
+#endif  // GTEST_OS_WINDOWS_MOBILE
 
-#elif GTEST_OS_ESP8266
+#elif defined(GTEST_OS_ESP8266)
 typedef struct stat StatStruct;
 
 inline int FileNo(FILE* file) { return fileno(file); }
-inline int DoIsATTY(int fd) { return isatty(fd); }
 inline int Stat(const char* path, StatStruct* buf) {
   // stat function not implemented on ESP8266
   return 0;
 }
-inline int StrCaseCmp(const char* s1, const char* s2) {
-  return strcasecmp(s1, s2);
-}
-inline char* StrDup(const char* src) { return strdup(src); }
 inline int RmDir(const char* dir) { return rmdir(dir); }
 inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
 
@@ -2038,14 +2049,46 @@
 typedef struct stat StatStruct;
 
 inline int FileNo(FILE* file) { return fileno(file); }
-inline int DoIsATTY(int fd) { return isatty(fd); }
 inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); }
+#ifdef GTEST_OS_QURT
+// QuRT doesn't support any directory functions, including rmdir
+inline int RmDir(const char*) { return 0; }
+#else
+inline int RmDir(const char* dir) { return rmdir(dir); }
+#endif
+inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
+
+#endif  // GTEST_OS_WINDOWS
+#endif  // GTEST_HAS_FILE_SYSTEM
+
+// Other functions with a different name on Windows.
+
+#ifdef GTEST_OS_WINDOWS
+
+#ifdef __BORLANDC__
+inline int DoIsATTY(int fd) { return isatty(fd); }
+inline int StrCaseCmp(const char* s1, const char* s2) {
+  return stricmp(s1, s2);
+}
+#else  // !__BORLANDC__
+#if defined(GTEST_OS_WINDOWS_MOBILE) || defined(GTEST_OS_ZOS) || \
+    defined(GTEST_OS_IOS) || defined(GTEST_OS_WINDOWS_PHONE) ||  \
+    defined(GTEST_OS_WINDOWS_RT) || defined(ESP_PLATFORM)
+inline int DoIsATTY(int /* fd */) { return 0; }
+#else
+inline int DoIsATTY(int fd) { return _isatty(fd); }
+#endif  // GTEST_OS_WINDOWS_MOBILE
+inline int StrCaseCmp(const char* s1, const char* s2) {
+  return _stricmp(s1, s2);
+}
+#endif  // __BORLANDC__
+
+#else
+
+inline int DoIsATTY(int fd) { return isatty(fd); }
 inline int StrCaseCmp(const char* s1, const char* s2) {
   return strcasecmp(s1, s2);
 }
-inline char* StrDup(const char* src) { return strdup(src); }
-inline int RmDir(const char* dir) { return rmdir(dir); }
-inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
 
 #endif  // GTEST_OS_WINDOWS
 
@@ -2067,30 +2110,31 @@
 // ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and
 // StrError() aren't needed on Windows CE at this time and thus not
 // defined there.
-
-#if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && \
-    !GTEST_OS_WINDOWS_RT && !GTEST_OS_ESP8266 && !GTEST_OS_XTENSA
+#if GTEST_HAS_FILE_SYSTEM
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_WINDOWS_PHONE) && \
+    !defined(GTEST_OS_WINDOWS_RT) && !defined(GTEST_OS_ESP8266) &&           \
+    !defined(GTEST_OS_XTENSA) && !defined(GTEST_OS_QURT)
 inline int ChDir(const char* dir) { return chdir(dir); }
 #endif
 inline FILE* FOpen(const char* path, const char* mode) {
-#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
+#if defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_WINDOWS_MINGW)
   struct wchar_codecvt : public std::codecvt<wchar_t, char, std::mbstate_t> {};
   std::wstring_convert<wchar_codecvt> converter;
   std::wstring wide_path = converter.from_bytes(path);
   std::wstring wide_mode = converter.from_bytes(mode);
   return _wfopen(wide_path.c_str(), wide_mode.c_str());
-#else  // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
+#else   // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
   return fopen(path, mode);
 #endif  // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
 }
-#if !GTEST_OS_WINDOWS_MOBILE
-inline FILE *FReopen(const char* path, const char* mode, FILE* stream) {
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_QURT)
+inline FILE* FReopen(const char* path, const char* mode, FILE* stream) {
   return freopen(path, mode, stream);
 }
 inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); }
-#endif
+#endif  // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_QURT
 inline int FClose(FILE* fp) { return fclose(fp); }
-#if !GTEST_OS_WINDOWS_MOBILE
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_QURT)
 inline int Read(int fd, void* buf, unsigned int count) {
   return static_cast<int>(read(fd, buf, count));
 }
@@ -2098,11 +2142,17 @@
   return static_cast<int>(write(fd, buf, count));
 }
 inline int Close(int fd) { return close(fd); }
+#endif  // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_QURT
+#endif  // GTEST_HAS_FILE_SYSTEM
+
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_QURT)
 inline const char* StrError(int errnum) { return strerror(errnum); }
-#endif
+#endif  // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_QURT
+
 inline const char* GetEnv(const char* name) {
-#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \
-    GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_XTENSA
+#if defined(GTEST_OS_WINDOWS_MOBILE) || defined(GTEST_OS_WINDOWS_PHONE) || \
+    defined(GTEST_OS_ESP8266) || defined(GTEST_OS_XTENSA) ||               \
+    defined(GTEST_OS_QURT)
   // We are on an embedded platform, which has no environment variables.
   static_cast<void>(name);  // To prevent 'unused argument' warning.
   return nullptr;
@@ -2118,7 +2168,7 @@
 
 GTEST_DISABLE_MSC_DEPRECATED_POP_()
 
-#if GTEST_OS_WINDOWS_MOBILE
+#ifdef GTEST_OS_WINDOWS_MOBILE
 // Windows CE has no C library. The abort() function is used in
 // several places in Google Test. This implementation provides a reasonable
 // imitation of standard behaviour.
@@ -2134,15 +2184,15 @@
 // MSVC-based platforms.  We map the GTEST_SNPRINTF_ macro to the appropriate
 // function in order to achieve that.  We use macro definition here because
 // snprintf is a variadic function.
-#if _MSC_VER && !GTEST_OS_WINDOWS_MOBILE
+#if defined(_MSC_VER) && !defined(GTEST_OS_WINDOWS_MOBILE)
 // MSVC 2005 and above support variadic macros.
-# define GTEST_SNPRINTF_(buffer, size, format, ...) \
-     _snprintf_s(buffer, size, size, format, __VA_ARGS__)
+#define GTEST_SNPRINTF_(buffer, size, format, ...) \
+  _snprintf_s(buffer, size, size, format, __VA_ARGS__)
 #elif defined(_MSC_VER)
 // Windows CE does not define _snprintf_s
-# define GTEST_SNPRINTF_ _snprintf
+#define GTEST_SNPRINTF_ _snprintf
 #else
-# define GTEST_SNPRINTF_ snprintf
+#define GTEST_SNPRINTF_ snprintf
 #endif
 
 // The biggest signed integer type the compiler supports.
@@ -2202,37 +2252,84 @@
 
 // Macro for referencing flags.
 #if !defined(GTEST_FLAG)
-# define GTEST_FLAG(name) FLAGS_gtest_##name
+#define GTEST_FLAG_NAME_(name) gtest_##name
+#define GTEST_FLAG(name) FLAGS_gtest_##name
 #endif  // !defined(GTEST_FLAG)
 
-#if !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
-# define GTEST_USE_OWN_FLAGFILE_FLAG_ 1
-#endif  // !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
-
-#if !defined(GTEST_DECLARE_bool_)
-# define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver
-
-// Macros for declaring flags.
-# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
-# define GTEST_DECLARE_int32_(name) \
-    GTEST_API_ extern std::int32_t GTEST_FLAG(name)
-# define GTEST_DECLARE_string_(name) \
-    GTEST_API_ extern ::std::string GTEST_FLAG(name)
+// Pick a command line flags implementation.
+#ifdef GTEST_HAS_ABSL
 
 // Macros for defining flags.
-# define GTEST_DEFINE_bool_(name, default_val, doc) \
-    GTEST_API_ bool GTEST_FLAG(name) = (default_val)
-# define GTEST_DEFINE_int32_(name, default_val, doc) \
-    GTEST_API_ std::int32_t GTEST_FLAG(name) = (default_val)
-# define GTEST_DEFINE_string_(name, default_val, doc) \
-    GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val)
+#define GTEST_DEFINE_bool_(name, default_val, doc) \
+  ABSL_FLAG(bool, GTEST_FLAG_NAME_(name), default_val, doc)
+#define GTEST_DEFINE_int32_(name, default_val, doc) \
+  ABSL_FLAG(int32_t, GTEST_FLAG_NAME_(name), default_val, doc)
+#define GTEST_DEFINE_string_(name, default_val, doc) \
+  ABSL_FLAG(std::string, GTEST_FLAG_NAME_(name), default_val, doc)
 
-#endif  // !defined(GTEST_DECLARE_bool_)
+// Macros for declaring flags.
+#define GTEST_DECLARE_bool_(name) \
+  ABSL_DECLARE_FLAG(bool, GTEST_FLAG_NAME_(name))
+#define GTEST_DECLARE_int32_(name) \
+  ABSL_DECLARE_FLAG(int32_t, GTEST_FLAG_NAME_(name))
+#define GTEST_DECLARE_string_(name) \
+  ABSL_DECLARE_FLAG(std::string, GTEST_FLAG_NAME_(name))
+
+#define GTEST_FLAG_SAVER_ ::absl::FlagSaver
+
+#define GTEST_FLAG_GET(name) ::absl::GetFlag(GTEST_FLAG(name))
+#define GTEST_FLAG_SET(name, value) \
+  (void)(::absl::SetFlag(&GTEST_FLAG(name), value))
+#define GTEST_USE_OWN_FLAGFILE_FLAG_ 0
+
+#else  // GTEST_HAS_ABSL
+
+// Macros for defining flags.
+#define GTEST_DEFINE_bool_(name, default_val, doc)  \
+  namespace testing {                               \
+  GTEST_API_ bool GTEST_FLAG(name) = (default_val); \
+  }                                                 \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DEFINE_int32_(name, default_val, doc)         \
+  namespace testing {                                       \
+  GTEST_API_ std::int32_t GTEST_FLAG(name) = (default_val); \
+  }                                                         \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DEFINE_string_(name, default_val, doc)         \
+  namespace testing {                                        \
+  GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val); \
+  }                                                          \
+  static_assert(true, "no-op to require trailing semicolon")
+
+// Macros for declaring flags.
+#define GTEST_DECLARE_bool_(name)          \
+  namespace testing {                      \
+  GTEST_API_ extern bool GTEST_FLAG(name); \
+  }                                        \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DECLARE_int32_(name)                 \
+  namespace testing {                              \
+  GTEST_API_ extern std::int32_t GTEST_FLAG(name); \
+  }                                                \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DECLARE_string_(name)                 \
+  namespace testing {                               \
+  GTEST_API_ extern ::std::string GTEST_FLAG(name); \
+  }                                                 \
+  static_assert(true, "no-op to require trailing semicolon")
+
+#define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver
+
+#define GTEST_FLAG_GET(name) ::testing::GTEST_FLAG(name)
+#define GTEST_FLAG_SET(name, value) (void)(::testing::GTEST_FLAG(name) = value)
+#define GTEST_USE_OWN_FLAGFILE_FLAG_ 1
+
+#endif  // GTEST_HAS_ABSL
 
 // Thread annotations
 #if !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
-# define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
-# define GTEST_LOCK_EXCLUDED_(locks)
+#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
+#define GTEST_LOCK_EXCLUDED_(locks)
 #endif  // !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
 
 // Parses 'str' for a 32-bit signed integer.  If successful, writes the result
@@ -2271,7 +2368,7 @@
 
 #endif  // !defined(GTEST_INTERNAL_DEPRECATED)
 
-#if GTEST_HAS_ABSL
+#ifdef GTEST_HAS_ABSL
 // Always use absl::any for UniversalPrinter<> specializations if googletest
 // is built with absl support.
 #define GTEST_INTERNAL_HAS_ANY 1
@@ -2282,8 +2379,9 @@
 }  // namespace internal
 }  // namespace testing
 #else
-#ifdef __has_include
-#if __has_include(<any>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_any) || (GTEST_INTERNAL_HAS_INCLUDE(<any>) &&        \
+                               GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
+                               (!defined(_MSC_VER) || GTEST_HAS_RTTI))
 // Otherwise for C++17 and higher use std::any for UniversalPrinter<>
 // specializations.
 #define GTEST_INTERNAL_HAS_ANY 1
@@ -2295,11 +2393,14 @@
 }  // namespace testing
 // The case where absl is configured NOT to alias std::any is not
 // supported.
-#endif  // __has_include(<any>) && __cplusplus >= 201703L
-#endif  // __has_include
+#endif  // __cpp_lib_any
 #endif  // GTEST_HAS_ABSL
 
-#if GTEST_HAS_ABSL
+#ifndef GTEST_INTERNAL_HAS_ANY
+#define GTEST_INTERNAL_HAS_ANY 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
 // Always use absl::optional for UniversalPrinter<> specializations if
 // googletest is built with absl support.
 #define GTEST_INTERNAL_HAS_OPTIONAL 1
@@ -2308,11 +2409,12 @@
 namespace internal {
 template <typename T>
 using Optional = ::absl::optional<T>;
+inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; }
 }  // namespace internal
 }  // namespace testing
 #else
-#ifdef __has_include
-#if __has_include(<optional>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_optional) || (GTEST_INTERNAL_HAS_INCLUDE(<optional>) && \
+                                    GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
 // Otherwise for C++17 and higher use std::optional for UniversalPrinter<>
 // specializations.
 #define GTEST_INTERNAL_HAS_OPTIONAL 1
@@ -2321,18 +2423,31 @@
 namespace internal {
 template <typename T>
 using Optional = ::std::optional<T>;
+inline ::std::nullopt_t Nullopt() { return ::std::nullopt; }
 }  // namespace internal
 }  // namespace testing
 // The case where absl is configured NOT to alias std::optional is not
 // supported.
-#endif  // __has_include(<optional>) && __cplusplus >= 201703L
-#endif  // __has_include
+#endif  // __cpp_lib_optional
 #endif  // GTEST_HAS_ABSL
 
-#if GTEST_HAS_ABSL
+#ifndef GTEST_INTERNAL_HAS_OPTIONAL
+#define GTEST_INTERNAL_HAS_OPTIONAL 0
+#endif
+
+#if defined(__cpp_lib_span) || (GTEST_INTERNAL_HAS_INCLUDE(<span>) && \
+                                GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L)
+#define GTEST_INTERNAL_HAS_STD_SPAN 1
+#endif  // __cpp_lib_span
+
+#ifndef GTEST_INTERNAL_HAS_STD_SPAN
+#define GTEST_INTERNAL_HAS_STD_SPAN 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
 // Always use absl::string_view for Matcher<> specializations if googletest
 // is built with absl support.
-# define GTEST_INTERNAL_HAS_STRING_VIEW 1
+#define GTEST_INTERNAL_HAS_STRING_VIEW 1
 #include "absl/strings/string_view.h"
 namespace testing {
 namespace internal {
@@ -2340,11 +2455,12 @@
 }  // namespace internal
 }  // namespace testing
 #else
-# ifdef __has_include
-#   if __has_include(<string_view>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_string_view) ||             \
+    (GTEST_INTERNAL_HAS_INCLUDE(<string_view>) && \
+     GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
 // Otherwise for C++17 and higher use std::string_view for Matcher<>
 // specializations.
-#   define GTEST_INTERNAL_HAS_STRING_VIEW 1
+#define GTEST_INTERNAL_HAS_STRING_VIEW 1
 #include <string_view>
 namespace testing {
 namespace internal {
@@ -2353,11 +2469,14 @@
 }  // namespace testing
 // The case where absl is configured NOT to alias std::string_view is not
 // supported.
-#  endif  // __has_include(<string_view>) && __cplusplus >= 201703L
-# endif  // __has_include
+#endif  // __cpp_lib_string_view
 #endif  // GTEST_HAS_ABSL
 
-#if GTEST_HAS_ABSL
+#ifndef GTEST_INTERNAL_HAS_STRING_VIEW
+#define GTEST_INTERNAL_HAS_STRING_VIEW 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
 // Always use absl::variant for UniversalPrinter<> specializations if googletest
 // is built with absl support.
 #define GTEST_INTERNAL_HAS_VARIANT 1
@@ -2369,8 +2488,8 @@
 }  // namespace internal
 }  // namespace testing
 #else
-#ifdef __has_include
-#if __has_include(<variant>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_variant) || (GTEST_INTERNAL_HAS_INCLUDE(<variant>) && \
+                                   GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
 // Otherwise for C++17 and higher use std::variant for UniversalPrinter<>
 // specializations.
 #define GTEST_INTERNAL_HAS_VARIANT 1
@@ -2382,8 +2501,17 @@
 }  // namespace internal
 }  // namespace testing
 // The case where absl is configured NOT to alias std::variant is not supported.
-#endif  // __has_include(<variant>) && __cplusplus >= 201703L
-#endif  // __has_include
+#endif  // __cpp_lib_variant
 #endif  // GTEST_HAS_ABSL
 
+#ifndef GTEST_INTERNAL_HAS_VARIANT
+#define GTEST_INTERNAL_HAS_VARIANT 0
+#endif
+
+#if (defined(__cpp_constexpr) && !defined(__cpp_inline_variables)) || \
+    (defined(GTEST_INTERNAL_CPLUSPLUS_LANG) &&                        \
+     GTEST_INTERNAL_CPLUSPLUS_LANG < 201703L)
+#define GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL 1
+#endif
+
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h
index 10f774f..7c05b58 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file declares the String class and functions used internally by
@@ -36,18 +36,22 @@
 // This header file is #included by gtest-internal.h.
 // It should not be #included by other files.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
 
 #ifdef __BORLANDC__
 // string.h is not guaranteed to provide strcpy on C++ Builder.
-# include <mem.h>
+#include <mem.h>
 #endif
 
 #include <string.h>
+
 #include <cstdint>
+#include <sstream>
 #include <string>
 
 #include "gtest/internal/gtest-port.h"
@@ -69,7 +73,7 @@
   // memory using malloc().
   static const char* CloneCString(const char* c_str);
 
-#if GTEST_OS_WINDOWS_MOBILE
+#ifdef GTEST_OS_WINDOWS_MOBILE
   // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be
   // able to pass strings to Win32 APIs on CE we need to convert them
   // to 'Unicode', UTF-16.
@@ -123,8 +127,7 @@
   // Unlike strcasecmp(), this function can handle NULL argument(s).
   // A NULL C string is considered different to any non-NULL C string,
   // including the empty string.
-  static bool CaseInsensitiveCStringEquals(const char* lhs,
-                                           const char* rhs);
+  static bool CaseInsensitiveCStringEquals(const char* lhs, const char* rhs);
 
   // Compares two wide C strings, ignoring case.  Returns true if and only if
   // they have the same content.
@@ -143,8 +146,8 @@
 
   // Returns true if and only if the given string ends with the given suffix,
   // ignoring case. Any string is considered to end with an empty suffix.
-  static bool EndsWithCaseInsensitive(
-      const std::string& str, const std::string& suffix);
+  static bool EndsWithCaseInsensitive(const std::string& str,
+                                      const std::string& suffix);
 
   // Formats an int value as "%02d".
   static std::string FormatIntWidth2(int value);  // "%02d" for width == 2
@@ -163,7 +166,7 @@
 
  private:
   String();  // Not meant to be instantiated.
-};  // class String
+};           // class String
 
 // Gets the content of the stringstream's buffer as an std::string.  Each '\0'
 // character in the buffer is replaced with "\\0".
diff --git a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h
index b87a2e2..f94cf61 100644
--- a/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h
+++ b/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h
@@ -30,20 +30,26 @@
 // Type utilities needed for implementing typed and type-parameterized
 // tests.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
 
+#include <string>
+#include <type_traits>
+#include <typeinfo>
+
 #include "gtest/internal/gtest-port.h"
 
 // #ifdef __GNUC__ is too general here.  It is possible to use gcc without using
 // libstdc++ (which is where cxxabi.h comes from).
-# if GTEST_HAS_CXXABI_H_
-#  include <cxxabi.h>
-# elif defined(__HP_aCC)
-#  include <acxx_demangle.h>
-# endif  // GTEST_HASH_CXXABI_H_
+#if GTEST_HAS_CXXABI_H_
+#include <cxxabi.h>
+#elif defined(__HP_aCC)
+#include <acxx_demangle.h>
+#endif  // GTEST_HASH_CXXABI_H_
 
 namespace testing {
 namespace internal {
@@ -61,6 +67,22 @@
       s.erase(strlen("std"), end - strlen("std"));
     }
   }
+
+  // Strip redundant spaces in typename to match MSVC
+  // For example, std::pair<int, bool> -> std::pair<int,bool>
+  static const char to_search[] = ", ";
+  static const char replace_str[] = ",";
+  size_t pos = 0;
+  while (true) {
+    // Get the next occurrence from the current position
+    pos = s.find(to_search, pos);
+    if (pos == std::string::npos) {
+      break;
+    }
+    // Replace this occurrence of substring
+    s.replace(pos, strlen(to_search), replace_str);
+    pos += strlen(replace_str);
+  }
   return s;
 }
 
@@ -79,6 +101,20 @@
   const std::string name_str(status == 0 ? readable_name : name);
   free(readable_name);
   return CanonicalizeForStdLibVersioning(name_str);
+#elif defined(_MSC_VER)
+  // Strip struct and class due to differences between
+  // MSVC and other compilers. std::pair<int,bool> is printed as
+  // "struct std::pair<int,bool>" when using MSVC vs "std::pair<int, bool>" with
+  // other compilers.
+  std::string s = name;
+  // Only strip the leading "struct " and "class ", so uses rfind == 0 to
+  // ensure that
+  if (s.rfind("struct ", 0) == 0) {
+    s = s.substr(strlen("struct "));
+  } else if (s.rfind("class ", 0) == 0) {
+    s = s.substr(strlen("class "));
+  }
+  return s;
 #else
   return name;
 #endif  // GTEST_HAS_CXXABI_H_ || __HP_aCC
@@ -101,7 +137,9 @@
 // A unique type indicating an empty node
 struct None {};
 
-# define GTEST_TEMPLATE_ template <typename T> class
+#define GTEST_TEMPLATE_ \
+  template <typename T> \
+  class
 
 // The template "selector" struct TemplateSel<Tmpl> is used to
 // represent Tmpl, which must be a class template with one type
@@ -119,8 +157,7 @@
   };
 };
 
-# define GTEST_BIND_(TmplSel, T) \
-  TmplSel::template Bind<T>::type
+#define GTEST_BIND_(TmplSel, T) TmplSel::template Bind<T>::type
 
 template <GTEST_TEMPLATE_ Head_, GTEST_TEMPLATE_... Tail_>
 struct Templates {
diff --git a/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h b/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h
index d172ddc..2db9972 100644
--- a/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h
+++ b/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h
@@ -2,7 +2,7 @@
  * <sys/capability.h>
  *
  * Copyright (C) 1997   Aleph One
- * Copyright (C) 1997,8, 2008,19,20 Andrew G. Morgan <morgan@kernel.org>
+ * Copyright (C) 1997,8, 2008,19-22 Andrew G. Morgan <morgan@kernel.org>
  *
  * defunct POSIX.1e Standard: 25.2 Capabilities           <sys/capability.h>
  */
@@ -15,13 +15,18 @@
 #endif
 
 /*
+ * Provide a programmatic way to #ifdef around features.
+ */
+#define LIBCAP_MAJOR 2
+#define LIBCAP_MINOR 69
+
+/*
  * This file complements the kernel file by providing prototype
  * information for the user library.
  */
 
 #include <sys/types.h>
 #include <stdint.h>
-#include <linux/types.h>
 
 #ifndef __user
 #define __user
@@ -54,6 +59,26 @@
 extern cap_value_t cap_max_bits(void);
 
 /*
+ * cap_proc_root reads and (optionally: when root != NULL) changes
+ * libcap's notion of where the "/proc" filesystem is mounted. When
+ * the return value is NULL, it should be interpreted as the
+ * value "/proc".
+ *
+ * Note, this is a global value and not considered thread safe to
+ * write - so the client should take suitable care when changing
+ * it.
+ *
+ * Further, libcap will allocate a memory copy for storing the
+ * replacement root, and it is this kind of memory that is returned.
+ * So, when changing the value, the caller should
+ * cap_free(the-return-value) else cause a memory leak.
+ *
+ * Note, the library uses a destructor to clean up the live allocated
+ * value of the working setting.
+ */
+extern char *cap_proc_root(const char *root);
+
+/*
  * Set identifiers
  */
 typedef enum {
@@ -102,11 +127,13 @@
 #define CAP_MODE_NOPRIV       ((cap_mode_t) 1)
 #define CAP_MODE_PURE1E_INIT  ((cap_mode_t) 2)
 #define CAP_MODE_PURE1E       ((cap_mode_t) 3)
+#define CAP_MODE_HYBRID       ((cap_mode_t) 4)
 
 /* libcap/cap_alloc.c */
 extern cap_t      cap_dup(cap_t);
 extern int        cap_free(void *);
 extern cap_t      cap_init(void);
+extern cap_iab_t  cap_iab_dup(cap_iab_t);
 extern cap_iab_t  cap_iab_init(void);
 
 /* libcap/cap_flag.c */
@@ -115,10 +142,14 @@
 			    cap_flag_value_t);
 extern int     cap_clear(cap_t);
 extern int     cap_clear_flag(cap_t, cap_flag_t);
+extern int     cap_fill_flag(cap_t cap_d, cap_flag_t to,
+                             cap_t ref, cap_flag_t from);
 extern int     cap_fill(cap_t, cap_flag_t, cap_flag_t);
 
 #define CAP_DIFFERS(result, flag)  (((result) & (1 << (flag))) != 0)
 extern int     cap_compare(cap_t, cap_t);
+#define CAP_IAB_DIFFERS(result, vector)  (((result) & (1 << (vector))) != 0)
+extern int     cap_iab_compare(cap_iab_t, cap_iab_t);
 
 extern cap_flag_value_t cap_iab_get_vector(cap_iab_t, cap_iab_vector_t,
 					 cap_value_t);
@@ -185,6 +216,7 @@
 extern int cap_setgroups(gid_t gid, size_t ngroups, const gid_t groups[]);
 
 extern cap_iab_t cap_iab_get_proc(void);
+extern cap_iab_t cap_iab_get_pid(pid_t);
 extern int cap_iab_set_proc(cap_iab_t iab);
 
 typedef struct cap_launch_s *cap_launch_t;
@@ -192,14 +224,14 @@
 extern cap_launch_t cap_new_launcher(const char *arg0, const char * const *argv,
 				     const char * const *envp);
 extern cap_launch_t cap_func_launcher(int (callback_fn)(void *detail));
-extern void cap_launcher_callback(cap_launch_t attr,
-				  int (callback_fn)(void *detail));
-extern void cap_launcher_setuid(cap_launch_t attr, uid_t uid);
-extern void cap_launcher_setgroups(cap_launch_t attr, gid_t gid,
-				   int ngroups, const gid_t *groups);
-extern void cap_launcher_set_mode(cap_launch_t attr, cap_mode_t flavor);
+extern int cap_launcher_callback(cap_launch_t attr,
+				 int (callback_fn)(void *detail));
+extern int cap_launcher_setuid(cap_launch_t attr, uid_t uid);
+extern int cap_launcher_setgroups(cap_launch_t attr, gid_t gid,
+				  int ngroups, const gid_t *groups);
+extern int cap_launcher_set_mode(cap_launch_t attr, cap_mode_t flavor);
 extern cap_iab_t cap_launcher_set_iab(cap_launch_t attr, cap_iab_t iab);
-extern void cap_launcher_set_chroot(cap_launch_t attr, const char *chroot);
+extern int cap_launcher_set_chroot(cap_launch_t attr, const char *chroot);
 extern pid_t cap_launch(cap_launch_t attr, void *detail);
 
 /*
diff --git a/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h b/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h
index 09b5563..56c9180 100644
--- a/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h
+++ b/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h
@@ -14,7 +14,9 @@
 #ifndef _UAPI_LINUX_CAPABILITY_H
 #define _UAPI_LINUX_CAPABILITY_H
 
-#include <linux/types.h>
+#include <stdint.h>
+#define __u32 uint32_t
+#define __le32 __u32
 
 /* User-level do most of the mapping between kernel and user
    capabilities based on the version tag given by the kernel. The
@@ -422,5 +424,4 @@
 #define CAP_TO_INDEX(x)     ((x) >> 5)        /* 1 << 5 == bits in __u32 */
 #define CAP_TO_MASK(x)      (1u << ((x) & 31)) /* mask for indexed __u32 */
 
-
 #endif /* _UAPI_LINUX_CAPABILITY_H */
diff --git a/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h b/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h
index 39c771b..cc861bd 100644
--- a/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h
+++ b/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h
@@ -1,6 +1,7 @@
 /* inffast_chunk.h -- header to use inffast_chunk.c
  * Copyright (C) 1995-2003, 2010 Mark Adler
  * Copyright (C) 2017 ARM, Inc.
+ * Copyright 2023 The Chromium Authors
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -11,16 +12,31 @@
 
 #include "inffast.h"
 
-/* INFLATE_FAST_MIN_INPUT: the minimum number of input bytes needed so that
-   we can safely call inflate_fast() with only one up-front bounds check. One
+/* INFLATE_FAST_MIN_INPUT:
+   The minimum number of input bytes needed so that we can safely call
+   inflate_fast() with only one up-front bounds check. One
    length/distance code pair (15 bits for the length code, 5 bits for length
    extra, 15 bits for the distance code, 13 bits for distance extra) requires
-   reading up to 48 input bits (6 bytes). The wide input data reading option
-   requires a little endian machine, and reads 64 input bits (8 bytes).
+   reading up to 48 input bits. Additionally, in the same iteraction, we may
+   decode two literals from the root-table (requiring MIN_OUTPUT = 258 + 2).
+
+   Each root-table entry is up to 10 bits, for a total of 68 input bits each
+   iteraction.
+
+   The refill variant reads 8 bytes from the buffer at a time, and advances
+   the input pointer by up to 7 bytes, ensuring there are at least 56-bits
+   available in the bit-buffer. The technique was documented by Fabian Giesen
+   on his blog as variant 4 in the article 'Reading bits in far too many ways':
+   https://fgiesen.wordpress.com/2018/02/20/
+
+   In the worst case, we may refill twice in the same iteraction, requiring
+   MIN_INPUT = 8 + 7.
 */
 #ifdef INFLATE_CHUNK_READ_64LE
 #undef INFLATE_FAST_MIN_INPUT
-#define INFLATE_FAST_MIN_INPUT 8
+#define INFLATE_FAST_MIN_INPUT 15
+#undef INFLATE_FAST_MIN_OUTPUT
+#define INFLATE_FAST_MIN_OUTPUT 260
 #endif
 
 void ZLIB_INTERNAL inflate_fast_chunk_ OF((z_streamp strm, unsigned start));
diff --git a/current/sdk/common_os/include/external/zlib/cpu_features.h b/current/sdk/common_os/include/external/zlib/cpu_features.h
index 279246c..aed3e83 100644
--- a/current/sdk/common_os/include/external/zlib/cpu_features.h
+++ b/current/sdk/common_os/include/external/zlib/cpu_features.h
@@ -14,5 +14,6 @@
 extern int x86_cpu_enable_sse2;
 extern int x86_cpu_enable_ssse3;
 extern int x86_cpu_enable_simd;
+extern int x86_cpu_enable_avx512;
 
 void cpu_check_features(void);
diff --git a/current/sdk/common_os/include/external/zlib/crc32_simd.h b/current/sdk/common_os/include/external/zlib/crc32_simd.h
index c0346dc..8462464 100644
--- a/current/sdk/common_os/include/external/zlib/crc32_simd.h
+++ b/current/sdk/common_os/include/external/zlib/crc32_simd.h
@@ -19,12 +19,18 @@
                                          z_size_t len,
                                          uint32_t crc);
 
+uint32_t ZLIB_INTERNAL crc32_avx512_simd_(const unsigned char* buf,
+                                          z_size_t len,
+                                          uint32_t crc);
+
 /*
  * crc32_sse42_simd_ buffer size constraints: see the use in zlib/crc32.c
  * for computing the crc32 of an arbitrary length buffer.
  */
 #define Z_CRC32_SSE42_MINIMUM_LENGTH 64
 #define Z_CRC32_SSE42_CHUNKSIZE_MASK 15
+#define Z_CRC32_AVX512_MINIMUM_LENGTH 256
+#define Z_CRC32_AVX512_CHUNKSIZE_MASK 63
 
 /*
  * CRC32 checksums using ARMv8-a crypto instructions.
diff --git a/current/sdk/common_os/include/external/zlib/google/zip.h b/current/sdk/common_os/include/external/zlib/google/zip.h
index e3036c8..ea87786 100644
--- a/current/sdk/common_os/include/external/zlib/google/zip.h
+++ b/current/sdk/common_os/include/external/zlib/google/zip.h
@@ -10,10 +10,10 @@
 #include <utility>
 #include <vector>
 
-#include "base/callback.h"
 #include "base/containers/span.h"
 #include "base/files/file_path.h"
 #include "base/files/platform_file.h"
+#include "base/functional/callback.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
 
diff --git a/current/sdk/common_os/include/external/zlib/google/zip_reader.h b/current/sdk/common_os/include/external/zlib/google/zip_reader.h
index 48244c8..b7680cc 100644
--- a/current/sdk/common_os/include/external/zlib/google/zip_reader.h
+++ b/current/sdk/common_os/include/external/zlib/google/zip_reader.h
@@ -11,9 +11,9 @@
 #include <memory>
 #include <string>
 
-#include "base/callback.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "base/functional/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/time/time.h"
diff --git a/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
index 9cb8195..6c95c68 100644
--- a/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
+++ b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+/** JNI utils for nativehelper-internal use. */
+
 #pragma once
 
 #include <jni.h>
diff --git a/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
index cd35a88..32ae885 100644
--- a/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
+++ b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
@@ -23,6 +23,8 @@
 #include "nativehelper_utils.h"
 
 // A smart pointer that deletes a JNI local reference when it goes out of scope.
+//
+// For creating a `ScopedLocalRef<jstring>`, consider using `CREATE_UTF_OR_RETURN`.
 template<typename T>
 class ScopedLocalRef {
 public:
diff --git a/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
index 363ff42..25de0fc 100644
--- a/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
+++ b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
@@ -23,6 +23,11 @@
 
 #include "nativehelper_utils.h"
 
+// Protect this with __has_include to cope with `stl: "none"` users.
+#if __has_include(<string_view>)
+#include <string_view>
+#endif
+
 // A smart pointer that provides read-only access to a Java string's UTF chars.
 // Unlike GetStringUTFChars, we throw NullPointerException rather than abort if
 // passed a null jstring, and c_str will return nullptr.
@@ -32,6 +37,8 @@
 //   if (name.c_str() == nullptr) {
 //     return nullptr;
 //   }
+//
+// Also consider using `GET_UTF_OR_RETURN`, a shorthand for the 4 lines above.
 class ScopedUtfChars {
  public:
   ScopedUtfChars(JNIEnv* env, jstring s) : env_(env), string_(s) {
@@ -84,6 +91,10 @@
     return utf_chars_[n];
   }
 
+#if __has_include(<string_view>)
+  operator std::string_view() const { return utf_chars_; }
+#endif
+
  private:
   JNIEnv* env_;
   jstring string_;
@@ -91,4 +102,3 @@
 
   DISALLOW_COPY_AND_ASSIGN(ScopedUtfChars);
 };
-
diff --git a/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/utils.h b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/utils.h
new file mode 100644
index 0000000..12f591b
--- /dev/null
+++ b/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/utils.h
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * JNI utils for external use.
+ *
+ * This file may only be included by C++ code.
+ */
+
+#pragma once
+
+#include <jni.h>
+
+#include <string>
+
+#include "nativehelper/scoped_local_ref.h"
+#include "nativehelper/scoped_utf_chars.h"
+
+namespace android {
+namespace jnihelp {
+
+// Implementation details. DO NOT use directly.
+namespace internal {
+
+[[maybe_unused]] static const char* GetCStr(const char* str) { return str; }
+[[maybe_unused]] static const char* GetCStr(const std::string& str) { return str.c_str(); }
+
+}  // namespace internal
+
+// A class that implicitly casts to the default values of various JNI types.
+// Used for returning from a JNI method when an exception occurs, where we don't care about the
+// return value.
+class JniDefaultValue {
+   public:
+    operator jboolean() const { return JNI_FALSE; }
+    operator jbyte() const { return 0; }
+    operator jchar() const { return 0; }
+    operator jshort() const { return 0; }
+    operator jint() const { return 0; }
+    operator jlong() const { return 0; }
+    operator jfloat() const { return 0; }
+    operator jdouble() const { return 0; }
+    operator jobject() const { return nullptr; }
+    operator jclass() const { return nullptr; }
+    operator jstring() const { return nullptr; }
+    operator jarray() const { return nullptr; }
+    operator jobjectArray() const { return nullptr; }
+    operator jbooleanArray() const { return nullptr; }
+    operator jbyteArray() const { return nullptr; }
+    operator jcharArray() const { return nullptr; }
+    operator jshortArray() const { return nullptr; }
+    operator jintArray() const { return nullptr; }
+    operator jlongArray() const { return nullptr; }
+    operator jfloatArray() const { return nullptr; }
+    operator jdoubleArray() const { return nullptr; }
+    operator jthrowable() const { return nullptr; }
+};
+
+// Gets `ScopedUtfChars` from a `jstring` expression.
+//
+// Throws `NullPointerException` and returns the default value if the given `jstring` is a null
+// pointer.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN_VOID(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// The idiomatic way to construct an `std::string` using this macro (an additional string copy is
+// performed):
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   std::string str(GET_UTF_OR_RETURN(env, j_str));
+//   // Safely use `str` here...
+// }
+#define GET_UTF_OR_RETURN(env, expr) \
+    GET_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define GET_UTF_OR_RETURN_VOID(env, expr) GET_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define GET_UTF_OR_RETURN_IMPL_(env, expr, ...)                          \
+    ({                                                                   \
+        ScopedUtfChars __or_return_scoped_utf_chars(env, expr);          \
+        if (__or_return_scoped_utf_chars.c_str() == nullptr) {           \
+            /* Return with a pending exception from `ScopedUtfChars`. */ \
+            return __VA_ARGS__;                                          \
+        }                                                                \
+        std::move(__or_return_scoped_utf_chars);                         \
+    })
+
+// Creates `ScopedLocalRef<jstring>` from a `const char*` or `std::string` expression using
+// NewStringUTF.
+//
+// Throws `OutOfMemoryError` and returns the default value if the system runs out of memory.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN(env, str);
+//   // Safely use `j_str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN_VOID(env, str);
+//   // Safely use `j_str` here...
+// }
+#define CREATE_UTF_OR_RETURN(env, expr) \
+    CREATE_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define CREATE_UTF_OR_RETURN_VOID(env, expr) CREATE_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define CREATE_UTF_OR_RETURN_IMPL_(env, expr, ...)                                             \
+    ({                                                                                         \
+        const char* __or_return_c_str;                                                         \
+        ScopedLocalRef<jstring> __or_return_local_ref(                                         \
+            env,                                                                               \
+            env->NewStringUTF(__or_return_c_str = android::jnihelp::internal::GetCStr(expr))); \
+        /* `*__or_return_c_str` may be freed here, but we only compare the pointer against     \
+         * nullptr. DO NOT DEREFERENCE `*__or_return_c_str` after this point. */               \
+        /* `NewStringUTF` returns nullptr when OOM or the input is nullptr, but only throws an \
+         * exception when OOM. */                                                              \
+        if (__or_return_local_ref == nullptr && __or_return_c_str != nullptr) {                \
+            /* Return with a pending exception from `NewStringUTF`. */                         \
+            return __VA_ARGS__;                                                                \
+        }                                                                                      \
+        std::move(__or_return_local_ref);                                                      \
+    })
+
+}  // namespace jnihelp
+}  // namespace android
diff --git a/current/sdk/common_os/include/libnativehelper/include/nativehelper/Utils.h b/current/sdk/common_os/include/libnativehelper/include/nativehelper/Utils.h
new file mode 100644
index 0000000..c05b2f1
--- /dev/null
+++ b/current/sdk/common_os/include/libnativehelper/include/nativehelper/Utils.h
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <nativehelper/utils.h>
diff --git a/current/sdk/common_os/include/system/libbase/include/android-base/errors.h b/current/sdk/common_os/include/system/libbase/include/android-base/errors.h
index 61fdbd8..99029d1 100644
--- a/current/sdk/common_os/include/system/libbase/include/android-base/errors.h
+++ b/current/sdk/common_os/include/system/libbase/include/android-base/errors.h
@@ -72,38 +72,41 @@
 // If implicit conversion compilation errors occur involving a value type with a templated
 // forwarding ref ctor, compilation with cpp20 or explicitly converting to the desired
 // return type is required.
-#define OR_RETURN(expr)                                                                 \
-  ({                                                                                    \
-    decltype(expr)&& tmp = (expr);                                                      \
-    typedef android::base::OkOrFail<std::remove_reference_t<decltype(tmp)>> ok_or_fail; \
-    if (!ok_or_fail::IsOk(tmp)) {                                                       \
-      return ok_or_fail::Fail(std::move(tmp));                                          \
-    }                                                                                   \
-    ok_or_fail::Unwrap(std::move(tmp));                                                 \
+#define OR_RETURN(expr)                                                                  \
+  ({                                                                                     \
+    decltype(expr)&& __or_return_expr = (expr);                                          \
+    typedef android::base::OkOrFail<std::remove_reference_t<decltype(__or_return_expr)>> \
+        ok_or_fail;                                                                      \
+    if (!ok_or_fail::IsOk(__or_return_expr)) {                                           \
+      return ok_or_fail::Fail(std::move(__or_return_expr));                              \
+    }                                                                                    \
+    ok_or_fail::Unwrap(std::move(__or_return_expr));                                     \
   })
 
 // Same as OR_RETURN, but aborts if expr is a failure.
 #if defined(__BIONIC__)
 #define OR_FATAL(expr)                                                                  \
   ({                                                                                    \
-    decltype(expr)&& tmp = (expr);                                                      \
-    typedef android::base::OkOrFail<std::remove_reference_t<decltype(tmp)>> ok_or_fail; \
-    if (!ok_or_fail::IsOk(tmp)) {                                                       \
-      __assert(__FILE__, __LINE__, ok_or_fail::ErrorMessage(tmp).c_str());              \
+    decltype(expr)&& __or_fatal_expr = (expr);                                          \
+    typedef android::base::OkOrFail<std::remove_reference_t<decltype(__or_fatal_expr)>> \
+        ok_or_fail;                                                                     \
+    if (!ok_or_fail::IsOk(__or_fatal_expr)) {                                           \
+      __assert(__FILE__, __LINE__, ok_or_fail::ErrorMessage(__or_fatal_expr).c_str());  \
     }                                                                                   \
-    ok_or_fail::Unwrap(std::move(tmp));                                                 \
+    ok_or_fail::Unwrap(std::move(__or_fatal_expr));                                     \
   })
 #else
 #define OR_FATAL(expr)                                                                  \
   ({                                                                                    \
-    decltype(expr)&& tmp = (expr);                                                      \
-    typedef android::base::OkOrFail<std::remove_reference_t<decltype(tmp)>> ok_or_fail; \
-    if (!ok_or_fail::IsOk(tmp)) {                                                       \
+    decltype(expr)&& __or_fatal_expr = (expr);                                          \
+    typedef android::base::OkOrFail<std::remove_reference_t<decltype(__or_fatal_expr)>> \
+        ok_or_fail;                                                                     \
+    if (!ok_or_fail::IsOk(__or_fatal_expr)) {                                           \
       fprintf(stderr, "%s:%d: assertion \"%s\" failed", __FILE__, __LINE__,             \
-              ok_or_fail::ErrorMessage(tmp).c_str());                                   \
+              ok_or_fail::ErrorMessage(__or_fatal_expr).c_str());                       \
       abort();                                                                          \
     }                                                                                   \
-    ok_or_fail::Unwrap(std::move(tmp));                                                 \
+    ok_or_fail::Unwrap(std::move(__or_fatal_expr));                                     \
   })
 #endif
 
diff --git a/current/sdk/common_os/include/system/libbase/include/android-base/macros.h b/current/sdk/common_os/include/system/libbase/include/android-base/macros.h
index f141f34..b9ee402 100644
--- a/current/sdk/common_os/include/system/libbase/include/android-base/macros.h
+++ b/current/sdk/common_os/include/system/libbase/include/android-base/macros.h
@@ -131,7 +131,7 @@
 // In either case this macro has no effect on runtime behavior and performance
 // of code.
 #ifndef FALLTHROUGH_INTENDED
-#define FALLTHROUGH_INTENDED [[clang::fallthrough]]  // NOLINT
+#define FALLTHROUGH_INTENDED [[fallthrough]]  // NOLINT
 #endif
 
 // Current ABI string
diff --git a/current/sdk/common_os/include/system/libbase/include/android-base/properties.h b/current/sdk/common_os/include/system/libbase/include/android-base/properties.h
index 021f466..1760ac7 100644
--- a/current/sdk/common_os/include/system/libbase/include/android-base/properties.h
+++ b/current/sdk/common_os/include/system/libbase/include/android-base/properties.h
@@ -20,6 +20,7 @@
 
 #include <chrono>
 #include <limits>
+#include <mutex>
 #include <optional>
 #include <string>
 
@@ -75,17 +76,28 @@
 // this class helps optimize those lookups.
 class CachedProperty {
  public:
+  explicit CachedProperty(std::string property_name);
+
+  // Kept for ABI compatibility.
   explicit CachedProperty(const char* property_name);
 
   // Returns the current value of the underlying system property as cheaply as possible.
   // The returned pointer is valid until the next call to Get. Because most callers are going
-  // to want to parse the string returned here and cached that as well, this function performs
+  // to want to parse the string returned here and cache that as well, this function performs
   // no locking, and is completely thread unsafe. It is the caller's responsibility to provide a
   // lock for thread-safety.
   //
   // Note: *changed can be set to true even if the contents of the property remain the same.
   const char* Get(bool* changed = nullptr);
 
+  // Waits for the property to be changed and then reads its value.
+  // Times out returning nullptr, after `relative_timeout`
+  //
+  // Note: this can return the same value multiple times in a row if the property was set to the
+  // same value or if multiple changes happened before the current thread was resumed.
+  const char* WaitForChange(
+      std::chrono::milliseconds relative_timeout = std::chrono::milliseconds::max());
+
  private:
   std::string property_name_;
   const prop_info* prop_info_;
@@ -95,6 +107,55 @@
   bool is_read_only_;
   const char* read_only_property_;
 };
+
+// Helper class for passing the output of CachedProperty to a parser function, and then caching
+// that as well.
+template <typename Parser>
+class CachedParsedProperty {
+ public:
+  using value_type = std::remove_reference_t<std::invoke_result_t<Parser, const char*>>;
+
+  CachedParsedProperty(std::string property_name, Parser parser)
+      : cached_property_(std::move(property_name)), parser_(std::move(parser)) {}
+
+  // Returns the parsed value.
+  // This function is internally-synchronized, so use from multiple threads is safe (but ordering
+  // of course cannot be guaranteed without external synchronization).
+  value_type Get(bool* changed = nullptr) {
+    std::lock_guard<std::mutex> lock(mutex_);
+    bool local_changed = false;
+    const char* value = cached_property_.Get(&local_changed);
+    if (!cached_result_ || local_changed) {
+      cached_result_ = parser_(value);
+    }
+
+    if (changed) *changed = local_changed;
+    return *cached_result_;
+  }
+
+ private:
+  std::mutex mutex_;
+  CachedProperty cached_property_;
+  std::optional<value_type> cached_result_;
+
+  Parser parser_;
+};
+
+// Helper for CachedParsedProperty that uses android::base::ParseBool.
+class CachedBoolProperty {
+ public:
+  explicit CachedBoolProperty(std::string property_name);
+
+  // Returns the parsed bool, or std::nullopt if it wasn't set or couldn't be parsed.
+  std::optional<bool> GetOptional();
+
+  // Returns the parsed bool, or default_value if it wasn't set or couldn't be parsed.
+  bool Get(bool default_value);
+
+ private:
+  CachedParsedProperty<std::optional<bool> (*)(const char*)> cached_parsed_property_;
+};
+
 #endif
 
 static inline int HwTimeoutMultiplier() {
diff --git a/current/sdk/common_os/include/system/libbase/include/android-base/result.h b/current/sdk/common_os/include/system/libbase/include/android-base/result.h
index 3c325f2..be36878 100644
--- a/current/sdk/common_os/include/system/libbase/include/android-base/result.h
+++ b/current/sdk/common_os/include/system/libbase/include/android-base/result.h
@@ -137,7 +137,7 @@
     return android::base::unexpected(ResultError<E>(message_, code_));
   }
 
-  std::string message() const { return message_; }
+  const std::string& message() const { return message_; }
   const E& code() const { return code_; }
 
  private:
diff --git a/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml b/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
index 0627ff0..365fbbf 100644
--- a/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
+++ b/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
@@ -18,11 +18,17 @@
   <compat-change description="If this change is enabled, {@link #getHardwareAddress()} returns null when the hardware address is &lt;a href=&quot;#access-restrictions&quot;&gt;inaccessible&lt;/a&gt;. If the change is disabled, the default MAC address (02:00:00:00:00:00) is returned instead." enableSinceTargetSdk="30" id="170188668" name="RETURN_NULL_HARDWARE_ADDRESS">
     <meta-data definedIn="java.net.NetworkInterface" sourcePosition="libcore/ojluni/src/main/java/java/net/NetworkInterface.java:79" />
   </compat-change>
+  <compat-change description="Since Android 15 Arrays.asList(...).toArray()'s component type is {@link Object}, not the underlying array's elements type. So the following code will throw {@link ClassCastException}: &lt;pre&gt;{@code String[] elements = (String[]) Arrays.asList(&quot;one&quot;, &quot;two&quot;).toArray(); }&lt;/pre&gt; You can overcome this by using {@link Collection#toArray(Object[])}: &lt;pre&gt;{@code String[] elements = Arrays.asList(&quot;two&quot;, &quot;one&quot;).toArray(new String[0]); }&lt;/pre&gt;" enableSinceTargetSdk="10000" id="202956589" name="DO_NOT_CLONE_IN_ARRAYS_AS_LIST">
+    <meta-data definedIn="java.util.Arrays" sourcePosition="libcore/ojluni/src/main/java/java/util/Arrays.java:4186" />
+  </compat-change>
+  <compat-change description="Prior to Android 15 (V), validations of argument index, flags, width, and precision were lax - it was allowed to use 0 and Integer.MAX_VALUE + 1 as argument index. &lt;p&gt; Now it will throw exception, as documentation says. Flag is enabled on Android 15+." enableAfterTargetSdk="10000" id="270674727" name="ENABLE_STRICT_FORMATTER_VALIDATION">
+    <meta-data definedIn="java.util.Formatter" sourcePosition="libcore/ojluni/src/main/java/java/util/Formatter.java:2893" />
+  </compat-change>
   <compat-change description="Since Android 14, {@link PriorityQueue#offer(E)} requires all elements to be comparable if there was no comparator. Previously, the first element being added did not need to be comparable. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="289878283" name="PRIORITY_QUEUE_OFFER_NON_COMPARABLE_ONE_ELEMENT">
     <meta-data definedIn="java.util.PriorityQueue" sourcePosition="libcore/ojluni/src/main/java/java/util/PriorityQueue.java:1002" />
   </compat-change>
   <compat-change description="Since Android 14 {@link #fromString} does more strict input argument validation. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="263076149" name="ENABLE_STRICT_VALIDATION">
-    <meta-data definedIn="java.util.UUID" sourcePosition="libcore/ojluni/src/main/java/java/util/UUID.java:199" />
+    <meta-data definedIn="java.util.UUID" sourcePosition="libcore/ojluni/src/main/java/java/util/UUID.java:235" />
   </compat-change>
   <compat-change description="Since Android 14, {@link Matcher} becomes stricter for the replacement syntax and group references used by its methods, e.g. {@link #appendReplacement(StringBuffer, String)}. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="247079863" name="DISALLOW_INVALID_GROUP_REFERENCE">
     <meta-data definedIn="java.util.regex.Matcher" sourcePosition="libcore/ojluni/src/main/java/java/util/regex/Matcher.java:881" />
@@ -33,4 +39,7 @@
   <compat-change description="Since Android 11, formatter classes, e.g. java.text.SimpleDateFormat, no longer provide English data when Locale.ROOT format is requested. Please use Locale.ENGLISH to format in English. Note that Locale.ROOT is used as language/country neutral locale or fallback locale, and does not guarantee to represent English locale. This flag is only for documentation and can't be overridden by app. Please use {@code targetSdkVersion} to enable the new behavior." enableAfterTargetSdk="29" id="159047832" name="USE_REAL_ROOT_LOCALE">
     <meta-data definedIn="libcore.icu.LocaleData" sourcePosition="libcore/luni/src/main/java/libcore/icu/LocaleData.java:77" />
   </compat-change>
+  <compat-change description="On Android V+ when this flag is enabled language codes are no longer converted to their obsolete forms: iw maps to he, ji maps to yi, and in maps to id." enableSinceTargetSdk="10000" id="291868760" name="USE_NEW_ISO_LOCALE_CODES">
+    <meta-data definedIn="sun.util.locale.BaseLocale" sourcePosition="libcore/ojluni/src/main/java/sun/util/locale/BaseLocale.java:115" />
+  </compat-change>
 </config>
\ No newline at end of file
diff --git a/current/sdk/doctags/known_oj_tags.txt b/current/sdk/doctags/known_oj_tags.txt
index 91c56b0..ab95817 100644
--- a/current/sdk/doctags/known_oj_tags.txt
+++ b/current/sdk/doctags/known_oj_tags.txt
@@ -20,4 +20,5 @@
 @spec
 @revised
 @jls
-@jvms
\ No newline at end of file
+@jvms
+@systemProperty
diff --git a/current/sdk/hiddenapi/annotation-flags.csv b/current/sdk/hiddenapi/annotation-flags.csv
index ec078e9..385eacc 100644
--- a/current/sdk/hiddenapi/annotation-flags.csv
+++ b/current/sdk/hiddenapi/annotation-flags.csv
@@ -539,6 +539,7 @@
 Ljava/nio/CharBuffer;->toString(II)Ljava/lang/String;,max-target-r
 Ljava/nio/DirectByteBuffer;-><init>(JI)V,max-target-r
 Ljava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;,unsupported
+Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/MappedByteBuffer;,public-api
 Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,public-api
 Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,public-api
 Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,public-api
@@ -567,6 +568,22 @@
 Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,public-api
 Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,public-api
 Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;,public-api
 Ljava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;,unsupported
 Ljava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I,unsupported
 Ljava/nio/NIOAccess;->getBasePointer(Ljava/nio/Buffer;)J,unsupported
diff --git a/current/sdk/hiddenapi/filtered-flags.csv b/current/sdk/hiddenapi/filtered-flags.csv
index f48c849..92da957 100644
--- a/current/sdk/hiddenapi/filtered-flags.csv
+++ b/current/sdk/hiddenapi/filtered-flags.csv
@@ -399,6 +399,7 @@
 Landroid/system/OsConstants;->IPV6_MULTICAST_HOPS:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_IF:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_LOOP:I,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/system/OsConstants;->IPV6_PKTINFO:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVDSTOPTS:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPLIMIT:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPOPTS:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -462,6 +463,7 @@
 Landroid/system/OsConstants;->O_SYNC:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->O_TRUNC:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->O_WRONLY:I,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/system/OsConstants;->PACKET_IGNORE_OUTGOING:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->POLLERR:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->POLLHUP:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->POLLIN:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -550,6 +552,7 @@
 Landroid/system/OsConstants;->SOCK_RAW:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOCK_SEQPACKET:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOCK_STREAM:I,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/system/OsConstants;->SOL_PACKET:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOL_SOCKET:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOL_UDP:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SO_BINDTODEVICE:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -4311,7 +4314,6 @@
 Ldalvik/system/ZygoteHooks;->startZygoteNoThreadCreation()V,core-platform-api,lo-prio,max-target-o
 Ldalvik/system/ZygoteHooks;->stopZygoteNoThreadCreation()V,core-platform-api,lo-prio,max-target-o
 Ldalvik/system/ZygoteHooks;->token:J,lo-prio,max-target-o
-Ldalvik/system/ZygoteHooks;->waitUntilAllThreadsStopped()V,lo-prio,max-target-o
 Ljava/awt/font/NumericShaper$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/awt/font/NumericShaper$Range;->ARABIC:Ljava/awt/font/NumericShaper$Range;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/awt/font/NumericShaper$Range;->BALINESE:Ljava/awt/font/NumericShaper$Range;,core-platform-api,public-api,sdk,system-api,test-api
@@ -5575,9 +5577,9 @@
 Ljava/io/ObjectOutputStream;->writeTypeString(Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/io/ObjectOutputStream;->writeUTF(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectOutputStream;->writeUnshared(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectStreamClass$1;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectStreamClass$2;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectStreamClass$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -6469,6 +6471,7 @@
 Ljava/lang/CharSequence;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->codePoints()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->compare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/CharSequence;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->length()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
@@ -7047,6 +7050,7 @@
 Ljava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->codePointCount([CII)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->codePointCountImpl([CII)I,lo-prio,max-target-o
+Ljava/lang/Character;->codePointOf(Ljava/lang/String;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->compare(CC)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Character;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -7142,6 +7146,7 @@
 Ljava/lang/Character;->toLowerCaseImpl(I)I,lo-prio,max-target-o
 Ljava/lang/Character;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->toString(C)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Character;->toString(I)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->toSurrogates(I[CI)V,lo-prio,max-target-o
 Ljava/lang/Character;->toTitleCase(C)C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->toTitleCase(I)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -7151,6 +7156,8 @@
 Ljava/lang/Character;->toUpperCaseImpl(I)I,lo-prio,max-target-o
 Ljava/lang/Character;->value:C,max-target-p
 Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class$Caches;-><init>()V,lo-prio,max-target-o
 Ljava/lang/Class$Caches;->genericInterfaces:Llibcore/util/BasicLruCache;,lo-prio,max-target-o
 Ljava/lang/Class;-><init>()V,unsupported
@@ -7222,7 +7229,6 @@
 Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class;->getInnerClassFlags(I)I,lo-prio,max-target-o
-Ljava/lang/Class;->getInnerClassName()Ljava/lang/String;,lo-prio,max-target-o
 Ljava/lang/Class;->getInstanceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;,lo-prio,max-target-o
 Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class;->getInterfacesInternal()[Ljava/lang/Class;,lo-prio,max-target-o
@@ -7302,11 +7308,13 @@
 Ljava/lang/ClassFormatError;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassFormatError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassFormatError;->serialVersionUID:J,sdk
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader$SystemClassLoader;-><init>()V,lo-prio,max-target-o
 Ljava/lang/ClassLoader$SystemClassLoader;->loader:Ljava/lang/ClassLoader;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader;-><init>(Ljava/lang/ClassLoader;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ClassLoader;-><init>(Ljava/lang/Void;Ljava/lang/ClassLoader;)V,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->allocator:J,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->checkCreateClassLoader()Ljava/lang/Void;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->classTable:J,lo-prio,max-target-o
@@ -7338,7 +7346,6 @@
 Ljava/lang/ClassLoader;->getSystemResources(Ljava/lang/String;)Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ClassLoader;->packages:Ljava/util/HashMap;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->parent:Ljava/lang/ClassLoader;,unsupported
 Ljava/lang/ClassLoader;->proxyCache:Ljava/util/Map;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->registerAsParallelCapable()Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -7350,10 +7357,11 @@
 Ljava/lang/ClassNotFoundException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ClassNotFoundException;->ex:Ljava/lang/Throwable;,lo-prio,max-target-o
-Ljava/lang/ClassNotFoundException;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassNotFoundException;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ClassNotFoundException;->readObject(Ljava/io/ObjectInputStream;)V,sdk
+Ljava/lang/ClassNotFoundException;->serialPersistentFields:[Ljava/io/ObjectStreamField;,sdk
 Ljava/lang/ClassNotFoundException;->serialVersionUID:J,sdk
+Ljava/lang/ClassNotFoundException;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
 Ljava/lang/ClassValue;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassValue;->computeValue(Ljava/lang/Class;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassValue;->get(Ljava/lang/Class;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -7368,6 +7376,8 @@
 Ljava/lang/Compiler;->compileClasses(Ljava/lang/String;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Compiler;->disable()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Compiler;->enable()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/CompoundEnumeration;->hasMoreElements()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/CompoundEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Daemons$Daemon;-><init>(Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/lang/Daemons$Daemon;->getStackTrace()[Ljava/lang/StackTraceElement;,lo-prio,max-target-o
 Ljava/lang/Daemons$Daemon;->interrupt()V,lo-prio,max-target-o
@@ -7455,6 +7465,7 @@
 Ljava/lang/Double;->value:D,max-target-p
 Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Enum$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Enum$EnumDesc;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Enum;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -7495,10 +7506,11 @@
 Ljava/lang/ExceptionInInitializerError;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/Throwable;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ExceptionInInitializerError;->exception:Ljava/lang/Throwable;,lo-prio,max-target-o
-Ljava/lang/ExceptionInInitializerError;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ExceptionInInitializerError;->readObject(Ljava/io/ObjectInputStream;)V,sdk
+Ljava/lang/ExceptionInInitializerError;->serialPersistentFields:[Ljava/io/ObjectStreamField;,sdk
 Ljava/lang/ExceptionInInitializerError;->serialVersionUID:J,sdk
+Ljava/lang/ExceptionInInitializerError;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
 Ljava/lang/Float;-><init>(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Float;-><init>(F)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Float;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -7863,7 +7875,6 @@
 Ljava/lang/Number;->shortValue()S,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/NumberFormatException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/NumberFormatException;->forInputString(Ljava/lang/String;)Ljava/lang/NumberFormatException;,lo-prio,max-target-o
 Ljava/lang/NumberFormatException;->serialVersionUID:J,sdk
 Ljava/lang/Object;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Object;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -8666,9 +8677,18 @@
 Ljava/lang/StringUTF16$LinesSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/StringUTF16$LinesSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/SuppressWarnings;->value()[Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;-><init>(Ljava/util/Properties;)V,lo-prio,max-target-o
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System;-><init>()V,max-target-r
 Ljava/lang/System;->ARRAYCOPY_SHORT_BOOLEAN_ARRAY_THRESHOLD:I,lo-prio,max-target-o
 Ljava/lang/System;->ARRAYCOPY_SHORT_BYTE_ARRAY_THRESHOLD:I,lo-prio,max-target-o
@@ -9255,32 +9275,32 @@
 Ljava/lang/invoke/MethodHandleInfo;->referenceKindToString(I)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->reflectAs(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->toString(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda11;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda21;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda22;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda24;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V,unsupported
 Ljava/lang/invoke/MethodHandles$Lookup;->ALL_MODES:I,lo-prio,max-target-o
@@ -11954,7 +11974,6 @@
 Ljava/nio/Buffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/Buffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/Buffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/Buffer;->truncate()V,lo-prio,max-target-o
 Ljava/nio/BufferOverflowException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/BufferOverflowException;->serialVersionUID:J,sdk
 Ljava/nio/BufferUnderflowException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
@@ -11979,17 +11998,16 @@
 Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->bigEndian:Z,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->clear()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->clear()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->compare(BB)I,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->compareTo(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->equals(BB)Z,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->flip()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->flip()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->get()B,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->get(I)B,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12025,16 +12043,16 @@
 Ljava/nio/ByteBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->isReadOnly:Z,max-target-r
 Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->mark()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->mark()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->mismatch(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->nativeByteOrder:Z,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->offset:I,max-target-r
 Ljava/nio/ByteBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->position(I)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->position(I)Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12065,9 +12083,9 @@
 Ljava/nio/ByteBuffer;->putUnchecked(I[JII)V,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->putUnchecked(I[SII)V,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->reset()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->reset()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->rewind()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->rewind()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->setAccessible(Z)V,core-platform-api,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12203,17 +12221,16 @@
 Ljava/nio/CharBuffer;->charAt(I)C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->clear()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->clear()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->compact()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->compare(CC)I,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->compareTo(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->duplicate()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->equals(CC)Z,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->flip()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->flip()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->get()C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->get(I)C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->get([C)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12227,14 +12244,14 @@
 Ljava/nio/CharBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->length()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->limit(I)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->limit(I)Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->mark()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->mark()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->mismatch(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->position(I)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->position(I)Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->put(Ljava/lang/String;)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12244,9 +12261,9 @@
 Ljava/nio/CharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->read(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->reset()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->reset()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->rewind()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->rewind()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->slice()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12295,6 +12312,7 @@
 Ljava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;,unsupported
 Ljava/nio/DirectByteBuffer;->cleaner:Lsun/misc/Cleaner;,lo-prio,max-target-o
 Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/DirectByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DirectByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DirectByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;,blocked,core-platform-api
@@ -12386,17 +12404,16 @@
 Ljava/nio/DoubleBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->asReadOnlyBuffer()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->compact()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->compare(DD)I,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->duplicate()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->equals(DD)Z,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->get()D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->get(I)D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->get([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12407,23 +12424,23 @@
 Ljava/nio/DoubleBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->mark()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->mark()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->mismatch(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->put(D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(ID)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(Ljava/nio/DoubleBuffer;)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([DII)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->reset()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->reset()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12439,17 +12456,16 @@
 Ljava/nio/FloatBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->asReadOnlyBuffer()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->clear()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->clear()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->compact()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->compare(FF)I,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->compareTo(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->duplicate()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->equals(FF)Z,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->flip()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->flip()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->get()F,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->get(I)F,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->get([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12460,23 +12476,23 @@
 Ljava/nio/FloatBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->mark()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->mark()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->mismatch(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->position(I)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->position(I)Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put(IF)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put(Ljava/nio/FloatBuffer;)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put([FII)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->reset()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->reset()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->rewind()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->rewind()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12513,6 +12529,7 @@
 Ljava/nio/HeapByteBuffer;->isReadOnly()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/HeapByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(IC)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12542,6 +12559,7 @@
 Ljava/nio/HeapCharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/HeapCharBuffer;->put(Ljava/lang/String;II)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12648,17 +12666,16 @@
 Ljava/nio/IntBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->asReadOnlyBuffer()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->clear()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->clear()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->compact()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->compare(II)I,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->compareTo(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->duplicate()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->equals(II)Z,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->flip()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->flip()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->get()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->get(I)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->get([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12669,23 +12686,23 @@
 Ljava/nio/IntBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->limit(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->limit(I)Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->mark()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->mark()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->mismatch(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->position(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->position(I)Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->put(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put(II)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put([III)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->reset()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->reset()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->rewind()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->rewind()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->slice()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12703,17 +12720,16 @@
 Ljava/nio/LongBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->asReadOnlyBuffer()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->clear()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->clear()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->compact()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->compare(JJ)I,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->compareTo(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->duplicate()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->equals(JJ)Z,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->flip()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->flip()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->get()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->get(I)J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12724,23 +12740,23 @@
 Ljava/nio/LongBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->limit(I)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->limit(I)Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->mark()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->mark()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->mismatch(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->put(IJ)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put(J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put(Ljava/nio/LongBuffer;)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->slice()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12749,23 +12765,45 @@
 Ljava/nio/LongBuffer;->wrap([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->wrap([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;-><init>(IIII)V,lo-prio,max-target-o
-Ljava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;-><init>(IIII[BI)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->checkMapped()V,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->fd:Ljava/io/FileDescriptor;,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->force()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->force0(Ljava/io/FileDescriptor;JJ)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->isLoaded()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/MappedByteBuffer;->isLoaded0(JJI)Z,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->load0(JJ)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->mappingAddress(J)J,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->mappingLength(J)J,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->mappingOffset()J,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12790,7 +12828,7 @@
 Ljava/nio/ShortBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->asReadOnlyBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->clear()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->clear()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->compact()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->compare(SS)I,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -12798,9 +12836,8 @@
 Ljava/nio/ShortBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->duplicate()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->equals(SS)Z,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->flip()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->flip()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->get()S,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->get(I)S,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->get([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12811,23 +12848,23 @@
 Ljava/nio/ShortBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->mark()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->mark()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->mismatch(Ljava/nio/ShortBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->position(I)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->position(I)Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->put(IS)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put(Ljava/nio/ShortBuffer;)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put(S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put([SII)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->reset()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->reset()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->rewind()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->rewind()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -13566,10 +13603,10 @@
 Ljava/nio/file/FileVisitor;->visitFile(Ljava/lang/Object;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/FileVisitor;->visitFileFailed(Ljava/lang/Object;Ljava/io/IOException;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda4;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$1;->accept(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$2;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$2;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -15589,6 +15626,7 @@
 Ljava/security/interfaces/EdECPrivateKey;->getBytes()Ljava/util/Optional;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/EdECPublicKey;->getPoint()Ljava/security/spec/EdECPoint;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAKey;->getModulus()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/security/interfaces/RSAKey;->getParams()Ljava/security/spec/AlgorithmParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getCrtCoefficient()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getPrimeExponentP()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
@@ -15730,6 +15768,7 @@
 Ljava/security/spec/MGF1ParameterSpec;->SHA512:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->getDigestAlgorithm()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->mdName:Ljava/lang/String;,lo-prio,max-target-o
+Ljava/security/spec/MGF1ParameterSpec;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED25519:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED448:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
@@ -17766,9 +17805,6 @@
 Ljava/text/ParsePosition;->setErrorIndex(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/ParsePosition;->setIndex(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/ParsePosition;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/text/PatternEntry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/text/PatternEntry;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/text/PatternEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/RuleBasedCollator;-><init>(Landroid/icu/text/RuleBasedCollator;)V,lo-prio,max-target-o
 Ljava/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/RuleBasedCollator;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -18122,9 +18158,9 @@
 Ljava/time/InstantSource;->tick(Ljava/time/InstantSource;Ljava/time/Duration;)Ljava/time/InstantSource;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/InstantSource;->withZone(Ljava/time/ZoneId;)Ljava/time/Clock;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda1;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda3;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;-><init>(III)V,lo-prio,max-target-o
 Ljava/time/LocalDate;->DAYS_0000_TO_1970:J,lo-prio,max-target-o
 Ljava/time/LocalDate;->DAYS_PER_CYCLE:I,lo-prio,max-target-o
@@ -18159,7 +18195,7 @@
 Ljava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getDayOfYear()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getEra()Ljava/time/chrono/Era;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/LocalDate;->getEra()Ljava/time/chrono/IsoEra;,core-platform-api,public-api,sdk
+Ljava/time/LocalDate;->getEra()Ljava/time/chrono/IsoEra;,public-api,sdk
 Ljava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getMonth()Ljava/time/Month;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getMonthValue()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -18500,8 +18536,8 @@
 Ljava/time/MonthDay;->withMonth(I)Ljava/time/MonthDay;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/MonthDay;->writeExternal(Ljava/io/DataOutput;)V,lo-prio,max-target-o
 Ljava/time/MonthDay;->writeReplace()Ljava/lang/Object;,sdk
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/OffsetDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)V,max-target-r
 Ljava/time/OffsetDateTime;->MAX:Ljava/time/OffsetDateTime;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/OffsetDateTime;->MIN:Ljava/time/OffsetDateTime;,core-platform-api,public-api,sdk,system-api,test-api
@@ -19321,14 +19357,14 @@
 Ljava/time/chrono/Era;->isSupported(Ljava/time/temporal/TemporalField;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/Era;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/Era;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->INSTANCE:Ljava/time/chrono/HijrahChronology;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->KEY_ID:Ljava/lang/String;,lo-prio,max-target-o
 Ljava/time/chrono/HijrahChronology;->KEY_ISO_START:Ljava/lang/String;,lo-prio,max-target-o
@@ -23111,15 +23147,12 @@
 Ljava/util/Formatter$FormatSpecifier;->f:Ljava/util/Formatter$Flags;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->failConversion(CLjava/lang/Object;)V,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->failMismatch(Ljava/util/Formatter$Flags;C)V,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->flags(Ljava/lang/String;)Ljava/util/Formatter$Flags;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->hexDouble(DI)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->index()I,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->index:I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;JLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->precision:I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->print(DLjava/util/Locale;)V,lo-prio,max-target-o
@@ -23142,7 +23175,6 @@
 Ljava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter$FormatSpecifier;->trailingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->width(Ljava/lang/String;)I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->width:I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifierParser;->FLAGS:Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifierParser;->advance()C,lo-prio,max-target-o
@@ -23184,21 +23216,18 @@
 Ljava/util/Formatter;-><init>(Ljava/nio/charset/Charset;Ljava/util/Locale;Ljava/io/File;)V,lo-prio,max-target-o
 Ljava/util/Formatter;-><init>(Ljava/util/Locale;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V,lo-prio,max-target-o
-Ljava/util/Formatter;->MAX_FD_CHARS:I,lo-prio,max-target-o
 Ljava/util/Formatter;->a:Ljava/lang/Appendable;,lo-prio,max-target-o
 Ljava/util/Formatter;->close()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->ensureOpen()V,lo-prio,max-target-o
 Ljava/util/Formatter;->flush()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Formatter;->getZero(Ljava/util/Locale;)C,lo-prio,max-target-o
 Ljava/util/Formatter;->ioException()Ljava/io/IOException;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->l:Ljava/util/Locale;,lo-prio,max-target-o
 Ljava/util/Formatter;->lastException:Ljava/io/IOException;,lo-prio,max-target-o
 Ljava/util/Formatter;->locale()Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->nonNullAppendable(Ljava/lang/Appendable;)Ljava/lang/Appendable;,lo-prio,max-target-o
 Ljava/util/Formatter;->out()Ljava/lang/Appendable;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Formatter;->scaleUp:D,lo-prio,max-target-o
 Ljava/util/Formatter;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;,lo-prio,max-target-o
 Ljava/util/Formatter;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->zero:C,lo-prio,max-target-o
@@ -23469,6 +23498,8 @@
 Ljava/util/HashSet;->serialVersionUID:J,sdk
 Ljava/util/HashSet;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/HashSet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/HashSet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/HashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
 Ljava/util/Hashtable$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->add(Ljava/util/Map$Entry;)Z,lo-prio,max-target-o
@@ -23713,6 +23744,8 @@
 Ljava/util/IdentityHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;,lo-prio,max-target-o
 Ljava/util/IdentityHashMap;->values()Ljava/util/Collection;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/IdentityHashMap;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
+Ljava/util/IllegalFormatArgumentIndexException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/IllegalFormatArgumentIndexException;->serialVersionUID:J,sdk
 Ljava/util/IllegalFormatCodePointException;-><init>(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;->c:I,lo-prio,max-target-o
 Ljava/util/IllegalFormatCodePointException;->getCodePoint()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -23961,6 +23994,8 @@
 Ljava/util/LinkedHashMap$LinkedKeySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValueIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->clear()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -23968,6 +24003,8 @@
 Ljava/util/LinkedHashMap$LinkedValues;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(IF)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -24245,7 +24282,6 @@
 Ljava/util/Locale;->JAPANESE:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->KOREA:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->KOREAN:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Locale;->LOCALECACHE:Ljava/util/Locale$Cache;,lo-prio,max-target-o
 Ljava/util/Locale;->PRC:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->PRIVATE_USE_EXTENSION:C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->ROOT:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
@@ -24353,6 +24389,7 @@
 Ljava/util/Map$Entry;->comparingByKey(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue()Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Map$Entry;->copyOf(Ljava/util/Map$Entry;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -24655,6 +24692,22 @@
 Ljava/util/PriorityQueue;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/PriorityQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/PriorityQueue;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
+Ljava/util/Properties$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->clear()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->containsAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->removeAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->retainAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->size()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties$LineReader;->inByteBuf:[B,lo-prio,max-target-o
 Ljava/util/Properties$LineReader;->inCharBuf:[C,lo-prio,max-target-o
 Ljava/util/Properties$LineReader;->inLimit:I,lo-prio,max-target-o
@@ -24664,32 +24717,60 @@
 Ljava/util/Properties$LineReader;->readLine()I,lo-prio,max-target-o
 Ljava/util/Properties$LineReader;->reader:Ljava/io/Reader;,lo-prio,max-target-o
 Ljava/util/Properties;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;-><init>(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;-><init>(Ljava/util/Properties;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->clear()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->defaults:Ljava/util/Properties;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Properties;->enumerate(Ljava/util/Hashtable;)V,lo-prio,max-target-o
-Ljava/util/Properties;->enumerateStringProperties(Ljava/util/Hashtable;)V,lo-prio,max-target-o
+Ljava/util/Properties;->elements()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->entrySet()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->forEach(Ljava/util/function/BiConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->get(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Properties;->hexDigit:[C,lo-prio,max-target-o
+Ljava/util/Properties;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->keySet()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintStream;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintWriter;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/InputStream;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/Reader;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->load0(Ljava/util/Properties$LineReader;)V,lo-prio,max-target-o
-Ljava/util/Properties;->loadConvert([CII[C)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/Properties;->loadFromXML(Ljava/io/InputStream;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->propertyNames()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->rehash()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->replaceAll(Ljava/util/function/BiFunction;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->save(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->saveConvert(Ljava/lang/String;ZZ)Ljava/lang/String;,unsupported
 Ljava/util/Properties;->serialVersionUID:J,sdk
 Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/Writer;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V,lo-prio,max-target-o
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/nio/charset/Charset;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->stringPropertyNames()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Properties;->toHex(I)C,lo-prio,max-target-o
+Ljava/util/Properties;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->values()Ljava/util/Collection;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->writeComments(Ljava/io/BufferedWriter;Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/util/PropertyPermission;-><init>(Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/PropertyResourceBundle;-><init>(Ljava/io/InputStream;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -25074,21 +25155,21 @@
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceConfigurationError;->serialVersionUID:J,sdk
-Ljava/util/ServiceLoader$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$1;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$1;->remove()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->configs:Ljava/util/Enumeration;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->hasNextService()Z,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->loader:Ljava/lang/ClassLoader;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->nextName:Ljava/lang/String;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->nextService()Ljava/lang/Object;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->pending:Ljava/util/Iterator;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->remove()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->service:Ljava/lang/Class;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;-><init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->PREFIX:Ljava/lang/String;,lo-prio,max-target-o
+Ljava/util/ServiceLoader$1;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$2;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$2;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->type()Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->type()Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->characteristics()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->estimateSize()J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/net/URL;ILjava/lang/String;)V,lo-prio,max-target-o
@@ -25099,12 +25180,9 @@
 Ljava/util/ServiceLoader;->loadFromSystemProperty(Ljava/lang/Class;)Ljava/lang/Object;,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->loadInstalled(Ljava/lang/Class;)Ljava/util/ServiceLoader;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->loader:Ljava/lang/ClassLoader;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->lookupIterator:Ljava/util/ServiceLoader$LazyIterator;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->parse(Ljava/lang/Class;Ljava/net/URL;)Ljava/util/Iterator;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->parseLine(Ljava/lang/Class;Ljava/net/URL;Ljava/io/BufferedReader;ILjava/util/List;)I,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->providers:Ljava/util/LinkedHashMap;,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->reload()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->service:Ljava/lang/Class;,lo-prio,max-target-o
+Ljava/util/ServiceLoader;->stream()Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Set;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Set;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -25715,7 +25793,7 @@
 Ljava/util/TimeZone;->setRawOffset(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TimeZone;->toZoneId()Ljava/time/ZoneId;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TimeZone;->useDaylightTime()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Timer$1;->finalize()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Timer$ThreadReaper;->run()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;Z)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -25733,7 +25811,6 @@
 Ljava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;Ljava/util/Date;J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;->serialNumber()I,lo-prio,max-target-o
 Ljava/util/Timer;->thread:Ljava/util/TimerThread;,lo-prio,max-target-o
-Ljava/util/Timer;->threadReaper:Ljava/lang/Object;,lo-prio,max-target-o
 Ljava/util/TimerTask;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TimerTask;->CANCELLED:I,lo-prio,max-target-o
 Ljava/util/TimerTask;->EXECUTED:I,lo-prio,max-target-o
@@ -25890,6 +25967,9 @@
 Ljava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry;,lo-prio,max-target-o
 Ljava/util/TreeMap$NavigableSubMap;->ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->ceilingKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->descendingKeyIterator()Ljava/util/Iterator;,lo-prio,max-target-o
 Ljava/util/TreeMap$NavigableSubMap;->descendingKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
@@ -25920,11 +26000,13 @@
 Ljava/util/TreeMap$NavigableSubMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->m:Ljava/util/TreeMap;,lo-prio,max-target-o
+Ljava/util/TreeMap$NavigableSubMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->navigableKeySetView:Ljava/util/TreeMap$KeySet;,lo-prio,max-target-o
 Ljava/util/TreeMap$NavigableSubMap;->pollFirstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->pollLastEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->serialVersionUID:J,sdk
 Ljava/util/TreeMap$NavigableSubMap;->size()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -26011,6 +26093,9 @@
 Ljava/util/TreeMap;->comparator()Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->comparator:Ljava/util/Comparator;,lo-prio,max-target-o
 Ljava/util/TreeMap;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,lo-prio,max-target-o
+Ljava/util/TreeMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->computeRedLevel(I)I,lo-prio,max-target-o
 Ljava/util/TreeMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -26054,6 +26139,7 @@
 Ljava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;,lo-prio,max-target-o
 Ljava/util/TreeMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->modCount:I,lo-prio,max-target-o
 Ljava/util/TreeMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->navigableKeySet:Ljava/util/TreeMap$KeySet;,lo-prio,max-target-o
@@ -26063,6 +26149,7 @@
 Ljava/util/TreeMap;->predecessor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;,lo-prio,max-target-o
 Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->readObject(Ljava/io/ObjectInputStream;)V,sdk
 Ljava/util/TreeMap;->readTreeSet(ILjava/io/ObjectInputStream;Ljava/lang/Object;)V,lo-prio,max-target-o
 Ljava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -27324,7 +27411,7 @@
 Ljava/util/concurrent/ConcurrentHashMap;->initTable()[Ljava/util/concurrent/ConcurrentHashMap$Node;,lo-prio,max-target-o
 Ljava/util/concurrent/ConcurrentHashMap;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api,public-api,sdk
+Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,public-api,sdk
 Ljava/util/concurrent/ConcurrentHashMap;->keySet(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet:Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,lo-prio,max-target-o
 Ljava/util/concurrent/ConcurrentHashMap;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
@@ -27878,8 +27965,8 @@
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/SortedSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;-><init>([Ljava/lang/Object;I)V,lo-prio,max-target-o
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->add(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31406,8 +31493,8 @@
 Ljava/util/regex/PatternSyntaxException;->pattern:Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/regex/PatternSyntaxException;->serialVersionUID:J,sdk
 Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V,lo-prio,max-target-o
@@ -31494,101 +31581,105 @@
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collector;->supplier()Ljava/util/function/Supplier;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda24;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda25;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda27;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda54;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda55;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda56;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda64;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda65;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda68;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda69;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda71;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda76;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda78;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda94;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda95;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda96;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda97;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda98;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$1OptionalBox;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/Set;)V,lo-prio,max-target-o
 Ljava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;Ljava/util/Set;)V,lo-prio,max-target-o
@@ -31649,6 +31740,7 @@
 Ljava/util/stream/Collectors;->summingDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->summingInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->summingLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors;->teeing(Ljava/util/stream/Collector;Ljava/util/stream/Collector;Ljava/util/function/BiFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->toCollection(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31668,30 +31760,29 @@
 Ljava/util/stream/DistinctOps$1$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DistinctOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DistinctOps$1$2;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->applyAsLong(D)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$1$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$2$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$3$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$4$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$5$1$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$5$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$7$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$6$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$8$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$9$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline$Head;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31721,6 +31812,7 @@
 Ljava/util/stream/DoublePipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjDoubleConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31735,6 +31827,7 @@
 Ljava/util/stream/DoublePipeline;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31752,14 +31845,22 @@
 Ljava/util/stream/DoublePipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->sum()D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->toArray()[D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
-Ljava/util/stream/DoubleStream$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoubleStream$1;->nextDouble()D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda0;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->add(D)Ljava/util/stream/DoubleStream$Builder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->build()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;->accept(DLjava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->allMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->anyMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->average()Ljava/util/OptionalDouble;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31769,6 +31870,7 @@
 Ljava/util/stream/DoubleStream;->concat(Ljava/util/stream/DoubleStream;Ljava/util/stream/DoubleStream;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->empty()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31777,11 +31879,13 @@
 Ljava/util/stream/DoubleStream;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->forEachOrdered(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->generate(Ljava/util/function/DoubleSupplier;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoublePredicate;Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/PrimitiveIterator$OfDouble;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31803,21 +31907,22 @@
 Ljava/util/stream/DoubleStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->sum()D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->toArray()[D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31830,30 +31935,29 @@
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->compute()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachTask;->compute()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->applyAsLong(I)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda13;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$1$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$10$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$11$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$2$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$3$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$4$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$5$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$6$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$7$1$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$7$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$9$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$8$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline$Head;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31885,6 +31989,7 @@
 Ljava/util/stream/IntPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjIntConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31899,6 +32004,7 @@
 Ljava/util/stream/IntPipeline;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31916,14 +32022,22 @@
 Ljava/util/stream/IntPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->sum()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->toArray()[I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
-Ljava/util/stream/IntStream$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntStream$1;->nextInt()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->add(I)Ljava/util/stream/IntStream$Builder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->build()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$IntMapMultiConsumer;->accept(ILjava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->allMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->anyMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31935,6 +32049,7 @@
 Ljava/util/stream/IntStream;->concat(Ljava/util/stream/IntStream;Ljava/util/stream/IntStream;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->empty()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31943,11 +32058,13 @@
 Ljava/util/stream/IntStream;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->forEachOrdered(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->generate(Ljava/util/function/IntSupplier;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntPredicate;Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/PrimitiveIterator$OfInt;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31971,29 +32088,29 @@
 Ljava/util/stream/IntStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->sum()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->toArray()[I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->applyAsLong(J)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda10;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$1$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$10$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$2$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$3$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$4$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$5$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$6$1$$ExternalSyntheticLambda0;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$6$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$8$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$7$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$9$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
@@ -32025,6 +32142,7 @@
 Ljava/util/stream/LongPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjLongConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/LongPipeline;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32039,6 +32157,7 @@
 Ljava/util/stream/LongPipeline;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/LongPipeline;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32056,14 +32175,22 @@
 Ljava/util/stream/LongPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->sum()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->toArray()[J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
-Ljava/util/stream/LongStream$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongStream$1;->nextLong()J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->add(J)Ljava/util/stream/LongStream$Builder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->build()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$LongMapMultiConsumer;->accept(JLjava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->allMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->anyMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32074,6 +32201,7 @@
 Ljava/util/stream/LongStream;->concat(Ljava/util/stream/LongStream;Ljava/util/stream/LongStream;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->empty()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32082,11 +32210,13 @@
 Ljava/util/stream/LongStream;->forEach(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->forEachOrdered(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->generate(Ljava/util/function/LongSupplier;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongPredicate;Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/PrimitiveIterator$OfLong;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32110,6 +32240,7 @@
 Ljava/util/stream/LongStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->sum()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->toArray()[J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32247,12 +32378,20 @@
 Ljava/util/stream/ReduceOps$9ReducingSink;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReduceOps$9ReducingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReduceOps$Box;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfDouble;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfInt;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfLong;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfRef;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReduceOps$ReduceTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda2;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$10$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$11$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$12$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$13$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$14$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$15$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$2$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$3$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$4$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -32281,6 +32420,7 @@
 Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->dropWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32297,6 +32437,10 @@
 Ljava/util/stream/ReferencePipeline;->limit(J)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMulti(Ljava/util/function/BiConsumer;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToDouble(Ljava/util/function/BiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToInt(Ljava/util/function/BiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToLong(Ljava/util/function/BiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32310,8 +32454,10 @@
 Ljava/util/stream/ReferencePipeline;->skip(J)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted()Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->takeWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->toList()Ljava/util/List;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
 Ljava/util/stream/Sink$ChainedDouble;-><init>(Ljava/util/stream/Sink;)V,lo-prio,max-target-o
@@ -32349,7 +32495,6 @@
 Ljava/util/stream/Sink;->begin(J)V,lo-prio,max-target-o
 Ljava/util/stream/Sink;->cancellationRequested()Z,lo-prio,max-target-o
 Ljava/util/stream/Sink;->end()V,lo-prio,max-target-o
-Ljava/util/stream/SliceOps$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SliceOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SliceOps$2$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SliceOps$2$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -32471,8 +32616,8 @@
 Ljava/util/stream/SpinedBuffer;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SpinedBuffer;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->run()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$1;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -32637,8 +32782,8 @@
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -32666,8 +32811,8 @@
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->characteristics()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->estimateSize()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -33136,11 +33281,9 @@
 Ljava/util/zip/ZipCoder;->getBytes(Ljava/lang/String;)[B,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->getBytesUTF8(Ljava/lang/String;)[B,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->isUTF8()Z,lo-prio,max-target-o
-Ljava/util/zip/ZipCoder;->isUTF8:Z,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->toString([B)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->toStringUTF8([BI)Ljava/lang/String;,lo-prio,max-target-o
-Ljava/util/zip/ZipCoder;->utf8:Ljava/util/zip/ZipCoder;,lo-prio,max-target-o
 Ljava/util/zip/ZipConstants;->CENATT:I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipConstants;->CENATX:I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipConstants;->CENCOM:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -33210,6 +33353,7 @@
 Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->getSize()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->getTime()J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/zip/ZipEntry;->getTimeLocal()Ljava/time/LocalDateTime;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->isDirectory()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->method:I,max-target-r
@@ -33220,12 +33364,12 @@
 Ljava/util/zip/ZipEntry;->setCrc(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setCreationTime(Ljava/nio/file/attribute/FileTime;)Ljava/util/zip/ZipEntry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setExtra([B)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/zip/ZipEntry;->setExtra0([BZ)V,lo-prio,max-target-o
 Ljava/util/zip/ZipEntry;->setLastAccessTime(Ljava/nio/file/attribute/FileTime;)Ljava/util/zip/ZipEntry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setLastModifiedTime(Ljava/nio/file/attribute/FileTime;)Ljava/util/zip/ZipEntry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setMethod(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setSize(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setTime(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/zip/ZipEntry;->setTimeLocal(Ljava/time/LocalDateTime;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->size:J,lo-prio,max-target-o
 Ljava/util/zip/ZipEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->xdostime:J,lo-prio,max-target-o
@@ -33612,6 +33756,7 @@
 Ljavax/crypto/KeyAgreement;->generateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->generateSecret([BI)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getAlgorithm()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljavax/crypto/KeyAgreement;->getCurrentSpi()Ljavax/crypto/KeyAgreementSpi;,blocked,core-platform-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,sdk,system-api,test-api
@@ -34672,7 +34817,6 @@
 Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace(Ljava/io/PrintStream;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace(Ljava/io/PrintWriter;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace0(Ljava/io/PrintWriter;)V,lo-prio,max-target-o
-Ljavax/xml/datatype/DatatypeConfigurationException;->readObject(Ljava/io/ObjectInputStream;)V,sdk
 Ljavax/xml/datatype/DatatypeConfigurationException;->serialVersionUID:J,sdk
 Ljavax/xml/datatype/DatatypeConstants$Field;-><init>(Ljava/lang/String;I)V,lo-prio,max-target-o
 Ljavax/xml/datatype/DatatypeConstants$Field;->getId()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -46754,7 +46898,6 @@
 Lsun/misc/MessageUtils;-><init>()V,unsupported
 Lsun/misc/MetaIndex;->forJar(Ljava/io/File;)Lsun/misc/MetaIndex;,unsupported
 Lsun/misc/MetaIndex;->registerDirectory(Ljava/io/File;)V,unsupported
-Lsun/misc/REException;->serialVersionUID:J,sdk
 Lsun/misc/Resource;->cachedInputStream()Ljava/io/InputStream;,lo-prio,max-target-o
 Lsun/misc/Resource;->cis:Ljava/io/InputStream;,lo-prio,max-target-o
 Lsun/misc/URLClassPath$1;->hasMoreElements()Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -48752,6 +48895,10 @@
 Lsun/security/x509/X509Key;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/security/x509/X509Key;->unusedBits:I,unsupported
 Lsun/security/x509/X509Key;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
+Lsun/util/PropertyResourceBundleCharset$PropertiesFileDecoder;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;,core-platform-api,public-api,sdk,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->contains(Ljava/nio/charset/Charset;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newDecoder()Ljava/nio/charset/CharsetDecoder;,core-platform-api,public-api,sdk,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newEncoder()Ljava/nio/charset/CharsetEncoder;,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->hasMoreElements()Z,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/calendar/AbstractCalendar;->getDayOfWeekDateOnOrBefore(JI)J,max-target-r
@@ -48817,7 +48964,6 @@
 Lsun/util/locale/BaseLocale$Key;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;,lo-prio,max-target-o
 Lsun/util/locale/BaseLocale$Key;->normalized:Z,lo-prio,max-target-o
-Lsun/util/locale/BaseLocale;->CACHE:Lsun/util/locale/BaseLocale$Cache;,lo-prio,max-target-o
 Lsun/util/locale/BaseLocale;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/locale/BaseLocale;->hash:I,lo-prio,max-target-o
 Lsun/util/locale/BaseLocale;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
diff --git a/current/sdk/hiddenapi/filtered-stub-flags.csv b/current/sdk/hiddenapi/filtered-stub-flags.csv
index 6c335af..7606af3 100644
--- a/current/sdk/hiddenapi/filtered-stub-flags.csv
+++ b/current/sdk/hiddenapi/filtered-stub-flags.csv
@@ -369,6 +369,7 @@
 Landroid/system/OsConstants;->IPV6_MULTICAST_HOPS:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_IF:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_LOOP:I,core-platform-api,public-api,system-api,test-api
+Landroid/system/OsConstants;->IPV6_PKTINFO:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVDSTOPTS:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPLIMIT:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPOPTS:I,core-platform-api,public-api,system-api,test-api
@@ -430,6 +431,7 @@
 Landroid/system/OsConstants;->O_SYNC:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->O_TRUNC:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->O_WRONLY:I,core-platform-api,public-api,system-api,test-api
+Landroid/system/OsConstants;->PACKET_IGNORE_OUTGOING:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->POLLERR:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->POLLHUP:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->POLLIN:I,core-platform-api,public-api,system-api,test-api
@@ -507,6 +509,7 @@
 Landroid/system/OsConstants;->SOCK_RAW:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOCK_SEQPACKET:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOCK_STREAM:I,core-platform-api,public-api,system-api,test-api
+Landroid/system/OsConstants;->SOL_PACKET:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOL_SOCKET:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOL_UDP:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SO_BINDTODEVICE:I,core-platform-api,public-api,system-api,test-api
@@ -3420,9 +3423,9 @@
 Ljava/io/ObjectOutputStream;->writeStreamHeader()V,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectOutputStream;->writeUTF(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectOutputStream;->writeUnshared(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectStreamClass$1;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectStreamClass$2;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectStreamClass$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
@@ -3965,6 +3968,7 @@
 Ljava/lang/CharSequence;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->codePoints()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->compare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I,core-platform-api,public-api,system-api,test-api
+Ljava/lang/CharSequence;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->length()I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -4526,6 +4530,7 @@
 Ljava/lang/Character;->codePointBefore([CII)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->codePointCount([CII)I,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Character;->codePointOf(Ljava/lang/String;)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->compare(CC)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Character;)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
@@ -4598,11 +4603,14 @@
 Ljava/lang/Character;->toLowerCase(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toString(C)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Character;->toString(I)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toTitleCase(C)C,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toTitleCase(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toUpperCase(C)C,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toUpperCase(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Class;->arrayType()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Class;->arrayType()Ljava/lang/invoke/TypeDescriptor$OfField;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
@@ -4684,6 +4692,9 @@
 Ljava/lang/ClassCircularityError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassFormatError;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassFormatError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassLoader;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassLoader;-><init>(Ljava/lang/ClassLoader;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassLoader;->clearAssertionStatus()V,core-platform-api,public-api,system-api,test-api
@@ -4719,7 +4730,6 @@
 Ljava/lang/ClassNotFoundException;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,system-api,test-api
-Ljava/lang/ClassNotFoundException;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassNotFoundException;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassValue;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassValue;->computeValue(Ljava/lang/Class;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -4733,6 +4743,8 @@
 Ljava/lang/Compiler;->compileClasses(Ljava/lang/String;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Compiler;->disable()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Compiler;->enable()V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/CompoundEnumeration;->hasMoreElements()Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/CompoundEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Daemons$Daemon;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Deprecated;->forRemoval()Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Deprecated;->since()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -4778,6 +4790,7 @@
 Ljava/lang/Double;->toString(D)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Enum$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Enum$EnumDesc;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Enum;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -4807,7 +4820,6 @@
 Ljava/lang/ExceptionInInitializerError;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/Throwable;)V,core-platform-api,public-api,system-api,test-api
-Ljava/lang/ExceptionInInitializerError;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Float;-><init>(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Float;-><init>(F)V,core-platform-api,public-api,system-api,test-api
@@ -5806,8 +5818,17 @@
 Ljava/lang/StringUTF16$LinesSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/StringUTF16$LinesSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/SuppressWarnings;->value()[Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System;->clearProperty(Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System;->console()Ljava/io/Console;,core-platform-api,public-api,system-api,test-api
@@ -6144,32 +6165,32 @@
 Ljava/lang/invoke/MethodHandleInfo;->referenceKindToString(I)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->reflectAs(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->toString(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda11;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda21;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda22;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda24;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;->PACKAGE:I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;->PRIVATE:I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;->PROTECTED:I,core-platform-api,public-api,system-api,test-api
@@ -7739,7 +7760,6 @@
 Ljava/nio/ByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->clear()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->compareTo(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -7747,7 +7767,6 @@
 Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->flip()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->get()B,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->get(I)B,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7768,14 +7787,11 @@
 Ljava/nio/ByteBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->mark()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->mismatch(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->position(I)Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7794,9 +7810,7 @@
 Ljava/nio/ByteBuffer;->putShort(IS)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->reset()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->rewind()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->setAccessible(Z)V,core-platform-api
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7928,7 +7942,6 @@
 Ljava/nio/CharBuffer;->charAt(I)C,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->clear()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->compact()Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->compareTo(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -7936,7 +7949,6 @@
 Ljava/nio/CharBuffer;->duplicate()Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->flip()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->get()C,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->get(I)C,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->get([C)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7947,13 +7959,10 @@
 Ljava/nio/CharBuffer;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->length()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->limit(I)Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->mark()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->mismatch(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->position(I)Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->put(Ljava/lang/String;)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7963,9 +7972,7 @@
 Ljava/nio/CharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->read(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->reset()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->rewind()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->slice()Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8045,7 +8052,6 @@
 Ljava/nio/DoubleBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->asReadOnlyBuffer()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->compact()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8053,7 +8059,6 @@
 Ljava/nio/DoubleBuffer;->duplicate()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->get()D,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->get(I)D,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->get([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8062,22 +8067,17 @@
 Ljava/nio/DoubleBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->mark()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->mismatch(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->put(D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(ID)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(Ljava/nio/DoubleBuffer;)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([DII)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->reset()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8091,7 +8091,6 @@
 Ljava/nio/FloatBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->asReadOnlyBuffer()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->clear()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->compact()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->compareTo(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8099,7 +8098,6 @@
 Ljava/nio/FloatBuffer;->duplicate()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->flip()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->get()F,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->get(I)F,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->get([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8108,22 +8106,17 @@
 Ljava/nio/FloatBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->mark()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->mismatch(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->position(I)Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put(IF)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put(Ljava/nio/FloatBuffer;)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put([FII)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->reset()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->rewind()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8160,6 +8153,7 @@
 Ljava/nio/HeapByteBuffer;->isReadOnly()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/HeapByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(IC)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8189,6 +8183,7 @@
 Ljava/nio/HeapCharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/HeapCharBuffer;->put(Ljava/lang/String;II)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8293,7 +8288,6 @@
 Ljava/nio/IntBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->asReadOnlyBuffer()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->clear()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->compact()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->compareTo(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8301,7 +8295,6 @@
 Ljava/nio/IntBuffer;->duplicate()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->flip()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->get()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->get(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->get([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8310,22 +8303,17 @@
 Ljava/nio/IntBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->limit(I)Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->mark()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->mismatch(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->position(I)Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->put(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put(II)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put([III)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->reset()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->rewind()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->slice()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8340,7 +8328,6 @@
 Ljava/nio/LongBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->asReadOnlyBuffer()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->clear()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->compact()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->compareTo(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8348,7 +8335,6 @@
 Ljava/nio/LongBuffer;->duplicate()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->flip()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->get()J,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->get(I)J,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8357,22 +8343,17 @@
 Ljava/nio/LongBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->limit(I)Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->mark()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->mismatch(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->put(IJ)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put(J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put(Ljava/nio/LongBuffer;)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->slice()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8380,11 +8361,19 @@
 Ljava/nio/LongBuffer;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->wrap([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->wrap([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->force()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->isLoaded()Z,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8402,7 +8391,6 @@
 Ljava/nio/ShortBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->asReadOnlyBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->clear()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->compact()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->compareTo(Ljava/nio/ShortBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8410,7 +8398,6 @@
 Ljava/nio/ShortBuffer;->duplicate()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->flip()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->get()S,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->get(I)S,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->get([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8419,22 +8406,17 @@
 Ljava/nio/ShortBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->mark()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->mismatch(Ljava/nio/ShortBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->position(I)Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->put(IS)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put(Ljava/nio/ShortBuffer;)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put(S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put([SII)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->reset()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->rewind()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -9000,10 +8982,10 @@
 Ljava/nio/file/FileVisitor;->visitFile(Ljava/lang/Object;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/FileVisitor;->visitFileFailed(Ljava/lang/Object;Ljava/io/IOException;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda4;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$1;->accept(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$2;->hasNext()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$2;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -10450,6 +10432,7 @@
 Ljava/security/interfaces/EdECPrivateKey;->getBytes()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/EdECPublicKey;->getPoint()Ljava/security/spec/EdECPoint;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAKey;->getModulus()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
+Ljava/security/interfaces/RSAKey;->getParams()Ljava/security/spec/AlgorithmParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getCrtCoefficient()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getPrimeExponentP()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
@@ -10553,6 +10536,7 @@
 Ljava/security/spec/MGF1ParameterSpec;->SHA384:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->SHA512:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->getDigestAlgorithm()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/security/spec/MGF1ParameterSpec;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED25519:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED448:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,system-api,test-api
@@ -12232,9 +12216,6 @@
 Ljava/text/ParsePosition;->setErrorIndex(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/text/ParsePosition;->setIndex(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/text/ParsePosition;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
-Ljava/text/PatternEntry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/text/PatternEntry;->hashCode()I,core-platform-api,public-api,system-api,test-api
-Ljava/text/PatternEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/text/RuleBasedCollator;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I,core-platform-api,public-api,system-api,test-api
@@ -12477,9 +12458,9 @@
 Ljava/time/InstantSource;->tick(Ljava/time/InstantSource;Ljava/time/Duration;)Ljava/time/InstantSource;,core-platform-api,public-api,system-api,test-api
 Ljava/time/InstantSource;->withZone(Ljava/time/ZoneId;)Ljava/time/Clock;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda1;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda3;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->EPOCH:Ljava/time/LocalDate;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->MAX:Ljava/time/LocalDate;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->MIN:Ljava/time/LocalDate;,core-platform-api,public-api,system-api,test-api
@@ -12506,7 +12487,6 @@
 Ljava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getDayOfYear()I,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getEra()Ljava/time/chrono/Era;,core-platform-api,public-api,system-api,test-api
-Ljava/time/LocalDate;->getEra()Ljava/time/chrono/IsoEra;,core-platform-api
 Ljava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getMonth()Ljava/time/Month;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getMonthValue()I,core-platform-api,public-api,system-api,test-api
@@ -12791,8 +12771,8 @@
 Ljava/time/MonthDay;->with(Ljava/time/Month;)Ljava/time/MonthDay;,core-platform-api,public-api,system-api,test-api
 Ljava/time/MonthDay;->withDayOfMonth(I)Ljava/time/MonthDay;,core-platform-api,public-api,system-api,test-api
 Ljava/time/MonthDay;->withMonth(I)Ljava/time/MonthDay;,core-platform-api,public-api,system-api,test-api
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/OffsetDateTime;->MAX:Ljava/time/OffsetDateTime;,core-platform-api,public-api,system-api,test-api
 Ljava/time/OffsetDateTime;->MIN:Ljava/time/OffsetDateTime;,core-platform-api,public-api,system-api,test-api
 Ljava/time/OffsetDateTime;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;,core-platform-api,public-api,system-api,test-api
@@ -13472,14 +13452,14 @@
 Ljava/time/chrono/Era;->isSupported(Ljava/time/temporal/TemporalField;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/Era;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/Era;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->INSTANCE:Ljava/time/chrono/HijrahChronology;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->date(III)Ljava/time/chrono/ChronoLocalDate;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->date(III)Ljava/time/chrono/HijrahDate;,core-platform-api,public-api,system-api,test-api
@@ -16134,6 +16114,8 @@
 Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/HashSet;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/HashSet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/HashSet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/HashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->clear()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -16304,6 +16286,7 @@
 Ljava/util/IdentityHashMap;->replaceAll(Ljava/util/function/BiFunction;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/IdentityHashMap;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/IdentityHashMap;->values()Ljava/util/Collection;,core-platform-api,public-api,system-api,test-api
+Ljava/util/IllegalFormatArgumentIndexException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;-><init>(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;->getCodePoint()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -16507,6 +16490,8 @@
 Ljava/util/LinkedHashMap$LinkedKeySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValueIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->clear()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -16514,6 +16499,8 @@
 Ljava/util/LinkedHashMap$LinkedValues;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(IF)V,core-platform-api,public-api,system-api,test-api
@@ -16785,6 +16772,7 @@
 Ljava/util/Map$Entry;->comparingByKey(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue()Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Map$Entry;->copyOf(Ljava/util/Map$Entry;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -17030,24 +17018,73 @@
 Ljava/util/PriorityQueue;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/PriorityQueue;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/PriorityQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->clear()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->containsAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->hashCode()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->removeAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->retainAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->size()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;-><init>()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;-><init>(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;-><init>(Ljava/util/Properties;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->clear()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->defaults:Ljava/util/Properties;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->elements()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->entrySet()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->forEach(Ljava/util/function/BiConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->get(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->hashCode()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->keySet()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintStream;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintWriter;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/InputStream;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/Reader;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->loadFromXML(Ljava/io/InputStream;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->propertyNames()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->rehash()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->replaceAll(Ljava/util/function/BiFunction;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->save(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/Writer;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/nio/charset/Charset;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->stringPropertyNames()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->values()Ljava/util/Collection;,core-platform-api,public-api,system-api,test-api
 Ljava/util/PropertyPermission;-><init>(Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/PropertyResourceBundle;-><init>(Ljava/io/InputStream;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/PropertyResourceBundle;-><init>(Ljava/io/Reader;)V,core-platform-api,public-api,system-api,test-api
@@ -17256,18 +17293,28 @@
 Ljava/util/Scanner;->useRadix(I)Ljava/util/Scanner;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$1;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$1;->remove()V,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->remove()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$1;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$2;->hasNext()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$2;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->hasNext()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->type()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->hashCode()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->type()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->characteristics()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->estimateSize()J,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->findFirst()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->load(Ljava/lang/Class;)Ljava/util/ServiceLoader;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->loadInstalled(Ljava/lang/Class;)Ljava/util/ServiceLoader;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->reload()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader;->stream()Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Set;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Set;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
@@ -17653,7 +17700,7 @@
 Ljava/util/TimeZone;->setRawOffset(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/TimeZone;->toZoneId()Ljava/time/ZoneId;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TimeZone;->useDaylightTime()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/Timer$1;->finalize()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Timer$ThreadReaper;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Timer;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;Z)V,core-platform-api,public-api,system-api,test-api
@@ -17762,6 +17809,9 @@
 Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->ceilingKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->descendingKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->firstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
@@ -17778,10 +17828,12 @@
 Ljava/util/TreeMap$NavigableSubMap;->lastKey()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->pollFirstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->pollLastEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->subMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap;,core-platform-api,public-api,system-api,test-api
@@ -17822,6 +17874,9 @@
 Ljava/util/TreeMap;->clear()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->comparator()Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
@@ -17842,11 +17897,13 @@
 Ljava/util/TreeMap;->lastKey()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->pollFirstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->pollLastEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -18522,7 +18579,6 @@
 Ljava/util/concurrent/ConcurrentHashMap;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
-Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->mappingCount()J,core-platform-api,public-api,system-api,test-api
@@ -18901,8 +18957,8 @@
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/SortedSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->add(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->forEachRemaining(Ljava/util/function/Consumer;)V,core-platform-api,public-api,system-api,test-api
@@ -21132,8 +21188,8 @@
 Ljava/util/regex/PatternSyntaxException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/regex/PatternSyntaxException;->getPattern()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline;->close()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline;->isParallel()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline;->onClose(Ljava/lang/Runnable;)Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
@@ -21166,101 +21222,105 @@
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collector;->supplier()Ljava/util/function/Supplier;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda24;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda25;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda27;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda54;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda55;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda56;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda64;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda65;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda68;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda69;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda71;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda76;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda78;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda94;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda95;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda96;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda97;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda98;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$1OptionalBox;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$CollectorImpl;->accumulator()Ljava/util/function/BiConsumer;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$CollectorImpl;->characteristics()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
@@ -21300,6 +21360,7 @@
 Ljava/util/stream/Collectors;->summingDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->summingInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->summingLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors;->teeing(Ljava/util/stream/Collector;Ljava/util/stream/Collector;Ljava/util/function/BiFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->toCollection(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
@@ -21319,30 +21380,29 @@
 Ljava/util/stream/DistinctOps$1$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DistinctOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DistinctOps$1$2;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->applyAsLong(D)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$1$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$2$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$3$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$4$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$5$1$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$5$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$7$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$6$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$8$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$9$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;->forEachOrdered(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;->parallel()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
@@ -21358,6 +21418,7 @@
 Ljava/util/stream/DoublePipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjDoubleConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->findFirst()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
@@ -21368,6 +21429,7 @@
 Ljava/util/stream/DoublePipeline;->iterator()Ljava/util/PrimitiveIterator$OfDouble;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21385,13 +21447,21 @@
 Ljava/util/stream/DoublePipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->sum()D,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->toArray()[D,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoubleStream$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoubleStream$1;->nextDouble()D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda0;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->add(D)Ljava/util/stream/DoubleStream$Builder;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->build()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;->accept(DLjava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->allMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->anyMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->average()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
@@ -21401,6 +21471,7 @@
 Ljava/util/stream/DoubleStream;->concat(Ljava/util/stream/DoubleStream;Ljava/util/stream/DoubleStream;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->empty()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
@@ -21409,11 +21480,13 @@
 Ljava/util/stream/DoubleStream;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->forEachOrdered(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->generate(Ljava/util/function/DoubleSupplier;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoublePredicate;Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/PrimitiveIterator$OfDouble;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21435,21 +21508,22 @@
 Ljava/util/stream/DoubleStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->sum()D,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->toArray()[D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,system-api,test-api
@@ -21462,30 +21536,29 @@
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->compute()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachTask;->compute()V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->applyAsLong(I)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda13;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$1$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$10$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$11$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$2$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$3$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$4$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$5$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$6$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$7$1$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$7$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$9$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$8$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;->forEachOrdered(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;->parallel()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
@@ -21503,6 +21576,7 @@
 Ljava/util/stream/IntPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjIntConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->findFirst()Ljava/util/OptionalInt;,core-platform-api,public-api,system-api,test-api
@@ -21513,6 +21587,7 @@
 Ljava/util/stream/IntPipeline;->iterator()Ljava/util/PrimitiveIterator$OfInt;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21530,13 +21605,21 @@
 Ljava/util/stream/IntPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->sum()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->toArray()[I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntStream$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntStream$1;->nextInt()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->add(I)Ljava/util/stream/IntStream$Builder;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->build()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$IntMapMultiConsumer;->accept(ILjava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->allMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->anyMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
@@ -21548,6 +21631,7 @@
 Ljava/util/stream/IntStream;->concat(Ljava/util/stream/IntStream;Ljava/util/stream/IntStream;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->empty()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,system-api,test-api
@@ -21556,11 +21640,13 @@
 Ljava/util/stream/IntStream;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->forEachOrdered(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->generate(Ljava/util/function/IntSupplier;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntPredicate;Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/PrimitiveIterator$OfInt;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21584,29 +21670,29 @@
 Ljava/util/stream/IntStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->sum()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->toArray()[I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->applyAsLong(J)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda10;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$1$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$10$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$2$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$3$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$4$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$5$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$6$1$$ExternalSyntheticLambda0;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$6$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$8$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$7$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$9$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$Head;->forEach(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$Head;->forEachOrdered(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
@@ -21624,6 +21710,7 @@
 Ljava/util/stream/LongPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjLongConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->findFirst()Ljava/util/OptionalLong;,core-platform-api,public-api,system-api,test-api
@@ -21634,6 +21721,7 @@
 Ljava/util/stream/LongPipeline;->iterator()Ljava/util/PrimitiveIterator$OfLong;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21651,13 +21739,21 @@
 Ljava/util/stream/LongPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->sum()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->toArray()[J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongStream$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongStream$1;->nextLong()J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->add(J)Ljava/util/stream/LongStream$Builder;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->build()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$LongMapMultiConsumer;->accept(JLjava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->allMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->anyMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
@@ -21668,6 +21764,7 @@
 Ljava/util/stream/LongStream;->concat(Ljava/util/stream/LongStream;Ljava/util/stream/LongStream;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->empty()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,system-api,test-api
@@ -21676,11 +21773,13 @@
 Ljava/util/stream/LongStream;->forEach(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->forEachOrdered(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->generate(Ljava/util/function/LongSupplier;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongPredicate;Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/PrimitiveIterator$OfLong;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21704,6 +21803,7 @@
 Ljava/util/stream/LongStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->sum()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->toArray()[J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -21795,12 +21895,20 @@
 Ljava/util/stream/ReduceOps$9ReducingSink;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReduceOps$9ReducingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReduceOps$Box;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfDouble;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfInt;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfLong;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfRef;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReduceOps$ReduceTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda2;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$10$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$11$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$12$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$13$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$14$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$15$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$2$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$3$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$4$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
@@ -21817,6 +21925,7 @@
 Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->dropWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->findFirst()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
@@ -21829,6 +21938,10 @@
 Ljava/util/stream/ReferencePipeline;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->limit(J)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMulti(Ljava/util/function/BiConsumer;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToDouble(Ljava/util/function/BiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToInt(Ljava/util/function/BiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToLong(Ljava/util/function/BiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
@@ -21842,8 +21955,10 @@
 Ljava/util/stream/ReferencePipeline;->skip(J)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted()Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->takeWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->toList()Ljava/util/List;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink$OfDouble;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink$OfDouble;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
@@ -21854,7 +21969,6 @@
 Ljava/util/stream/Sink;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/SliceOps$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SliceOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SliceOps$2$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SliceOps$2$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
@@ -21916,8 +22030,8 @@
 Ljava/util/stream/SpinedBuffer;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SpinedBuffer;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$1;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
@@ -22013,8 +22127,8 @@
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -22042,8 +22156,8 @@
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->characteristics()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->estimateSize()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -22467,6 +22581,7 @@
 Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->getSize()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->getTime()J,core-platform-api,public-api,system-api,test-api
+Ljava/util/zip/ZipEntry;->getTimeLocal()Ljava/time/LocalDateTime;,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->isDirectory()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->setComment(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
@@ -22479,6 +22594,7 @@
 Ljava/util/zip/ZipEntry;->setMethod(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->setSize(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->setTime(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/zip/ZipEntry;->setTimeLocal(Ljava/time/LocalDateTime;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipException;-><init>()V,core-platform-api,public-api,system-api,test-api
@@ -22674,6 +22790,7 @@
 Ljavax/crypto/KeyAgreement;->generateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->generateSecret([BI)I,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getAlgorithm()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljavax/crypto/KeyAgreement;->getCurrentSpi()Ljavax/crypto/KeyAgreementSpi;,core-platform-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,system-api,test-api
@@ -27611,6 +27728,10 @@
 Lsun/security/x509/X509Key;->getFormat()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Lsun/security/x509/X509Key;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Lsun/security/x509/X509Key;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset$PropertiesFileDecoder;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->contains(Ljava/nio/charset/Charset;)Z,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newDecoder()Ljava/nio/charset/CharsetDecoder;,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newEncoder()Ljava/nio/charset/CharsetEncoder;,core-platform-api,public-api,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->hasMoreElements()Z,core-platform-api,public-api,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Lsun/util/calendar/CalendarDate;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
diff --git a/current/sdk/hiddenapi/index.csv b/current/sdk/hiddenapi/index.csv
index b4d38dd..e4dc964 100644
--- a/current/sdk/hiddenapi/index.csv
+++ b/current/sdk/hiddenapi/index.csv
@@ -117,15 +117,15 @@
 Ljava/lang/Class;-><init>()V,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,38,5,38,25,
 Ljava/lang/Class;->getDeclaredMethodsUnchecked(Z)[Ljava/lang/reflect/Method;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,251,5,251,25,
 Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,273,5,273,25,
-Ljava/lang/Class;->accessFlags:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,414,5,414,25,
-Ljava/lang/Class;->classLoader:Ljava/lang/ClassLoader;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,419,5,419,25,
-Ljava/lang/Class;->clinitThreadId:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,424,5,424,69,maxTargetSdk=30&trackingBug=170729553L
-Ljava/lang/Class;->dexCache:Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,431,5,431,25,
-Ljava/lang/Class;->dexClassDefIndex:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,434,5,434,25,
-Ljava/lang/Class;->ifTable:[Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,443,5,443,25,
-Ljava/lang/Class;->name:Ljava/lang/String;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,448,5,448,25,
-Ljava/lang/Class;->objectSize:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,455,5,455,25,
-Ljava/lang/Class;->status:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,468,5,468,69,maxTargetSdk=30&trackingBug=170729553L
+Ljava/lang/Class;->accessFlags:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,412,5,412,25,
+Ljava/lang/Class;->classLoader:Ljava/lang/ClassLoader;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,417,5,417,25,
+Ljava/lang/Class;->clinitThreadId:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,422,5,422,69,maxTargetSdk=30&trackingBug=170729553L
+Ljava/lang/Class;->dexCache:Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,429,5,429,25,
+Ljava/lang/Class;->dexClassDefIndex:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,432,5,432,25,
+Ljava/lang/Class;->ifTable:[Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,441,5,441,25,
+Ljava/lang/Class;->name:Ljava/lang/String;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,446,5,446,25,
+Ljava/lang/Class;->objectSize:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,453,5,453,25,
+Ljava/lang/Class;->status:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,466,5,466,69,maxTargetSdk=30&trackingBug=170729553L
 Ljava/lang/ClassLoader;->parent:Ljava/lang/ClassLoader;,libcore/ojluni/annotations/hiddenapi/java/lang/ClassLoader.java,230,5,230,25,
 Ljava/lang/Double;->value:D,libcore/ojluni/annotations/hiddenapi/java/lang/Double.java,183,5,183,56,maxTargetSdk=28
 Ljava/lang/Enum;->getSharedConstants(Ljava/lang/Class;)[Ljava/lang/Enum;,libcore/ojluni/annotations/hiddenapi/java/lang/Enum.java,80,5,80,69,maxTargetSdk=30&trackingBug=170729553L
diff --git a/current/sdk/hiddenapi/metadata.csv b/current/sdk/hiddenapi/metadata.csv
index 8a4876d..80e5770 100644
--- a/current/sdk/hiddenapi/metadata.csv
+++ b/current/sdk/hiddenapi/metadata.csv
@@ -540,6 +540,7 @@
 |Ljava/nio/CharBuffer;->toString(II)Ljava/lang/String;|,|30|,||,||,||,|170729553|
 |Ljava/nio/DirectByteBuffer;-><init>(JI)V|,|30|,||,||,||,|170729553|
 |Ljava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;|,||,||,||,||,||
+|Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
 |Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;|,||,|28|,||,|Ljava/nio/DoubleBuffer;|,||
 |Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;|,||,|28|,||,|Ljava/nio/DoubleBuffer;|,||
 |Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;|,||,|28|,||,|Ljava/nio/DoubleBuffer;|,||
@@ -568,6 +569,24 @@
 |Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;|,||,|28|,||,|Ljava/nio/LongBuffer;|,||
 |Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;|,||,|28|,||,|Ljava/nio/LongBuffer;|,||
 |Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;|,||,|28|,||,|Ljava/nio/LongBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
 |Ljava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;|,||,||,||,||,||
 |Ljava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I|,||,||,||,||,||
 |Ljava/nio/NIOAccess;->getBasePointer(Ljava/nio/Buffer;)J|,||,||,||,||,||
diff --git a/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h b/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h
index 5904c0f..a87b04f 100644
--- a/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h
+++ b/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h
@@ -29,6 +29,11 @@
 extern "C" {
 #endif  // __cplusplus
 
+enum JNICallType {
+  kJNICallTypeRegular = 1,
+  kJNICallTypeCriticalNative = 2,
+};
+
 // Loads a shared library from the system linker namespace, suitable for
 // platform libraries in /system/lib(64). If linker namespaces don't exist (i.e.
 // on host), this simply calls dlopen().
@@ -81,8 +86,15 @@
 void* NativeBridgeLoadLibrary(const char* libpath, int flag);
 
 // Get a native bridge trampoline for specified native method.
+// This version is deprecated - please use NativeBridgeGetTrampoline2
 void* NativeBridgeGetTrampoline(void* handle, const char* name, const char* shorty, uint32_t len);
 
+void* NativeBridgeGetTrampoline2(void* handle,
+                                 const char* name,
+                                 const char* shorty,
+                                 uint32_t len,
+                                 enum JNICallType jni_call_type);
+
 // True if native library paths are valid and is for an ABI that is supported by native bridge.
 // The *libpath* must point to a library.
 //
@@ -206,7 +218,7 @@
   void* (*loadLibrary)(const char* libpath, int flag);
 
   // Get a native bridge trampoline for specified native method. The trampoline has same
-  // sigature as the native method.
+  // signature as the native method.
   //
   // Parameters:
   //   handle [IN] the handle returned from loadLibrary
@@ -214,6 +226,9 @@
   //   len [IN] length of shorty
   // Returns:
   //   address of trampoline if successful, otherwise NULL
+  // Deprecated in v7
+  //   Starting with version 7 native bridge uses getTrampolineWithJNICallType
+  //   instead
   void* (*getTrampoline)(void* handle, const char* name, const char* shorty, uint32_t len);
 
   // Check whether native library is valid and is for an ABI that is supported by native bridge.
@@ -387,6 +402,25 @@
   // If native bridge is used in app-zygote (in doPreload()) this callback is
   // required to clean-up the environment before the fork (see b/146904103).
   void (*preZygoteFork)();
+
+  // This replaces previous getTrampoline call starting with version 7 of the
+  // interface.
+  //
+  // Get a native bridge trampoline for specified native method. The trampoline
+  // has same signature as the native method.
+  //
+  // Parameters:
+  //   handle [IN] the handle returned from loadLibrary
+  //   shorty [IN] short descriptor of native method
+  //   len [IN] length of shorty
+  //   jni_call_type [IN] the type of JNI call
+  // Returns:
+  //   address of trampoline if successful, otherwise NULL
+  void* (*getTrampolineWithJNICallType)(void* handle,
+                                        const char* name,
+                                        const char* shorty,
+                                        uint32_t len,
+                                        enum JNICallType jni_call_type);
 };
 
 // Runtime interfaces to native bridge.
diff --git a/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h b/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
index 9cb8195..6c95c68 100644
--- a/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
+++ b/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+/** JNI utils for nativehelper-internal use. */
+
 #pragma once
 
 #include <jni.h>
diff --git a/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h b/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
index cd35a88..32ae885 100644
--- a/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
+++ b/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
@@ -23,6 +23,8 @@
 #include "nativehelper_utils.h"
 
 // A smart pointer that deletes a JNI local reference when it goes out of scope.
+//
+// For creating a `ScopedLocalRef<jstring>`, consider using `CREATE_UTF_OR_RETURN`.
 template<typename T>
 class ScopedLocalRef {
 public:
diff --git a/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h b/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
index 363ff42..25de0fc 100644
--- a/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
+++ b/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
@@ -23,6 +23,11 @@
 
 #include "nativehelper_utils.h"
 
+// Protect this with __has_include to cope with `stl: "none"` users.
+#if __has_include(<string_view>)
+#include <string_view>
+#endif
+
 // A smart pointer that provides read-only access to a Java string's UTF chars.
 // Unlike GetStringUTFChars, we throw NullPointerException rather than abort if
 // passed a null jstring, and c_str will return nullptr.
@@ -32,6 +37,8 @@
 //   if (name.c_str() == nullptr) {
 //     return nullptr;
 //   }
+//
+// Also consider using `GET_UTF_OR_RETURN`, a shorthand for the 4 lines above.
 class ScopedUtfChars {
  public:
   ScopedUtfChars(JNIEnv* env, jstring s) : env_(env), string_(s) {
@@ -84,6 +91,10 @@
     return utf_chars_[n];
   }
 
+#if __has_include(<string_view>)
+  operator std::string_view() const { return utf_chars_; }
+#endif
+
  private:
   JNIEnv* env_;
   jstring string_;
@@ -91,4 +102,3 @@
 
   DISALLOW_COPY_AND_ASSIGN(ScopedUtfChars);
 };
-
diff --git a/current/sdk/include/libnativehelper/header_only_include/nativehelper/utils.h b/current/sdk/include/libnativehelper/header_only_include/nativehelper/utils.h
new file mode 100644
index 0000000..12f591b
--- /dev/null
+++ b/current/sdk/include/libnativehelper/header_only_include/nativehelper/utils.h
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * JNI utils for external use.
+ *
+ * This file may only be included by C++ code.
+ */
+
+#pragma once
+
+#include <jni.h>
+
+#include <string>
+
+#include "nativehelper/scoped_local_ref.h"
+#include "nativehelper/scoped_utf_chars.h"
+
+namespace android {
+namespace jnihelp {
+
+// Implementation details. DO NOT use directly.
+namespace internal {
+
+[[maybe_unused]] static const char* GetCStr(const char* str) { return str; }
+[[maybe_unused]] static const char* GetCStr(const std::string& str) { return str.c_str(); }
+
+}  // namespace internal
+
+// A class that implicitly casts to the default values of various JNI types.
+// Used for returning from a JNI method when an exception occurs, where we don't care about the
+// return value.
+class JniDefaultValue {
+   public:
+    operator jboolean() const { return JNI_FALSE; }
+    operator jbyte() const { return 0; }
+    operator jchar() const { return 0; }
+    operator jshort() const { return 0; }
+    operator jint() const { return 0; }
+    operator jlong() const { return 0; }
+    operator jfloat() const { return 0; }
+    operator jdouble() const { return 0; }
+    operator jobject() const { return nullptr; }
+    operator jclass() const { return nullptr; }
+    operator jstring() const { return nullptr; }
+    operator jarray() const { return nullptr; }
+    operator jobjectArray() const { return nullptr; }
+    operator jbooleanArray() const { return nullptr; }
+    operator jbyteArray() const { return nullptr; }
+    operator jcharArray() const { return nullptr; }
+    operator jshortArray() const { return nullptr; }
+    operator jintArray() const { return nullptr; }
+    operator jlongArray() const { return nullptr; }
+    operator jfloatArray() const { return nullptr; }
+    operator jdoubleArray() const { return nullptr; }
+    operator jthrowable() const { return nullptr; }
+};
+
+// Gets `ScopedUtfChars` from a `jstring` expression.
+//
+// Throws `NullPointerException` and returns the default value if the given `jstring` is a null
+// pointer.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN_VOID(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// The idiomatic way to construct an `std::string` using this macro (an additional string copy is
+// performed):
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   std::string str(GET_UTF_OR_RETURN(env, j_str));
+//   // Safely use `str` here...
+// }
+#define GET_UTF_OR_RETURN(env, expr) \
+    GET_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define GET_UTF_OR_RETURN_VOID(env, expr) GET_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define GET_UTF_OR_RETURN_IMPL_(env, expr, ...)                          \
+    ({                                                                   \
+        ScopedUtfChars __or_return_scoped_utf_chars(env, expr);          \
+        if (__or_return_scoped_utf_chars.c_str() == nullptr) {           \
+            /* Return with a pending exception from `ScopedUtfChars`. */ \
+            return __VA_ARGS__;                                          \
+        }                                                                \
+        std::move(__or_return_scoped_utf_chars);                         \
+    })
+
+// Creates `ScopedLocalRef<jstring>` from a `const char*` or `std::string` expression using
+// NewStringUTF.
+//
+// Throws `OutOfMemoryError` and returns the default value if the system runs out of memory.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN(env, str);
+//   // Safely use `j_str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN_VOID(env, str);
+//   // Safely use `j_str` here...
+// }
+#define CREATE_UTF_OR_RETURN(env, expr) \
+    CREATE_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define CREATE_UTF_OR_RETURN_VOID(env, expr) CREATE_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define CREATE_UTF_OR_RETURN_IMPL_(env, expr, ...)                                             \
+    ({                                                                                         \
+        const char* __or_return_c_str;                                                         \
+        ScopedLocalRef<jstring> __or_return_local_ref(                                         \
+            env,                                                                               \
+            env->NewStringUTF(__or_return_c_str = android::jnihelp::internal::GetCStr(expr))); \
+        /* `*__or_return_c_str` may be freed here, but we only compare the pointer against     \
+         * nullptr. DO NOT DEREFERENCE `*__or_return_c_str` after this point. */               \
+        /* `NewStringUTF` returns nullptr when OOM or the input is nullptr, but only throws an \
+         * exception when OOM. */                                                              \
+        if (__or_return_local_ref == nullptr && __or_return_c_str != nullptr) {                \
+            /* Return with a pending exception from `NewStringUTF`. */                         \
+            return __VA_ARGS__;                                                                \
+        }                                                                                      \
+        std::move(__or_return_local_ref);                                                      \
+    })
+
+}  // namespace jnihelp
+}  // namespace android
diff --git a/current/sdk/include/libnativehelper/include/nativehelper/Utils.h b/current/sdk/include/libnativehelper/include/nativehelper/Utils.h
new file mode 100644
index 0000000..c05b2f1
--- /dev/null
+++ b/current/sdk/include/libnativehelper/include/nativehelper/Utils.h
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <nativehelper/utils.h>
diff --git a/current/sdk/include/system/logging/liblog/include/android/log.h b/current/sdk/include/system/logging/liblog/include/android/log.h
new file mode 100644
index 0000000..5dc365a
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/android/log.h
@@ -0,0 +1,378 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+/**
+ * @addtogroup Logging
+ * @{
+ */
+
+/**
+ * \file
+ *
+ * Support routines to send messages to the Android log buffer,
+ * which can later be accessed through the `logcat` utility.
+ *
+ * Each log message must have
+ *   - a priority
+ *   - a log tag
+ *   - some text
+ *
+ * The tag normally corresponds to the component that emits the log message,
+ * and should be reasonably small.
+ *
+ * Log message text may be truncated to less than an implementation-specific
+ * limit (1023 bytes).
+ *
+ * Note that a newline character ("\n") will be appended automatically to your
+ * log message, if not already there. It is not possible to send several
+ * messages and have them appear on a single line in logcat.
+ *
+ * Please use logging in moderation:
+ *
+ *  - Sending log messages eats CPU and slow down your application and the
+ *    system.
+ *
+ *  - The circular log buffer is pretty small, so sending many messages
+ *    will hide other important log messages.
+ *
+ *  - In release builds, only send log messages to account for exceptional
+ *    conditions.
+ */
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <sys/cdefs.h>
+
+#if !defined(__BIONIC__) && !defined(__INTRODUCED_IN)
+#define __INTRODUCED_IN(x)
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Android log priority values, in increasing order of priority.
+ */
+typedef enum android_LogPriority {
+  /** For internal use only.  */
+  ANDROID_LOG_UNKNOWN = 0,
+  /** The default priority, for internal use only.  */
+  ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */
+  /** Verbose logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_VERBOSE,
+  /** Debug logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_DEBUG,
+  /** Informational logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_INFO,
+  /** Warning logging. For use with recoverable failures. */
+  ANDROID_LOG_WARN,
+  /** Error logging. For use with unrecoverable failures. */
+  ANDROID_LOG_ERROR,
+  /** Fatal logging. For use when aborting. */
+  ANDROID_LOG_FATAL,
+  /** For internal use only.  */
+  ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */
+} android_LogPriority;
+
+/**
+ * Writes the constant string `text` to the log, with priority `prio` and tag
+ * `tag`.
+ */
+int __android_log_write(int prio, const char* tag, const char* text);
+
+/**
+ * Writes a formatted string to the log, with priority `prio` and tag `tag`.
+ * The details of formatting are the same as for
+ * [printf(3)](http://man7.org/linux/man-pages/man3/printf.3.html).
+ */
+int __android_log_print(int prio, const char* tag, const char* fmt, ...)
+    __attribute__((__format__(printf, 3, 4)));
+
+/**
+ * Equivalent to `__android_log_print`, but taking a `va_list`.
+ * (If `__android_log_print` is like `printf`, this is like `vprintf`.)
+ */
+int __android_log_vprint(int prio, const char* tag, const char* fmt, va_list ap)
+    __attribute__((__format__(printf, 3, 0)));
+
+/**
+ * Writes an assertion failure to the log (as `ANDROID_LOG_FATAL`) and to
+ * stderr, before calling
+ * [abort(3)](http://man7.org/linux/man-pages/man3/abort.3.html).
+ *
+ * If `fmt` is non-null, `cond` is unused. If `fmt` is null, the string
+ * `Assertion failed: %s` is used with `cond` as the string argument.
+ * If both `fmt` and `cond` are null, a default string is provided.
+ *
+ * Most callers should use
+ * [assert(3)](http://man7.org/linux/man-pages/man3/assert.3.html) from
+ * `&lt;assert.h&gt;` instead, or the `__assert` and `__assert2` functions
+ * provided by bionic if more control is needed. They support automatically
+ * including the source filename and line number more conveniently than this
+ * function.
+ */
+void __android_log_assert(const char* cond, const char* tag, const char* fmt, ...)
+    __attribute__((__noreturn__)) __attribute__((__format__(printf, 3, 4)));
+
+/**
+ * Identifies a specific log buffer for __android_log_buf_write()
+ * and __android_log_buf_print().
+ */
+typedef enum log_id {
+  LOG_ID_MIN = 0,
+
+  /** The main log buffer. This is the only log buffer available to apps. */
+  LOG_ID_MAIN = 0,
+  /** The radio log buffer. */
+  LOG_ID_RADIO = 1,
+  /** The event log buffer. */
+  LOG_ID_EVENTS = 2,
+  /** The system log buffer. */
+  LOG_ID_SYSTEM = 3,
+  /** The crash log buffer. */
+  LOG_ID_CRASH = 4,
+  /** The statistics log buffer. */
+  LOG_ID_STATS = 5,
+  /** The security log buffer. */
+  LOG_ID_SECURITY = 6,
+  /** The kernel log buffer. */
+  LOG_ID_KERNEL = 7,
+
+  LOG_ID_MAX,
+
+  /** Let the logging function choose the best log target. */
+  LOG_ID_DEFAULT = 0x7FFFFFFF
+} log_id_t;
+
+/**
+ * Writes the constant string `text` to the log buffer `id`,
+ * with priority `prio` and tag `tag`.
+ *
+ * Apps should use __android_log_write() instead.
+ */
+int __android_log_buf_write(int bufID, int prio, const char* tag, const char* text);
+
+/**
+ * Writes a formatted string to log buffer `id`,
+ * with priority `prio` and tag `tag`.
+ * The details of formatting are the same as for
+ * [printf(3)](http://man7.org/linux/man-pages/man3/printf.3.html).
+ *
+ * Apps should use __android_log_print() instead.
+ */
+int __android_log_buf_print(int bufID, int prio, const char* tag, const char* fmt, ...)
+    __attribute__((__format__(printf, 4, 5)));
+
+/**
+ * Logger data struct used for writing log messages to liblog via __android_log_write_logger_data()
+ * and sending log messages to user defined loggers specified in __android_log_set_logger().
+ */
+struct __android_log_message {
+  /** Must be set to sizeof(__android_log_message) and is used for versioning. */
+  size_t struct_size;
+
+  /** {@link log_id_t} values. */
+  int32_t buffer_id;
+
+  /** {@link android_LogPriority} values. */
+  int32_t priority;
+
+  /** The tag for the log message. */
+  const char* tag;
+
+  /** Optional file name, may be set to nullptr. */
+  const char* file;
+
+  /** Optional line number, ignore if file is nullptr. */
+  uint32_t line;
+
+  /** The log message itself. */
+  const char* message;
+};
+
+/**
+ * Prototype for the 'logger' function that is called for every log message.
+ */
+typedef void (*__android_logger_function)(const struct __android_log_message* log_message);
+/**
+ * Prototype for the 'abort' function that is called when liblog will abort due to
+ * __android_log_assert() failures.
+ */
+typedef void (*__android_aborter_function)(const char* abort_message);
+
+/**
+ * Writes the log message specified by log_message.  log_message includes additional file name and
+ * line number information that a logger may use.  log_message is versioned for backwards
+ * compatibility.
+ * This assumes that loggability has already been checked through __android_log_is_loggable().
+ * Higher level logging libraries, such as libbase, first check loggability, then format their
+ * buffers, then pass the message to liblog via this function, and therefore we do not want to
+ * duplicate the loggability check here.
+ *
+ * @param log_message the log message itself, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_write_log_message(struct __android_log_message* log_message) __INTRODUCED_IN(30);
+
+/**
+ * Sets a user defined logger function.  All log messages sent to liblog will be set to the
+ * function pointer specified by logger for processing.  It is not expected that log messages are
+ * already terminated with a new line.  This function should add new lines if required for line
+ * separation.
+ *
+ * @param logger the new function that will handle log messages.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_logger(__android_logger_function logger) __INTRODUCED_IN(30);
+
+/**
+ * Writes the log message to logd.  This is an __android_logger_function and can be provided to
+ * __android_log_set_logger().  It is the default logger when running liblog on a device.
+ *
+ * @param log_message the log message to write, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_logd_logger(const struct __android_log_message* log_message) __INTRODUCED_IN(30);
+
+/**
+ * Writes the log message to stderr.  This is an __android_logger_function and can be provided to
+ * __android_log_set_logger().  It is the default logger when running liblog on host.
+ *
+ * @param log_message the log message to write, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_stderr_logger(const struct __android_log_message* log_message)
+    __INTRODUCED_IN(30);
+
+/**
+ * Sets a user defined aborter function that is called for __android_log_assert() failures.  This
+ * user defined aborter function is highly recommended to abort and be noreturn, but is not strictly
+ * required to.
+ *
+ * @param aborter the new aborter function, see __android_aborter_function.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_aborter(__android_aborter_function aborter) __INTRODUCED_IN(30);
+
+/**
+ * Calls the stored aborter function.  This allows for other logging libraries to use the same
+ * aborter function by calling this function in liblog.
+ *
+ * @param abort_message an additional message supplied when aborting, for example this is used to
+ *                      call android_set_abort_message() in __android_log_default_aborter().
+ *
+ * Available since API level 30.
+ */
+void __android_log_call_aborter(const char* abort_message) __INTRODUCED_IN(30);
+
+/**
+ * Sets android_set_abort_message() on device then aborts().  This is the default aborter.
+ *
+ * @param abort_message an additional message supplied when aborting.  This functions calls
+ *                      android_set_abort_message() with its contents.
+ *
+ * Available since API level 30.
+ */
+void __android_log_default_aborter(const char* abort_message) __attribute__((noreturn))
+__INTRODUCED_IN(30);
+
+/**
+ * Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
+ * __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will
+ * be printed.  A non-zero result indicates yes, zero indicates false.
+ *
+ * If both a priority for a tag and a minimum priority are set by
+ * __android_log_set_minimum_priority(), then the lowest of the two values are to determine the
+ * minimum priority needed to log.  If only one is set, then that value is used to determine the
+ * minimum priority needed.  If none are set, then default_priority is used.
+ *
+ * @param prio         the priority to test, takes android_LogPriority values.
+ * @param tag          the tag to test.
+ * @param default_prio the default priority to use if no properties or minimum priority are set.
+ * @return an integer where 1 indicates that the message is loggable and 0 indicates that it is not.
+ *
+ * Available since API level 30.
+ */
+int __android_log_is_loggable(int prio, const char* tag, int default_prio) __INTRODUCED_IN(30);
+
+/**
+ * Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
+ * __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will
+ * be printed.  A non-zero result indicates yes, zero indicates false.
+ *
+ * If both a priority for a tag and a minimum priority are set by
+ * __android_log_set_minimum_priority(), then the lowest of the two values are to determine the
+ * minimum priority needed to log.  If only one is set, then that value is used to determine the
+ * minimum priority needed.  If none are set, then default_priority is used.
+ *
+ * @param prio         the priority to test, takes android_LogPriority values.
+ * @param tag          the tag to test.
+ * @param len          the length of the tag.
+ * @param default_prio the default priority to use if no properties or minimum priority are set.
+ * @return an integer where 1 indicates that the message is loggable and 0 indicates that it is not.
+ *
+ * Available since API level 30.
+ */
+int __android_log_is_loggable_len(int prio, const char* tag, size_t len, int default_prio)
+    __INTRODUCED_IN(30);
+
+/**
+ * Sets the minimum priority that will be logged for this process.
+ *
+ * @param priority the new minimum priority to set, takes android_LogPriority values.
+ * @return the previous set minimum priority as android_LogPriority values, or
+ *         ANDROID_LOG_DEFAULT if none was set.
+ *
+ * Available since API level 30.
+ */
+int32_t __android_log_set_minimum_priority(int32_t priority) __INTRODUCED_IN(30);
+
+/**
+ * Gets the minimum priority that will be logged for this process.  If none has been set by a
+ * previous __android_log_set_minimum_priority() call, this returns ANDROID_LOG_DEFAULT.
+ *
+ * @return the current minimum priority as android_LogPriority values, or
+ *         ANDROID_LOG_DEFAULT if none is set.
+ *
+ * Available since API level 30.
+ */
+int32_t __android_log_get_minimum_priority(void) __INTRODUCED_IN(30);
+
+/**
+ * Sets the default tag if no tag is provided when writing a log message.  Defaults to
+ * getprogname().  This truncates tag to the maximum log message size, though appropriate tags
+ * should be much smaller.
+ *
+ * @param tag the new log tag.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_default_tag(const char* tag) __INTRODUCED_IN(30);
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
diff --git a/current/sdk/include/system/logging/liblog/include/log/event_tag_map.h b/current/sdk/include/system/logging/liblog/include/log/event_tag_map.h
new file mode 100644
index 0000000..de49fbf
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/event_tag_map.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EVENT_TAG_MAP_FILE "/system/etc/event-log-tags"
+
+struct EventTagMap;
+typedef struct EventTagMap EventTagMap;
+
+/*
+ * Open the specified file as an event log tag map.
+ *
+ * Returns NULL on failure.
+ */
+EventTagMap* android_openEventTagMap(const char* fileName);
+
+/*
+ * Close the map.
+ */
+void android_closeEventTagMap(EventTagMap* map);
+
+/*
+ * Look up a tag by index.  Returns the tag string & string length, or NULL if
+ * not found.  Returned string is not guaranteed to be nul terminated.
+ */
+const char* android_lookupEventTag_len(const EventTagMap* map, size_t* len,
+                                       unsigned int tag);
+
+/*
+ * Look up a format by index. Returns the format string & string length,
+ * or NULL if not found. Returned string is not guaranteed to be nul terminated.
+ */
+const char* android_lookupEventFormat_len(const EventTagMap* map, size_t* len,
+                                          unsigned int tag);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log.h b/current/sdk/include/system/logging/liblog/include/log/log.h
new file mode 100644
index 0000000..d7e9b7d
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log.h
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2005-2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+/* Too many in the ecosystem assume these are included */
+#if !defined(_WIN32)
+#include <pthread.h>
+#endif
+#include <stdint.h> /* uint16_t, int32_t */
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <android/log.h>
+#include <log/log_id.h>
+#include <log/log_main.h>
+#include <log/log_radio.h>
+#include <log/log_safetynet.h>
+#include <log/log_system.h>
+#include <log/log_time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * LOG_TAG is the local tag used for the following simplified
+ * logging macros.  You can change this preprocessor definition
+ * before using the other macros to change the tag.
+ */
+
+#ifndef LOG_TAG
+#define LOG_TAG NULL
+#endif
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+/*
+ * The maximum size of the log entry payload that can be
+ * written to the logger. An attempt to write more than
+ * this amount will result in a truncated log entry.
+ */
+#define LOGGER_ENTRY_MAX_PAYLOAD 4068
+
+/*
+ * Event logging.
+ */
+
+/*
+ * The following should not be used directly.
+ */
+
+int __android_log_bwrite(int32_t tag, const void* payload, size_t len);
+int __android_log_btwrite(int32_t tag, char type, const void* payload,
+                          size_t len);
+int __android_log_bswrite(int32_t tag, const char* payload);
+
+int __android_log_stats_bwrite(int32_t tag, const void* payload, size_t len);
+
+#define android_bWriteLog(tag, payload, len) \
+  __android_log_bwrite(tag, payload, len)
+#define android_btWriteLog(tag, type, payload, len) \
+  __android_log_btwrite(tag, type, payload, len)
+
+/*
+ * Event log entry types.
+ */
+typedef enum {
+  /* Special markers for android_log_list_element type */
+  EVENT_TYPE_LIST_STOP = '\n', /* declare end of list  */
+  EVENT_TYPE_UNKNOWN = '?',    /* protocol error       */
+
+  /* must match with declaration in java/android/android/util/EventLog.java */
+  EVENT_TYPE_INT = 0,  /* int32_t */
+  EVENT_TYPE_LONG = 1, /* int64_t */
+  EVENT_TYPE_STRING = 2,
+  EVENT_TYPE_LIST = 3,
+  EVENT_TYPE_FLOAT = 4,
+} AndroidEventLogType;
+
+#ifndef LOG_EVENT_INT
+#define LOG_EVENT_INT(_tag, _value)                                          \
+  {                                                                          \
+    int intBuf = _value;                                                     \
+    (void)android_btWriteLog(_tag, EVENT_TYPE_INT, &intBuf, sizeof(intBuf)); \
+  }
+#endif
+#ifndef LOG_EVENT_LONG
+#define LOG_EVENT_LONG(_tag, _value)                                            \
+  {                                                                             \
+    long long longBuf = _value;                                                 \
+    (void)android_btWriteLog(_tag, EVENT_TYPE_LONG, &longBuf, sizeof(longBuf)); \
+  }
+#endif
+#ifndef LOG_EVENT_FLOAT
+#define LOG_EVENT_FLOAT(_tag, _value)                           \
+  {                                                             \
+    float floatBuf = _value;                                    \
+    (void)android_btWriteLog(_tag, EVENT_TYPE_FLOAT, &floatBuf, \
+                             sizeof(floatBuf));                 \
+  }
+#endif
+#ifndef LOG_EVENT_STRING
+#define LOG_EVENT_STRING(_tag, _value) \
+  (void)__android_log_bswrite(_tag, _value);
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Release any logger resources (a new log write will immediately re-acquire)
+ *
+ * This is specifically meant to be used by Zygote to close open file descriptors after fork()
+ * and before specialization.  O_CLOEXEC is used on file descriptors, so they will be closed upon
+ * exec() in normal use cases.
+ *
+ * Note that this is not safe to call from a multi-threaded program.
+ */
+void __android_log_close(void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_event_list.h b/current/sdk/include/system/logging/liblog/include/log/log_event_list.h
new file mode 100644
index 0000000..deadf20
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_event_list.h
@@ -0,0 +1,278 @@
+/*
+ * Copyright (C) 2005-2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <errno.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+#include <string>
+#endif
+
+#include <log/log.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* For manipulating lists of events. */
+
+#define ANDROID_MAX_LIST_NEST_DEPTH 8
+
+/*
+ * The opaque context used to manipulate lists of events.
+ */
+typedef struct android_log_context_internal* android_log_context;
+
+/*
+ * Elements returned when reading a list of events.
+ */
+typedef struct {
+  AndroidEventLogType type;
+  uint16_t complete;
+  uint16_t len;
+  union {
+    int32_t int32;
+    int64_t int64;
+    char* string;
+    float float32;
+  } data;
+} android_log_list_element;
+
+/*
+ * Creates a context associated with an event tag to write elements to
+ * the list of events.
+ */
+android_log_context create_android_logger(uint32_t tag);
+
+/* All lists must be braced by a begin and end call */
+/*
+ * NB: If the first level braces are missing when specifying multiple
+ *     elements, we will manufacturer a list to embrace it for your API
+ *     convenience. For a single element, it will remain solitary.
+ */
+int android_log_write_list_begin(android_log_context ctx);
+int android_log_write_list_end(android_log_context ctx);
+
+int android_log_write_int32(android_log_context ctx, int32_t value);
+int android_log_write_int64(android_log_context ctx, int64_t value);
+int android_log_write_string8(android_log_context ctx, const char* value);
+int android_log_write_string8_len(android_log_context ctx, const char* value,
+                                  size_t maxlen);
+int android_log_write_float32(android_log_context ctx, float value);
+
+/* Submit the composed list context to the specified logger id */
+/* NB: LOG_ID_EVENTS and LOG_ID_SECURITY only valid binary buffers */
+int android_log_write_list(android_log_context ctx, log_id_t id);
+
+/*
+ * Creates a context from a raw buffer representing a list of events to be read.
+ */
+android_log_context create_android_log_parser(const char* msg, size_t len);
+
+android_log_list_element android_log_read_next(android_log_context ctx);
+android_log_list_element android_log_peek_next(android_log_context ctx);
+
+/* Reset writer context */
+int android_log_reset(android_log_context ctx);
+
+/* Reset reader context */
+int android_log_parser_reset(android_log_context ctx,
+                             const char* msg, size_t len);
+
+/* Finished with reader or writer context */
+int android_log_destroy(android_log_context* ctx);
+
+#ifdef __cplusplus
+/* android_log_list C++ helpers */
+extern "C++" {
+class android_log_event_list {
+ private:
+  android_log_context ctx;
+  int ret;
+
+  android_log_event_list(const android_log_event_list&) = delete;
+  void operator=(const android_log_event_list&) = delete;
+
+ public:
+  explicit android_log_event_list(int tag) : ret(0) {
+    ctx = create_android_logger(static_cast<uint32_t>(tag));
+  }
+  ~android_log_event_list() {
+    android_log_destroy(&ctx);
+  }
+
+  int close() {
+    int retval = android_log_destroy(&ctx);
+    if (retval < 0) ret = retval;
+    return retval;
+  }
+
+  /* To allow above C calls to use this class as parameter */
+  operator android_log_context() const {
+    return ctx;
+  }
+
+  /* return errors or transmit status */
+  int status() const {
+    return ret;
+  }
+
+  int begin() {
+    int retval = android_log_write_list_begin(ctx);
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+  int end() {
+    int retval = android_log_write_list_end(ctx);
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+
+  android_log_event_list& operator<<(int32_t value) {
+    int retval = android_log_write_int32(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(uint32_t value) {
+    int retval = android_log_write_int32(ctx, static_cast<int32_t>(value));
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(bool value) {
+    int retval = android_log_write_int32(ctx, value ? 1 : 0);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(int64_t value) {
+    int retval = android_log_write_int64(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(uint64_t value) {
+    int retval = android_log_write_int64(ctx, static_cast<int64_t>(value));
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(const char* value) {
+    int retval = android_log_write_string8(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(const std::string& value) {
+    int retval =
+        android_log_write_string8_len(ctx, value.data(), value.length());
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(float value) {
+    int retval = android_log_write_float32(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  int write(log_id_t id = LOG_ID_EVENTS) {
+    /* facilitate -EBUSY retry */
+    if ((ret == -EBUSY) || (ret > 0)) ret = 0;
+    int retval = android_log_write_list(ctx, id);
+    /* existing errors trump transmission errors */
+    if (!ret) ret = retval;
+    return ret;
+  }
+
+  int operator<<(log_id_t id) {
+    write(id);
+    android_log_destroy(&ctx);
+    return ret;
+  }
+
+  /*
+   * Append<Type> methods removes any integer promotion
+   * confusion, and adds access to string with length.
+   * Append methods are also added for all types for
+   * convenience.
+   */
+
+  bool AppendInt(int32_t value) {
+    int retval = android_log_write_int32(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendLong(int64_t value) {
+    int retval = android_log_write_int64(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendString(const char* value) {
+    int retval = android_log_write_string8(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendString(const char* value, size_t len) {
+    int retval = android_log_write_string8_len(ctx, value, len);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendString(const std::string& value) {
+    int retval =
+        android_log_write_string8_len(ctx, value.data(), value.length());
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+
+  bool Append(const std::string& value) {
+    int retval =
+        android_log_write_string8_len(ctx, value.data(), value.length());
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+
+  bool AppendFloat(float value) {
+    int retval = android_log_write_float32(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  template <typename Tvalue>
+  bool Append(Tvalue value) {
+    *this << value;
+    return ret >= 0;
+  }
+
+  bool Append(const char* value, size_t len) {
+    int retval = android_log_write_string8_len(ctx, value, len);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+};
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_id.h b/current/sdk/include/system/logging/liblog/include/log/log_id.h
new file mode 100644
index 0000000..8e4faeb
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_id.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <android/log.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * log_id_t helpers
+ */
+log_id_t android_name_to_log_id(const char* logName);
+const char* android_log_id_to_name(log_id_t log_id);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_main.h b/current/sdk/include/system/logging/liblog/include/log/log_main.h
new file mode 100644
index 0000000..799a8e2
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_main.h
@@ -0,0 +1,378 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+#include <android/log.h>
+
+__BEGIN_DECLS
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * This file uses ", ## __VA_ARGS__" zero-argument token pasting to
+ * work around issues with debug-only syntax errors in assertions
+ * that are missing format strings.  See commit
+ * 19299904343daf191267564fe32e6cd5c165cd42
+ */
+#if defined(__clang__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
+#endif
+
+/*
+ * Use __VA_ARGS__ if running a static analyzer,
+ * to avoid warnings of unused variables in __VA_ARGS__.
+ * Use constexpr function in C++ mode, so these macros can be used
+ * in other constexpr functions without warning.
+ */
+#ifdef __clang_analyzer__
+#ifdef __cplusplus
+extern "C++" {
+template <typename... Ts>
+constexpr int __fake_use_va_args(Ts...) {
+  return 0;
+}
+}
+#else
+extern int __fake_use_va_args(int, ...);
+#endif /* __cplusplus */
+#define __FAKE_USE_VA_ARGS(...) ((void)__fake_use_va_args(0, ##__VA_ARGS__))
+#else
+#define __FAKE_USE_VA_ARGS(...) ((void)(0))
+#endif /* __clang_analyzer__ */
+
+#ifndef __predict_false
+#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
+#endif
+
+#define android_writeLog(prio, tag, text) __android_log_write(prio, tag, text)
+
+#define android_printLog(prio, tag, ...) \
+  __android_log_print(prio, tag, __VA_ARGS__)
+
+#define android_vprintLog(prio, cond, tag, ...) \
+  __android_log_vprint(prio, tag, __VA_ARGS__)
+
+/*
+ * Log macro that allows you to specify a number for the priority.
+ */
+#ifndef LOG_PRI
+#define LOG_PRI(priority, tag, ...) android_printLog(priority, tag, __VA_ARGS__)
+#endif
+
+/*
+ * Log macro that allows you to pass in a varargs ("args" is a va_list).
+ */
+#ifndef LOG_PRI_VA
+#define LOG_PRI_VA(priority, tag, fmt, args) \
+  android_vprintLog(priority, NULL, tag, fmt, args)
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/* XXX Macros to work around syntax errors in places where format string
+ * arg is not passed to ALOG_ASSERT, LOG_ALWAYS_FATAL or LOG_ALWAYS_FATAL_IF
+ * (happens only in debug builds).
+ */
+
+/* Returns 2nd arg.  Used to substitute default value if caller's vararg list
+ * is empty.
+ */
+#define __android_second(dummy, second, ...) second
+
+/* If passed multiple args, returns ',' followed by all but 1st arg, otherwise
+ * returns nothing.
+ */
+#define __android_rest(first, ...) , ##__VA_ARGS__
+
+#define android_printAssert(cond, tag, ...)                     \
+  __android_log_assert(cond, tag,                               \
+                       __android_second(0, ##__VA_ARGS__, NULL) \
+                           __android_rest(__VA_ARGS__))
+
+/*
+ * Log a fatal error.  If the given condition fails, this stops program
+ * execution like a normal assertion, but also generating the given message.
+ * It is NOT stripped from release builds.  Note that the condition test
+ * is -inverted- from the normal assert() semantics.
+ */
+#ifndef LOG_ALWAYS_FATAL_IF
+#define LOG_ALWAYS_FATAL_IF(cond, ...)                                                    \
+  ((__predict_false(cond)) ? (__FAKE_USE_VA_ARGS(__VA_ARGS__),                            \
+                              ((void)android_printAssert(#cond, LOG_TAG, ##__VA_ARGS__))) \
+                           : ((void)0))
+#endif
+
+#ifndef LOG_ALWAYS_FATAL
+#define LOG_ALWAYS_FATAL(...) \
+  (((void)android_printAssert(NULL, LOG_TAG, ##__VA_ARGS__)))
+#endif
+
+/*
+ * Versions of LOG_ALWAYS_FATAL_IF and LOG_ALWAYS_FATAL that
+ * are stripped out of release builds.
+ */
+
+#if LOG_NDEBUG
+
+#ifndef LOG_FATAL_IF
+#define LOG_FATAL_IF(cond, ...) __FAKE_USE_VA_ARGS(__VA_ARGS__)
+#endif
+#ifndef LOG_FATAL
+#define LOG_FATAL(...) __FAKE_USE_VA_ARGS(__VA_ARGS__)
+#endif
+
+#else
+
+#ifndef LOG_FATAL_IF
+#define LOG_FATAL_IF(cond, ...) LOG_ALWAYS_FATAL_IF(cond, ##__VA_ARGS__)
+#endif
+#ifndef LOG_FATAL
+#define LOG_FATAL(...) LOG_ALWAYS_FATAL(__VA_ARGS__)
+#endif
+
+#endif
+
+/*
+ * Assertion that generates a log message when the assertion fails.
+ * Stripped out of release builds.  Uses the current LOG_TAG.
+ */
+#ifndef ALOG_ASSERT
+#define ALOG_ASSERT(cond, ...) LOG_FATAL_IF(!(cond), ##__VA_ARGS__)
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * C/C++ logging functions.  See the logging documentation for API details.
+ *
+ * We'd like these to be available from C code (in case we import some from
+ * somewhere), so this has a C interface.
+ *
+ * The output will be correct when the log file is shared between multiple
+ * threads and/or multiple processes so long as the operating system
+ * supports O_APPEND.  These calls have mutex-protected data structures
+ * and so are NOT reentrant.  Do not use LOG in a signal handler.
+ */
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Simplified macro to send a verbose log message using the current LOG_TAG.
+ */
+#ifndef ALOGV
+#define __ALOGV(...) ((void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
+#if LOG_NDEBUG
+#define ALOGV(...)                   \
+  do {                               \
+    __FAKE_USE_VA_ARGS(__VA_ARGS__); \
+    if (false) {                     \
+      __ALOGV(__VA_ARGS__);          \
+    }                                \
+  } while (false)
+#else
+#define ALOGV(...) __ALOGV(__VA_ARGS__)
+#endif
+#endif
+
+#ifndef ALOGV_IF
+#if LOG_NDEBUG
+#define ALOGV_IF(cond, ...) __FAKE_USE_VA_ARGS(__VA_ARGS__)
+#else
+#define ALOGV_IF(cond, ...)                                                               \
+  ((__predict_false(cond))                                                                \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+#endif
+
+/*
+ * Simplified macro to send a debug log message using the current LOG_TAG.
+ */
+#ifndef ALOGD
+#define ALOGD(...) ((void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGD_IF
+#define ALOGD_IF(cond, ...)                                                             \
+  ((__predict_false(cond))                                                              \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/*
+ * Simplified macro to send an info log message using the current LOG_TAG.
+ */
+#ifndef ALOGI
+#define ALOGI(...) ((void)ALOG(LOG_INFO, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGI_IF
+#define ALOGI_IF(cond, ...)                                                            \
+  ((__predict_false(cond))                                                             \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_INFO, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/*
+ * Simplified macro to send a warning log message using the current LOG_TAG.
+ */
+#ifndef ALOGW
+#define ALOGW(...) ((void)ALOG(LOG_WARN, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGW_IF
+#define ALOGW_IF(cond, ...)                                                            \
+  ((__predict_false(cond))                                                             \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_WARN, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/*
+ * Simplified macro to send an error log message using the current LOG_TAG.
+ */
+#ifndef ALOGE
+#define ALOGE(...) ((void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGE_IF
+#define ALOGE_IF(cond, ...)                                                             \
+  ((__predict_false(cond))                                                              \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * verbose priority.
+ */
+#ifndef IF_ALOGV
+#if LOG_NDEBUG
+#define IF_ALOGV() if (false)
+#else
+#define IF_ALOGV() IF_ALOG(LOG_VERBOSE, LOG_TAG)
+#endif
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * debug priority.
+ */
+#ifndef IF_ALOGD
+#define IF_ALOGD() IF_ALOG(LOG_DEBUG, LOG_TAG)
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * info priority.
+ */
+#ifndef IF_ALOGI
+#define IF_ALOGI() IF_ALOG(LOG_INFO, LOG_TAG)
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * warn priority.
+ */
+#ifndef IF_ALOGW
+#define IF_ALOGW() IF_ALOG(LOG_WARN, LOG_TAG)
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * error priority.
+ */
+#ifndef IF_ALOGE
+#define IF_ALOGE() IF_ALOG(LOG_ERROR, LOG_TAG)
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Basic log message macro.
+ *
+ * Example:
+ *  ALOG(LOG_WARN, NULL, "Failed with error %d", errno);
+ *
+ * The second argument may be NULL or "" to indicate the "global" tag.
+ */
+#ifndef ALOG
+#define ALOG(priority, tag, ...) LOG_PRI(ANDROID_##priority, tag, __VA_ARGS__)
+#endif
+
+/*
+ * Conditional given a desired logging priority and tag.
+ */
+#ifndef IF_ALOG
+#define IF_ALOG(priority, tag) if (android_testLog(ANDROID_##priority, tag))
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ *    IF_ALOG uses android_testLog, but IF_ALOG can be overridden.
+ *    android_testLog will remain constant in its purpose as a wrapper
+ *        for Android logging filter policy, and can be subject to
+ *        change. It can be reused by the developers that override
+ *        IF_ALOG as a convenient means to reimplement their policy
+ *        over Android.
+ */
+
+/*
+ * Use the per-tag properties "log.tag.<tagname>" to generate a runtime
+ * result of non-zero to expose a log. prio is ANDROID_LOG_VERBOSE to
+ * ANDROID_LOG_FATAL. default_prio if no property. Undefined behavior if
+ * any other value.
+ */
+int __android_log_is_loggable(int prio, const char* tag, int default_prio);
+int __android_log_is_loggable_len(int prio, const char* tag, size_t len, int default_prio);
+
+#if LOG_NDEBUG /* Production */
+#define android_testLog(prio, tag) \
+  (__android_log_is_loggable_len(prio, tag, (tag) ? strlen(tag) : 0, ANDROID_LOG_DEBUG) != 0)
+#else
+#define android_testLog(prio, tag) \
+  (__android_log_is_loggable_len(prio, tag, (tag) ? strlen(tag) : 0, ANDROID_LOG_VERBOSE) != 0)
+#endif
+
+#if defined(__clang__)
+#pragma clang diagnostic pop
+#endif
+
+__END_DECLS
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_properties.h b/current/sdk/include/system/logging/liblog/include/log/log_properties.h
new file mode 100644
index 0000000..2a0230f
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_properties.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Returns `1` if the device is debuggable or `0` if not. */
+int __android_log_is_debuggable();
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_radio.h b/current/sdk/include/system/logging/liblog/include/log/log_radio.h
new file mode 100644
index 0000000..f5525c1
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_radio.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <android/log.h>
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+/* --------------------------------------------------------------------- */
+
+#ifndef __predict_false
+#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
+#endif
+
+/*
+ * Simplified macro to send a verbose radio log message using current LOG_TAG.
+ */
+#ifndef RLOGV
+#define __RLOGV(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_VERBOSE, LOG_TAG, \
+                                 __VA_ARGS__))
+#if LOG_NDEBUG
+#define RLOGV(...)          \
+  do {                      \
+    if (0) {                \
+      __RLOGV(__VA_ARGS__); \
+    }                       \
+  } while (0)
+#else
+#define RLOGV(...) __RLOGV(__VA_ARGS__)
+#endif
+#endif
+
+#ifndef RLOGV_IF
+#if LOG_NDEBUG
+#define RLOGV_IF(cond, ...) ((void)0)
+#else
+#define RLOGV_IF(cond, ...)                                                \
+  ((__predict_false(cond))                                                 \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_VERBOSE, \
+                                        LOG_TAG, __VA_ARGS__))             \
+       : (void)0)
+#endif
+#endif
+
+/*
+ * Simplified macro to send a debug radio log message using  current LOG_TAG.
+ */
+#ifndef RLOGD
+#define RLOGD(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_DEBUG, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGD_IF
+#define RLOGD_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_DEBUG, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an info radio log message using  current LOG_TAG.
+ */
+#ifndef RLOGI
+#define RLOGI(...)                                                        \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_INFO, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGI_IF
+#define RLOGI_IF(cond, ...)                                             \
+  ((__predict_false(cond))                                              \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_INFO, \
+                                        LOG_TAG, __VA_ARGS__))          \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send a warning radio log message using current LOG_TAG.
+ */
+#ifndef RLOGW
+#define RLOGW(...)                                                        \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_WARN, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGW_IF
+#define RLOGW_IF(cond, ...)                                             \
+  ((__predict_false(cond))                                              \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_WARN, \
+                                        LOG_TAG, __VA_ARGS__))          \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an error radio log message using current LOG_TAG.
+ */
+#ifndef RLOGE
+#define RLOGE(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_ERROR, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGE_IF
+#define RLOGE_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_ERROR, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_read.h b/current/sdk/include/system/logging/liblog/include/log/log_read.h
new file mode 100644
index 0000000..1736934
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_read.h
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <sys/types.h>
+
+#include <android/log.h>
+#include <log/log_time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ANDROID_LOG_WRAP_DEFAULT_TIMEOUT 7200 /* 2 hour default */
+
+/*
+ * Native log reading interface section. See logcat for sample code.
+ *
+ * The preferred API is an exec of logcat. Likely uses of this interface
+ * are if native code suffers from exec or filtration being too costly,
+ * access to raw information, or parsing is an issue.
+ */
+
+struct logger_entry {
+  uint16_t len;      /* length of the payload */
+  uint16_t hdr_size; /* sizeof(struct logger_entry) */
+  int32_t pid;       /* generating process's pid */
+  uint32_t tid;      /* generating process's tid */
+  uint32_t sec;      /* seconds since Epoch */
+  uint32_t nsec;     /* nanoseconds */
+  uint32_t lid;      /* log id of the payload, bottom 4 bits currently */
+  uint32_t uid;      /* generating process's uid */
+};
+
+/*
+ * The maximum size of a log entry which can be read.
+ * An attempt to read less than this amount may result
+ * in read() returning EINVAL.
+ */
+#define LOGGER_ENTRY_MAX_LEN (5 * 1024)
+
+struct log_msg {
+  union {
+    unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1];
+    struct logger_entry entry;
+  } __attribute__((aligned(4)));
+#ifdef __cplusplus
+  uint64_t nsec() const {
+    return static_cast<uint64_t>(entry.sec) * NS_PER_SEC + entry.nsec;
+  }
+  log_id_t id() {
+    return static_cast<log_id_t>(entry.lid);
+  }
+  char* msg() {
+    unsigned short hdr_size = entry.hdr_size;
+    if (hdr_size >= sizeof(struct log_msg) - sizeof(entry)) {
+      return nullptr;
+    }
+    return reinterpret_cast<char*>(buf) + hdr_size;
+  }
+  unsigned int len() { return entry.hdr_size + entry.len; }
+#endif
+};
+
+struct logger;
+
+log_id_t android_logger_get_id(struct logger* logger);
+
+/* Clears the given log buffer. */
+int android_logger_clear(struct logger* logger);
+/* Return the allotted size for the given log buffer. */
+long android_logger_get_log_size(struct logger* logger);
+/* Set the allotted size for the given log buffer. */
+int android_logger_set_log_size(struct logger* logger, unsigned long size);
+/* Return the actual, uncompressed size that can be read from the given log buffer. */
+long android_logger_get_log_readable_size(struct logger* logger);
+/* Return the actual, compressed size that the given log buffer is consuming. */
+long android_logger_get_log_consumed_size(struct logger* logger);
+/* Deprecated.  Always returns '4' regardless of input. */
+int android_logger_get_log_version(struct logger* logger);
+
+struct logger_list;
+
+ssize_t android_logger_get_statistics(struct logger_list* logger_list,
+                                      char* buf, size_t len);
+ssize_t android_logger_get_prune_list(struct logger_list* logger_list,
+                                      char* buf, size_t len);
+int android_logger_set_prune_list(struct logger_list* logger_list, const char* buf, size_t len);
+
+/* The below values are used for the `mode` argument of the below functions. */
+/* Note that 0x00000003 were previously used and should be considered reserved. */
+#define ANDROID_LOG_NONBLOCK 0x00000800
+#define ANDROID_LOG_WRAP 0x40000000 /* Block until buffer about to wrap */
+#define ANDROID_LOG_PSTORE 0x80000000
+
+struct logger_list* android_logger_list_alloc(int mode, unsigned int tail,
+                                              pid_t pid);
+struct logger_list* android_logger_list_alloc_time(int mode, log_time start,
+                                                   pid_t pid);
+void android_logger_list_free(struct logger_list* logger_list);
+/* In the purest sense, the following two are orthogonal interfaces */
+int android_logger_list_read(struct logger_list* logger_list,
+                             struct log_msg* log_msg);
+
+/* Multiple log_id_t opens */
+struct logger* android_logger_open(struct logger_list* logger_list, log_id_t id);
+/* Single log_id_t open */
+struct logger_list* android_logger_list_open(log_id_t id, int mode,
+                                             unsigned int tail, pid_t pid);
+#define android_logger_list_close android_logger_list_free
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_safetynet.h b/current/sdk/include/system/logging/liblog/include/log/log_safetynet.h
new file mode 100644
index 0000000..b2604b5
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_safetynet.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define android_errorWriteLog(tag, subTag) \
+  __android_log_error_write(tag, subTag, -1, NULL, 0)
+
+#define android_errorWriteWithInfoLog(tag, subTag, uid, data, dataLen) \
+  __android_log_error_write(tag, subTag, uid, data, dataLen)
+
+int __android_log_error_write(int tag, const char* subTag, int32_t uid,
+                              const char* data, uint32_t dataLen);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_system.h b/current/sdk/include/system/logging/liblog/include/log/log_system.h
new file mode 100644
index 0000000..6f40515
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_system.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <android/log.h>
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+#ifndef __predict_false
+#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
+#endif
+
+/*
+ * Simplified macro to send a verbose system log message using current LOG_TAG.
+ */
+#ifndef SLOGV
+#define __SLOGV(...)                                                          \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_VERBOSE, LOG_TAG, \
+                                 __VA_ARGS__))
+#if LOG_NDEBUG
+#define SLOGV(...)          \
+  do {                      \
+    if (0) {                \
+      __SLOGV(__VA_ARGS__); \
+    }                       \
+  } while (0)
+#else
+#define SLOGV(...) __SLOGV(__VA_ARGS__)
+#endif
+#endif
+
+#ifndef SLOGV_IF
+#if LOG_NDEBUG
+#define SLOGV_IF(cond, ...) ((void)0)
+#else
+#define SLOGV_IF(cond, ...)                                                 \
+  ((__predict_false(cond))                                                  \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_VERBOSE, \
+                                        LOG_TAG, __VA_ARGS__))              \
+       : (void)0)
+#endif
+#endif
+
+/*
+ * Simplified macro to send a debug system log message using current LOG_TAG.
+ */
+#ifndef SLOGD
+#define SLOGD(...)                                                          \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_DEBUG, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGD_IF
+#define SLOGD_IF(cond, ...)                                               \
+  ((__predict_false(cond))                                                \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_DEBUG, \
+                                        LOG_TAG, __VA_ARGS__))            \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an info system log message using current LOG_TAG.
+ */
+#ifndef SLOGI
+#define SLOGI(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_INFO, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGI_IF
+#define SLOGI_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_INFO, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send a warning system log message using current LOG_TAG.
+ */
+#ifndef SLOGW
+#define SLOGW(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_WARN, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGW_IF
+#define SLOGW_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_WARN, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an error system log message using current LOG_TAG.
+ */
+#ifndef SLOGE
+#define SLOGE(...)                                                          \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_ERROR, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGE_IF
+#define SLOGE_IF(cond, ...)                                               \
+  ((__predict_false(cond))                                                \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_ERROR, \
+                                        LOG_TAG, __VA_ARGS__))            \
+       : (void)0)
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/log/log_time.h b/current/sdk/include/system/logging/liblog/include/log/log_time.h
new file mode 100644
index 0000000..f50764d
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/log_time.h
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <time.h>
+
+/* struct log_time is a wire-format variant of struct timespec */
+#define NS_PER_SEC 1000000000ULL
+#define US_PER_SEC 1000000ULL
+#define MS_PER_SEC 1000ULL
+
+#define LOG_TIME_SEC(t) ((t)->tv_sec)
+/* next power of two after NS_PER_SEC */
+#define LOG_TIME_NSEC(t) ((t)->tv_nsec & (UINT32_MAX >> 2))
+
+#ifdef __cplusplus
+
+extern "C" {
+
+struct log_time {
+ public:
+  uint32_t tv_sec = 0; /* good to Feb 5 2106 */
+  uint32_t tv_nsec = 0;
+
+  static constexpr timespec EPOCH = {0, 0};
+
+  log_time() {}
+  explicit log_time(const timespec& T)
+      : tv_sec(static_cast<uint32_t>(T.tv_sec)), tv_nsec(static_cast<uint32_t>(T.tv_nsec)) {}
+  explicit log_time(uint32_t sec, uint32_t nsec = 0)
+      : tv_sec(sec), tv_nsec(nsec) {
+  }
+#ifdef __linux__
+  explicit log_time(clockid_t id) {
+    timespec T;
+    clock_gettime(id, &T);
+    tv_sec = static_cast<uint32_t>(T.tv_sec);
+    tv_nsec = static_cast<uint32_t>(T.tv_nsec);
+  }
+#endif
+  /* timespec */
+  bool operator==(const timespec& T) const {
+    return (tv_sec == static_cast<uint32_t>(T.tv_sec)) &&
+           (tv_nsec == static_cast<uint32_t>(T.tv_nsec));
+  }
+  bool operator!=(const timespec& T) const {
+    return !(*this == T);
+  }
+  bool operator<(const timespec& T) const {
+    return (tv_sec < static_cast<uint32_t>(T.tv_sec)) ||
+           ((tv_sec == static_cast<uint32_t>(T.tv_sec)) &&
+            (tv_nsec < static_cast<uint32_t>(T.tv_nsec)));
+  }
+  bool operator>=(const timespec& T) const {
+    return !(*this < T);
+  }
+  bool operator>(const timespec& T) const {
+    return (tv_sec > static_cast<uint32_t>(T.tv_sec)) ||
+           ((tv_sec == static_cast<uint32_t>(T.tv_sec)) &&
+            (tv_nsec > static_cast<uint32_t>(T.tv_nsec)));
+  }
+  bool operator<=(const timespec& T) const {
+    return !(*this > T);
+  }
+
+  /* log_time */
+  bool operator==(const log_time& T) const {
+    return (tv_sec == T.tv_sec) && (tv_nsec == T.tv_nsec);
+  }
+  bool operator!=(const log_time& T) const {
+    return !(*this == T);
+  }
+  bool operator<(const log_time& T) const {
+    return (tv_sec < T.tv_sec) ||
+           ((tv_sec == T.tv_sec) && (tv_nsec < T.tv_nsec));
+  }
+  bool operator>=(const log_time& T) const {
+    return !(*this < T);
+  }
+  bool operator>(const log_time& T) const {
+    return (tv_sec > T.tv_sec) ||
+           ((tv_sec == T.tv_sec) && (tv_nsec > T.tv_nsec));
+  }
+  bool operator<=(const log_time& T) const {
+    return !(*this > T);
+  }
+
+  log_time operator-=(const log_time& T) {
+    // No concept of negative time, clamp to EPOCH
+    if (*this <= T) {
+      return *this = log_time(EPOCH);
+    }
+
+    if (this->tv_nsec < T.tv_nsec) {
+      --this->tv_sec;
+      this->tv_nsec = NS_PER_SEC + this->tv_nsec - T.tv_nsec;
+    } else {
+      this->tv_nsec -= T.tv_nsec;
+    }
+    this->tv_sec -= T.tv_sec;
+
+    return *this;
+  }
+  log_time operator-(const log_time& T) const {
+    log_time local(*this);
+    return local -= T;
+  }
+  log_time operator+=(const log_time& T) {
+    this->tv_nsec += T.tv_nsec;
+    if (this->tv_nsec >= NS_PER_SEC) {
+      this->tv_nsec -= NS_PER_SEC;
+      ++this->tv_sec;
+    }
+    this->tv_sec += T.tv_sec;
+
+    return *this;
+  }
+  log_time operator+(const log_time& T) const {
+    log_time local(*this);
+    return local += T;
+  }
+
+  uint64_t nsec() const {
+    return static_cast<uint64_t>(tv_sec) * NS_PER_SEC + tv_nsec;
+  }
+  uint64_t usec() const {
+    return static_cast<uint64_t>(tv_sec) * US_PER_SEC +
+           tv_nsec / (NS_PER_SEC / US_PER_SEC);
+  }
+  uint64_t msec() const {
+    return static_cast<uint64_t>(tv_sec) * MS_PER_SEC +
+           tv_nsec / (NS_PER_SEC / MS_PER_SEC);
+  }
+
+  /* Add %#q for the fraction of a second to the standard library functions */
+  char* strptime(const char* s, const char* format);
+} __attribute__((__packed__));
+}
+
+#else /* __cplusplus */
+
+typedef struct log_time {
+  uint32_t tv_sec;
+  uint32_t tv_nsec;
+} __attribute__((__packed__)) log_time;
+
+#endif /* __cplusplus */
diff --git a/current/sdk/include/system/logging/liblog/include/log/logprint.h b/current/sdk/include/system/logging/liblog/include/log/logprint.h
new file mode 100644
index 0000000..0cff640
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/log/logprint.h
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#include <android/log.h>
+#include <log/event_tag_map.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+  /* Verbs */
+  FORMAT_OFF = 0,
+  FORMAT_BRIEF,
+  FORMAT_PROCESS,
+  FORMAT_TAG,
+  FORMAT_THREAD,
+  FORMAT_RAW,
+  FORMAT_TIME,
+  FORMAT_THREADTIME,
+  FORMAT_LONG,
+  /* Adverbs. The following are modifiers to above format verbs */
+  FORMAT_MODIFIER_COLOR,     /* converts priority to color */
+  FORMAT_MODIFIER_TIME_USEC, /* switches from msec to usec time precision */
+  FORMAT_MODIFIER_PRINTABLE, /* converts non-printable to printable escapes */
+  FORMAT_MODIFIER_YEAR,      /* Adds year to date */
+  FORMAT_MODIFIER_ZONE,      /* Adds zone to date, + UTC */
+  FORMAT_MODIFIER_EPOCH,     /* Print time as seconds since Jan 1 1970 */
+  FORMAT_MODIFIER_MONOTONIC, /* Print cpu time as seconds since start */
+  FORMAT_MODIFIER_UID,       /* Adds uid */
+  FORMAT_MODIFIER_DESCRIPT,  /* Adds descriptive */
+  /* private, undocumented */
+  FORMAT_MODIFIER_TIME_NSEC, /* switches from msec to nsec time precision */
+} AndroidLogPrintFormat;
+
+typedef struct AndroidLogFormat_t AndroidLogFormat;
+
+typedef struct AndroidLogEntry_t {
+  time_t tv_sec;
+  long tv_nsec;
+  android_LogPriority priority;
+  int32_t uid;
+  int32_t pid;
+  int32_t tid;
+  const char* tag;
+  size_t tagLen;
+  size_t messageLen;
+  const char* message;
+} AndroidLogEntry;
+
+AndroidLogFormat* android_log_format_new();
+
+void android_log_format_free(AndroidLogFormat* p_format);
+
+/* currently returns 0 if format is a modifier, 1 if not */
+int android_log_setPrintFormat(AndroidLogFormat* p_format,
+                               AndroidLogPrintFormat format);
+
+/**
+ * Returns FORMAT_OFF on invalid string
+ */
+AndroidLogPrintFormat android_log_formatFromString(const char* s);
+
+/**
+ * filterExpression: a single filter expression
+ * eg "AT:d"
+ *
+ * returns 0 on success and -1 on invalid expression
+ *
+ * Assumes single threaded execution
+ *
+ */
+
+int android_log_addFilterRule(AndroidLogFormat* p_format,
+                              const char* filterExpression);
+
+/**
+ * filterString: a whitespace-separated set of filter expressions
+ * eg "AT:d *:i"
+ *
+ * returns 0 on success and -1 on invalid expression
+ *
+ * Assumes single threaded execution
+ *
+ */
+
+int android_log_addFilterString(AndroidLogFormat* p_format,
+                                const char* filterString);
+
+/**
+ * returns 1 if this log line should be printed based on its priority
+ * and tag, and 0 if it should not
+ */
+int android_log_shouldPrintLine(AndroidLogFormat* p_format, const char* tag,
+                                android_LogPriority pri);
+
+/**
+ * Splits a wire-format buffer into an AndroidLogEntry
+ * entry allocated by caller. Pointers will point directly into buf
+ *
+ * Returns 0 on success and -1 on invalid wire format (entry will be
+ * in unspecified state)
+ */
+int android_log_processLogBuffer(struct logger_entry* buf,
+                                 AndroidLogEntry* entry);
+
+/**
+ * Like android_log_processLogBuffer, but for binary logs.
+ *
+ * If "map" is non-NULL, it will be used to convert the log tag number
+ * into a string.
+ */
+int android_log_processBinaryLogBuffer(struct logger_entry* buf,
+                                       AndroidLogEntry* entry,
+                                       const EventTagMap* map, char* messageBuf,
+                                       int messageBufLen);
+
+/**
+ * Formats a log message into a buffer
+ *
+ * Uses defaultBuffer if it can, otherwise malloc()'s a new buffer
+ * If return value != defaultBuffer, caller must call free()
+ * Returns NULL on malloc error
+ */
+
+char* android_log_formatLogLine(AndroidLogFormat* p_format, char* defaultBuffer,
+                                size_t defaultBufferSize,
+                                const AndroidLogEntry* p_line,
+                                size_t* p_outLength);
+
+/**
+ * Formats a log message into a FILE*.
+ */
+size_t android_log_printLogLine(AndroidLogFormat* p_format, FILE* fp, const AndroidLogEntry* entry);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/current/sdk/include/system/logging/liblog/include/private/android_logger.h b/current/sdk/include/system/logging/liblog/include/private/android_logger.h
new file mode 100644
index 0000000..d414b07
--- /dev/null
+++ b/current/sdk/include/system/logging/liblog/include/private/android_logger.h
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* This file is used to define the internal protocol for the Android Logger */
+
+#pragma once
+
+/* Android private interfaces */
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+#include <string>
+#endif
+
+#include <log/log.h>
+#include <log/log_event_list.h>
+
+#define LOGGER_MAGIC 'l'
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/* Header Structure to pstore */
+typedef struct __attribute__((__packed__)) {
+  uint8_t magic;
+  uint16_t len;
+  uint16_t uid;
+  uint16_t pid;
+} android_pmsg_log_header_t;
+
+/* Header Structure to logd, and second header for pstore */
+typedef struct __attribute__((__packed__)) {
+  uint8_t id;
+  uint16_t tid;
+  log_time realtime;
+} android_log_header_t;
+
+/* Event Header Structure to logd */
+typedef struct __attribute__((__packed__)) {
+  int32_t tag;  // Little Endian Order
+} android_event_header_t;
+
+// Event payload EVENT_TYPE_LIST
+typedef struct __attribute__((__packed__)) {
+  int8_t type;  // EVENT_TYPE_LIST
+  int8_t element_count;
+} android_event_list_t;
+
+// Event payload EVENT_TYPE_FLOAT
+typedef struct __attribute__((__packed__)) {
+  int8_t type;  // EVENT_TYPE_FLOAT
+  float data;
+} android_event_float_t;
+
+/* Event payload EVENT_TYPE_INT */
+typedef struct __attribute__((__packed__)) {
+  int8_t type;   // EVENT_TYPE_INT
+  int32_t data;  // Little Endian Order
+} android_event_int_t;
+
+/* Event with single EVENT_TYPE_INT */
+typedef struct __attribute__((__packed__)) {
+  android_event_header_t header;
+  android_event_int_t payload;
+} android_log_event_int_t;
+
+/* Event payload EVENT_TYPE_LONG */
+typedef struct __attribute__((__packed__)) {
+  int8_t type;   // EVENT_TYPE_LONG
+  int64_t data;  // Little Endian Order
+} android_event_long_t;
+
+/* Event with single EVENT_TYPE_LONG */
+typedef struct __attribute__((__packed__)) {
+  android_event_header_t header;
+  android_event_long_t payload;
+} android_log_event_long_t;
+
+/*
+ * Event payload EVENT_TYPE_STRING
+ *
+ * Danger: do not embed this structure into another structure.
+ * This structure uses a flexible array member, and when
+ * compiled using g++, __builtin_object_size(data, 1) returns
+ * a bad value. This is possibly a g++ bug, or a bug due to
+ * the fact that flexible array members are not supported
+ * in C++.
+ * http://stackoverflow.com/questions/4412749/are-flexible-array-members-valid-in-c
+ */
+
+typedef struct __attribute__((__packed__)) {
+  int8_t type;     // EVENT_TYPE_STRING;
+  int32_t length;  // Little Endian Order
+  char data[];
+} android_event_string_t;
+
+/* Event with single EVENT_TYPE_STRING */
+typedef struct __attribute__((__packed__)) {
+  android_event_header_t header;
+  int8_t type;     // EVENT_TYPE_STRING;
+  int32_t length;  // Little Endian Order
+  char data[];
+} android_log_event_string_t;
+
+#define ANDROID_LOG_PMSG_FILE_MAX_SEQUENCE 256 /* 1MB file */
+#define ANDROID_LOG_PMSG_FILE_SEQUENCE 1000
+
+ssize_t __android_log_pmsg_file_write(log_id_t logId, char prio,
+                                      const char* filename, const char* buf,
+                                      size_t len);
+
+#define ANDROID_LOG_ANY ANDROID_LOG_UNKNOWN
+
+/* first 5 arguments match __android_log_msg_file_write, a cast is safe */
+typedef ssize_t (*__android_log_pmsg_file_read_fn)(log_id_t logId, char prio,
+                                                   const char* filename,
+                                                   const char* buf, size_t len,
+                                                   void* arg);
+
+ssize_t __android_log_pmsg_file_read(log_id_t logId, char prio,
+                                     const char* prefix,
+                                     __android_log_pmsg_file_read_fn fn,
+                                     void* arg);
+
+int __android_log_security_bwrite(int32_t tag, const void* payload, size_t len);
+int __android_log_security_bswrite(int32_t tag, const char* payload);
+int __android_log_security(); /* Device Owner is present */
+
+/* Retrieve the composed event buffer */
+int android_log_write_list_buffer(android_log_context ctx, const char** msg);
+
+#if defined(__cplusplus)
+}
+#endif
diff --git a/current/sdk/java/art.module.api.annotations.for.system.modules.jar b/current/sdk/java/art.module.api.annotations.for.system.modules.jar
index e0eb462..b237373 100644
--- a/current/sdk/java/art.module.api.annotations.for.system.modules.jar
+++ b/current/sdk/java/art.module.api.annotations.for.system.modules.jar
Binary files differ
diff --git a/current/sdk/java/art.module.intra.core.api.stubs.jar b/current/sdk/java/art.module.intra.core.api.stubs.jar
index 0cde291..9fc03f9 100644
--- a/current/sdk/java/art.module.intra.core.api.stubs.jar
+++ b/current/sdk/java/art.module.intra.core.api.stubs.jar
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libdexfile.so b/current/sdk/linux_glibc/x86/lib/libdexfile.so
index cbe6585..da55275 100755
--- a/current/sdk/linux_glibc/x86/lib/libdexfile.so
+++ b/current/sdk/linux_glibc/x86/lib/libdexfile.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libdexfile_static.a b/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
index 8689fa8..88c1101 100644
--- a/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
+++ b/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libdexfile_support.a b/current/sdk/linux_glibc/x86/lib/libdexfile_support.a
index 257fd3f..3aa2825 100644
--- a/current/sdk/linux_glibc/x86/lib/libdexfile_support.a
+++ b/current/sdk/linux_glibc/x86/lib/libdexfile_support.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libnativebridge.so b/current/sdk/linux_glibc/x86/lib/libnativebridge.so
index 5d50e00..b16c081 100755
--- a/current/sdk/linux_glibc/x86/lib/libnativebridge.so
+++ b/current/sdk/linux_glibc/x86/lib/libnativebridge.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a b/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a
index c74939b..329bb01 100644
--- a/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a
+++ b/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libnativeloader.so b/current/sdk/linux_glibc/x86/lib/libnativeloader.so
index a790f09..eef238a 100755
--- a/current/sdk/linux_glibc/x86/lib/libnativeloader.so
+++ b/current/sdk/linux_glibc/x86/lib/libnativeloader.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86/lib/libsigchain.so b/current/sdk/linux_glibc/x86/lib/libsigchain.so
index 537e7f1..02f7f99 100755
--- a/current/sdk/linux_glibc/x86/lib/libsigchain.so
+++ b/current/sdk/linux_glibc/x86/lib/libsigchain.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libdexfile.so b/current/sdk/linux_glibc/x86_64/lib/libdexfile.so
index e44bf51..c6711f8 100755
--- a/current/sdk/linux_glibc/x86_64/lib/libdexfile.so
+++ b/current/sdk/linux_glibc/x86_64/lib/libdexfile.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a b/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
index ece5a31..a817439 100644
--- a/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
+++ b/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a b/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a
index 1392d10..d55ed71 100644
--- a/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a
+++ b/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so b/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so
index 52227e8..0fc5e3a 100755
--- a/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so
+++ b/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so b/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
index 9e85306..524cf5b 100755
--- a/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
+++ b/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a b/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a
index 635c369..33b0ead 100644
--- a/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a
+++ b/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libsigchain.so b/current/sdk/linux_glibc/x86_64/lib/libsigchain.so
index a99c1e1..9f6195c 100755
--- a/current/sdk/linux_glibc/x86_64/lib/libsigchain.so
+++ b/current/sdk/linux_glibc/x86_64/lib/libsigchain.so
Binary files differ
diff --git a/current/sdk/sdk_library/module-lib/art-stubs.jar b/current/sdk/sdk_library/module-lib/art-stubs.jar
index a7f78a6..0b82ebf 100644
--- a/current/sdk/sdk_library/module-lib/art-stubs.jar
+++ b/current/sdk/sdk_library/module-lib/art-stubs.jar
Binary files differ
diff --git a/current/sdk/sdk_library/module-lib/art.srcjar b/current/sdk/sdk_library/module-lib/art.srcjar
index 1e8abbf..0945f56 100644
--- a/current/sdk/sdk_library/module-lib/art.srcjar
+++ b/current/sdk/sdk_library/module-lib/art.srcjar
Binary files differ
diff --git a/current/sdk/sdk_library/module-lib/art.txt b/current/sdk/sdk_library/module-lib/art.txt
index ffb05b3..c9b68d5 100644
--- a/current/sdk/sdk_library/module-lib/art.txt
+++ b/current/sdk/sdk_library/module-lib/art.txt
@@ -451,7 +451,48 @@
   public class DirectByteBuffer extends java.nio.MappedByteBuffer {
     ctor public DirectByteBuffer(int, long, java.io.FileDescriptor, Runnable, boolean);
     method public final long address();
+    method public final java.nio.CharBuffer asCharBuffer();
+    method public final java.nio.DoubleBuffer asDoubleBuffer();
+    method public final java.nio.FloatBuffer asFloatBuffer();
+    method public final java.nio.IntBuffer asIntBuffer();
+    method public final java.nio.LongBuffer asLongBuffer();
+    method public final java.nio.ByteBuffer asReadOnlyBuffer();
+    method public final java.nio.ShortBuffer asShortBuffer();
+    method public final java.nio.ByteBuffer compact();
+    method public final java.nio.MappedByteBuffer duplicate();
+    method public final byte get();
+    method public final byte get(int);
+    method public final char getChar();
+    method public final char getChar(int);
+    method public final double getDouble();
+    method public final double getDouble(int);
+    method public final float getFloat();
+    method public final float getFloat(int);
+    method public int getInt();
+    method public int getInt(int);
+    method public final long getLong();
+    method public final long getLong(int);
+    method public final short getShort();
+    method public final short getShort(int);
+    method public final boolean isDirect();
+    method public final boolean isReadOnly();
+    method public final java.nio.ByteBuffer put(byte);
+    method public final java.nio.ByteBuffer put(int, byte);
+    method public final java.nio.ByteBuffer putChar(char);
+    method public final java.nio.ByteBuffer putChar(int, char);
+    method public final java.nio.ByteBuffer putDouble(double);
+    method public final java.nio.ByteBuffer putDouble(int, double);
+    method public final java.nio.ByteBuffer putFloat(float);
+    method public final java.nio.ByteBuffer putFloat(int, float);
+    method public final java.nio.ByteBuffer putInt(int);
+    method public final java.nio.ByteBuffer putInt(int, int);
+    method public final java.nio.ByteBuffer putLong(long);
+    method public final java.nio.ByteBuffer putLong(int, long);
+    method public final java.nio.ByteBuffer putShort(short);
+    method public final java.nio.ByteBuffer putShort(int, short);
     method public final void setAccessible(boolean);
+    method public final java.nio.MappedByteBuffer slice();
+    method public final java.nio.MappedByteBuffer slice(int, int);
   }
 
   public final class NIOAccess {
@@ -509,6 +550,10 @@
     method public javax.crypto.CipherSpi getCurrentSpi();
   }
 
+  public class KeyAgreement {
+    method public javax.crypto.KeyAgreementSpi getCurrentSpi();
+  }
+
   public class Mac implements java.lang.Cloneable {
     method public javax.crypto.MacSpi getCurrentSpi();
   }
diff --git a/current/sdk/sdk_library/public/art-stubs.jar b/current/sdk/sdk_library/public/art-stubs.jar
index e47c65e..51356fd 100644
--- a/current/sdk/sdk_library/public/art-stubs.jar
+++ b/current/sdk/sdk_library/public/art-stubs.jar
Binary files differ
diff --git a/current/sdk/sdk_library/public/art.srcjar b/current/sdk/sdk_library/public/art.srcjar
index 18fde14..e1dd7e3 100644
--- a/current/sdk/sdk_library/public/art.srcjar
+++ b/current/sdk/sdk_library/public/art.srcjar
Binary files differ
diff --git a/current/sdk/sdk_library/public/art.txt b/current/sdk/sdk_library/public/art.txt
index a61a723..f1bbdf2 100644
--- a/current/sdk/sdk_library/public/art.txt
+++ b/current/sdk/sdk_library/public/art.txt
@@ -350,6 +350,7 @@
     field public static final int IPV6_MULTICAST_HOPS;
     field public static final int IPV6_MULTICAST_IF;
     field public static final int IPV6_MULTICAST_LOOP;
+    field public static final int IPV6_PKTINFO;
     field public static final int IPV6_RECVDSTOPTS;
     field public static final int IPV6_RECVHOPLIMIT;
     field public static final int IPV6_RECVHOPOPTS;
@@ -409,6 +410,7 @@
     field public static final int O_SYNC;
     field public static final int O_TRUNC;
     field public static final int O_WRONLY;
+    field public static final int PACKET_IGNORE_OUTGOING;
     field public static final int POLLERR;
     field public static final int POLLHUP;
     field public static final int POLLIN;
@@ -482,6 +484,7 @@
     field public static final int SOCK_RAW;
     field public static final int SOCK_SEQPACKET;
     field public static final int SOCK_STREAM;
+    field public static final int SOL_PACKET;
     field public static final int SOL_SOCKET;
     field public static final int SOL_UDP;
     field public static final int SO_BINDTODEVICE;
@@ -2395,6 +2398,7 @@
     method @NonNull public default java.util.stream.IntStream chars();
     method @NonNull public default java.util.stream.IntStream codePoints();
     method public static int compare(@NonNull CharSequence, @NonNull CharSequence);
+    method public default boolean isEmpty();
     method public int length();
     method @NonNull public CharSequence subSequence(int, int);
     method @NonNull public String toString();
@@ -2412,6 +2416,7 @@
     method public static int codePointBefore(char[], int, int);
     method public static int codePointCount(@NonNull CharSequence, int, int);
     method public static int codePointCount(char[], int, int);
+    method public static int codePointOf(@NonNull String);
     method public static int compare(char, char);
     method public int compareTo(@NonNull Character);
     method public static int digit(char, int);
@@ -2480,6 +2485,7 @@
     method public static char toLowerCase(char);
     method public static int toLowerCase(int);
     method @NonNull public static String toString(char);
+    method @NonNull public static String toString(int);
     method public static char toTitleCase(char);
     method public static int toTitleCase(int);
     method public static char toUpperCase(char);
@@ -2880,7 +2886,7 @@
   }
 
   public enum Character.UnicodeScript {
-    method @NonNull public static java.lang.Character.UnicodeScript forName(@NonNull String);
+    method @NonNull public static final java.lang.Character.UnicodeScript forName(@NonNull String);
     method @NonNull public static java.lang.Character.UnicodeScript of(int);
     enum_constant public static final java.lang.Character.UnicodeScript ADLAM;
     enum_constant public static final java.lang.Character.UnicodeScript AHOM;
@@ -3144,7 +3150,7 @@
     method protected java.net.URL findResource(String);
     method protected java.util.Enumeration<java.net.URL> findResources(String) throws java.io.IOException;
     method protected final Class<?> findSystemClass(String) throws java.lang.ClassNotFoundException;
-    method protected Package getPackage(String);
+    method @Deprecated protected Package getPackage(String);
     method protected Package[] getPackages();
     method public final ClassLoader getParent();
     method public java.net.URL getResource(String);
@@ -4074,7 +4080,6 @@
     method public int indexOf(@NonNull String, int);
     method @NonNull public String intern();
     method public boolean isBlank();
-    method public boolean isEmpty();
     method @NonNull public static String join(@NonNull CharSequence, @Nullable java.lang.CharSequence...);
     method @NonNull public static String join(@NonNull CharSequence, @NonNull Iterable<? extends java.lang.CharSequence>);
     method public int lastIndexOf(int);
@@ -4106,6 +4111,7 @@
     method public char[] toCharArray();
     method @NonNull public String toLowerCase(@NonNull java.util.Locale);
     method @NonNull public String toLowerCase();
+    method @NonNull public String toString();
     method @NonNull public String toUpperCase(@NonNull java.util.Locale);
     method @NonNull public String toUpperCase();
     method public <R> R transform(@NonNull java.util.function.Function<? super java.lang.String,? extends R>);
@@ -4177,6 +4183,7 @@
     method @NonNull public CharSequence subSequence(int, int);
     method @NonNull public String substring(int);
     method @NonNull public String substring(int, int);
+    method @NonNull public String toString();
     method public void trimToSize();
   }
 
@@ -4234,6 +4241,7 @@
     method @NonNull public CharSequence subSequence(int, int);
     method @NonNull public String substring(int);
     method @NonNull public String substring(int, int);
+    method @NonNull public String toString();
     method public void trimToSize();
   }
 
@@ -4561,8 +4569,8 @@
     method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
     method public java.lang.invoke.MethodHandle asVarargsCollector(Class<?>);
     method public java.lang.invoke.MethodHandle bindTo(Object);
-    method public final Object invoke(java.lang.Object...) throws java.lang.Throwable;
-    method public final Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
+    method public final native Object invoke(java.lang.Object...) throws java.lang.Throwable;
+    method public final native Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
     method public Object invokeWithArguments(java.lang.Object...) throws java.lang.Throwable;
     method public Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
     method public boolean isVarargsCollector();
@@ -4735,45 +4743,45 @@
   public abstract class VarHandle {
     method public final java.lang.invoke.MethodType accessModeType(java.lang.invoke.VarHandle.AccessMode);
     method public static void acquireFence();
-    method public final Object compareAndExchange(java.lang.Object...);
-    method public final Object compareAndExchangeAcquire(java.lang.Object...);
-    method public final Object compareAndExchangeRelease(java.lang.Object...);
-    method public final boolean compareAndSet(java.lang.Object...);
+    method public final native Object compareAndExchange(java.lang.Object...);
+    method public final native Object compareAndExchangeAcquire(java.lang.Object...);
+    method public final native Object compareAndExchangeRelease(java.lang.Object...);
+    method public final native boolean compareAndSet(java.lang.Object...);
     method public final java.util.List<java.lang.Class<?>> coordinateTypes();
     method public static void fullFence();
-    method public final Object get(java.lang.Object...);
-    method public final Object getAcquire(java.lang.Object...);
-    method public final Object getAndAdd(java.lang.Object...);
-    method public final Object getAndAddAcquire(java.lang.Object...);
-    method public final Object getAndAddRelease(java.lang.Object...);
-    method public final Object getAndBitwiseAnd(java.lang.Object...);
-    method public final Object getAndBitwiseAndAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseAndRelease(java.lang.Object...);
-    method public final Object getAndBitwiseOr(java.lang.Object...);
-    method public final Object getAndBitwiseOrAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseOrRelease(java.lang.Object...);
-    method public final Object getAndBitwiseXor(java.lang.Object...);
-    method public final Object getAndBitwiseXorAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseXorRelease(java.lang.Object...);
-    method public final Object getAndSet(java.lang.Object...);
-    method public final Object getAndSetAcquire(java.lang.Object...);
-    method public final Object getAndSetRelease(java.lang.Object...);
-    method public final Object getOpaque(java.lang.Object...);
-    method public final Object getVolatile(java.lang.Object...);
+    method public final native Object get(java.lang.Object...);
+    method public final native Object getAcquire(java.lang.Object...);
+    method public final native Object getAndAdd(java.lang.Object...);
+    method public final native Object getAndAddAcquire(java.lang.Object...);
+    method public final native Object getAndAddRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseAnd(java.lang.Object...);
+    method public final native Object getAndBitwiseAndAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseAndRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseOr(java.lang.Object...);
+    method public final native Object getAndBitwiseOrAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseOrRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseXor(java.lang.Object...);
+    method public final native Object getAndBitwiseXorAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseXorRelease(java.lang.Object...);
+    method public final native Object getAndSet(java.lang.Object...);
+    method public final native Object getAndSetAcquire(java.lang.Object...);
+    method public final native Object getAndSetRelease(java.lang.Object...);
+    method public final native Object getOpaque(java.lang.Object...);
+    method public final native Object getVolatile(java.lang.Object...);
     method public final boolean isAccessModeSupported(java.lang.invoke.VarHandle.AccessMode);
     method public static void loadLoadFence();
     method public static void releaseFence();
-    method public final void set(java.lang.Object...);
-    method public final void setOpaque(java.lang.Object...);
-    method public final void setRelease(java.lang.Object...);
-    method public final void setVolatile(java.lang.Object...);
+    method public final native void set(java.lang.Object...);
+    method public final native void setOpaque(java.lang.Object...);
+    method public final native void setRelease(java.lang.Object...);
+    method public final native void setVolatile(java.lang.Object...);
     method public static void storeStoreFence();
     method public final java.lang.invoke.MethodHandle toMethodHandle(java.lang.invoke.VarHandle.AccessMode);
     method public final Class<?> varType();
-    method public final boolean weakCompareAndSet(java.lang.Object...);
-    method public final boolean weakCompareAndSetAcquire(java.lang.Object...);
-    method public final boolean weakCompareAndSetPlain(java.lang.Object...);
-    method public final boolean weakCompareAndSetRelease(java.lang.Object...);
+    method public final native boolean weakCompareAndSet(java.lang.Object...);
+    method public final native boolean weakCompareAndSetAcquire(java.lang.Object...);
+    method public final native boolean weakCompareAndSetPlain(java.lang.Object...);
+    method public final native boolean weakCompareAndSetRelease(java.lang.Object...);
   }
 
   public enum VarHandle.AccessMode {
@@ -6312,6 +6320,7 @@
     method public abstract java.nio.CharBuffer slice();
     method public abstract java.nio.CharBuffer slice(int, int);
     method public abstract java.nio.CharBuffer subSequence(int, int);
+    method public String toString();
     method public static java.nio.CharBuffer wrap(char[], int, int);
     method public static java.nio.CharBuffer wrap(char[]);
     method public static java.nio.CharBuffer wrap(CharSequence, int, int);
@@ -6427,9 +6436,16 @@
   }
 
   public abstract class MappedByteBuffer extends java.nio.ByteBuffer {
+    method public final java.nio.Buffer clear();
+    method public final java.nio.Buffer flip();
     method public final java.nio.MappedByteBuffer force();
     method public final boolean isLoaded();
+    method public final java.nio.Buffer limit(int);
     method public final java.nio.MappedByteBuffer load();
+    method public final java.nio.Buffer mark();
+    method public final java.nio.Buffer position(int);
+    method public final java.nio.Buffer reset();
+    method public final java.nio.Buffer rewind();
     method public abstract java.nio.MappedByteBuffer slice(int, int);
   }
 
@@ -7590,6 +7606,7 @@
   }
 
   public interface PosixFileAttributeView extends java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
+    method public String name();
     method public java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
     method public void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
     method public void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
@@ -7884,10 +7901,12 @@
     method @Deprecated public final String getName();
     method @Deprecated public java.security.PublicKey getPublicKey();
     method @Deprecated public final java.security.IdentityScope getScope();
+    method @Deprecated public int hashCode();
     method @Deprecated protected boolean identityEquals(java.security.Identity);
     method @Deprecated public void removeCertificate(java.security.Certificate) throws java.security.KeyManagementException;
     method @Deprecated public void setInfo(String);
     method @Deprecated public void setPublicKey(java.security.PublicKey) throws java.security.KeyManagementException;
+    method @Deprecated public String toString();
     method @Deprecated public String toString(boolean);
   }
 
@@ -8271,32 +8290,13 @@
 
   public abstract class Provider extends java.util.Properties {
     ctor protected Provider(String, double, String);
-    method public Object compute(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public Object computeIfAbsent(Object, java.util.function.Function<? super java.lang.Object,?>);
-    method public Object computeIfPresent(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public java.util.Enumeration<java.lang.Object> elements();
-    method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
-    method public void forEach(java.util.function.BiConsumer<? super java.lang.Object,? super java.lang.Object>);
-    method public Object get(Object);
     method public String getInfo();
     method public String getName();
-    method public Object getOrDefault(Object, Object);
     method public java.security.Provider.Service getService(String, String);
     method public java.util.Set<java.security.Provider.Service> getServices();
     method public double getVersion();
-    method public java.util.Set<java.lang.Object> keySet();
-    method public java.util.Enumeration<java.lang.Object> keys();
-    method public Object merge(Object, Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public Object put(Object, Object);
-    method public void putAll(java.util.Map<?,?>);
-    method public Object putIfAbsent(Object, Object);
     method protected void putService(java.security.Provider.Service);
-    method public Object remove(Object);
     method protected void removeService(java.security.Provider.Service);
-    method public boolean replace(Object, Object, Object);
-    method public Object replace(Object, Object);
-    method public void replaceAll(java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public java.util.Collection<java.lang.Object> values();
   }
 
   public static class Provider.Service {
@@ -9098,12 +9098,12 @@
 
   public interface DSAPrivateKey extends java.security.interfaces.DSAKey java.security.PrivateKey {
     method public java.math.BigInteger getX();
-    field public static final long serialVersionUID = 7776497482533790279L; // 0x6bebab423b256247L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 7776497482533790279L; // 0x6bebab423b256247L
   }
 
   public interface DSAPublicKey extends java.security.interfaces.DSAKey java.security.PublicKey {
     method public java.math.BigInteger getY();
-    field public static final long serialVersionUID = 1234526332779022332L; // 0x1121eb28ab28c7fcL
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 1234526332779022332L; // 0x1121eb28ab28c7fcL
   }
 
   public interface ECKey {
@@ -9112,12 +9112,12 @@
 
   public interface ECPrivateKey extends java.security.PrivateKey java.security.interfaces.ECKey {
     method public java.math.BigInteger getS();
-    field public static final long serialVersionUID = -7896394956925609184L; // 0x926a5e9fa2435b20L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -7896394956925609184L; // 0x926a5e9fa2435b20L
   }
 
   public interface ECPublicKey extends java.security.PublicKey java.security.interfaces.ECKey {
     method public java.security.spec.ECPoint getW();
-    field public static final long serialVersionUID = -3314988629879632826L; // 0xd1fecb679990cc46L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -3314988629879632826L; // 0xd1fecb679990cc46L
   }
 
   public interface EdECKey {
@@ -9134,6 +9134,7 @@
 
   public interface RSAKey {
     method public java.math.BigInteger getModulus();
+    method public default java.security.spec.AlgorithmParameterSpec getParams();
   }
 
   public interface RSAMultiPrimePrivateCrtKey extends java.security.interfaces.RSAPrivateKey {
@@ -9144,7 +9145,7 @@
     method public java.math.BigInteger getPrimeP();
     method public java.math.BigInteger getPrimeQ();
     method public java.math.BigInteger getPublicExponent();
-    field public static final long serialVersionUID = 618058533534628008L; // 0x893c8f62dbaf8a8L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 618058533534628008L; // 0x893c8f62dbaf8a8L
   }
 
   public interface RSAPrivateCrtKey extends java.security.interfaces.RSAPrivateKey {
@@ -9154,17 +9155,17 @@
     method public java.math.BigInteger getPrimeP();
     method public java.math.BigInteger getPrimeQ();
     method public java.math.BigInteger getPublicExponent();
-    field public static final long serialVersionUID = -5682214253527700368L; // 0xb124b83df8d1ec70L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -5682214253527700368L; // 0xb124b83df8d1ec70L
   }
 
   public interface RSAPrivateKey extends java.security.PrivateKey java.security.interfaces.RSAKey {
     method public java.math.BigInteger getPrivateExponent();
-    field public static final long serialVersionUID = 5187144804936595022L; // 0x47fc70b7a8c2364eL
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 5187144804936595022L; // 0x47fc70b7a8c2364eL
   }
 
   public interface RSAPublicKey extends java.security.PublicKey java.security.interfaces.RSAKey {
     method public java.math.BigInteger getPublicExponent();
-    field public static final long serialVersionUID = -8727434096241101194L; // 0x86e1ecedeceab676L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -8727434096241101194L; // 0x86e1ecedeceab676L
   }
 
   public interface XECKey {
@@ -10797,6 +10798,7 @@
     method public abstract int compare(String, String);
     method public int compare(Object, Object);
     method public boolean equals(String, String);
+    method public boolean equals(Object);
     method public static java.util.Locale[] getAvailableLocales();
     method public abstract java.text.CollationKey getCollationKey(String);
     method public int getDecomposition();
@@ -11131,6 +11133,7 @@
     method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
     method public java.text.CollationKey getCollationKey(String);
     method public String getRules();
+    method public int hashCode();
   }
 
   public class SimpleDateFormat extends java.text.DateFormat {
@@ -11329,6 +11332,7 @@
     method public java.time.OffsetDateTime atTime(java.time.OffsetTime);
     method public java.util.stream.Stream<java.time.LocalDate> datesUntil(java.time.LocalDate);
     method public java.util.stream.Stream<java.time.LocalDate> datesUntil(java.time.LocalDate, java.time.Period);
+    method public boolean equals(Object);
     method public static java.time.LocalDate from(java.time.temporal.TemporalAccessor);
     method public java.time.chrono.IsoChronology getChronology();
     method public int getDayOfMonth();
@@ -11338,6 +11342,9 @@
     method public java.time.Month getMonth();
     method public int getMonthValue();
     method public int getYear();
+    method public int hashCode();
+    method public boolean isSupported(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public int lengthOfMonth();
     method public java.time.LocalDate minus(java.time.temporal.TemporalAmount);
     method public java.time.LocalDate minus(long, java.time.temporal.TemporalUnit);
@@ -11362,6 +11369,7 @@
     method public java.time.LocalDate plusWeeks(long);
     method public java.time.LocalDate plusYears(long);
     method public long toEpochSecond(java.time.LocalTime, java.time.ZoneOffset);
+    method public String toString();
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.Period until(java.time.chrono.ChronoLocalDate);
     method public java.time.LocalDate with(java.time.temporal.TemporalAdjuster);
@@ -11378,6 +11386,7 @@
   public final class LocalDateTime implements java.time.chrono.ChronoLocalDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.OffsetDateTime atOffset(java.time.ZoneOffset);
     method public java.time.ZonedDateTime atZone(java.time.ZoneId);
+    method public boolean equals(Object);
     method public static java.time.LocalDateTime from(java.time.temporal.TemporalAccessor);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
@@ -11390,7 +11399,9 @@
     method public int getNano();
     method public int getSecond();
     method public int getYear();
+    method public int hashCode();
     method public boolean isSupported(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime minus(java.time.temporal.TemporalAmount);
     method public java.time.LocalDateTime minus(long, java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime minusDays(long);
@@ -11427,6 +11438,7 @@
     method public java.time.LocalDateTime plusYears(long);
     method public java.time.LocalDate toLocalDate();
     method public java.time.LocalTime toLocalTime();
+    method public String toString();
     method public java.time.LocalDateTime truncatedTo(java.time.temporal.TemporalUnit);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime with(java.time.temporal.TemporalAdjuster);
@@ -11689,6 +11701,7 @@
   public final class Period implements java.time.chrono.ChronoPeriod java.io.Serializable {
     method public java.time.temporal.Temporal addTo(java.time.temporal.Temporal);
     method public static java.time.Period between(java.time.LocalDate, java.time.LocalDate);
+    method public boolean equals(Object);
     method public static java.time.Period from(java.time.temporal.TemporalAmount);
     method public long get(java.time.temporal.TemporalUnit);
     method public java.time.chrono.IsoChronology getChronology();
@@ -11696,6 +11709,7 @@
     method public int getMonths();
     method public java.util.List<java.time.temporal.TemporalUnit> getUnits();
     method public int getYears();
+    method public int hashCode();
     method public java.time.Period minus(java.time.temporal.TemporalAmount);
     method public java.time.Period minusDays(long);
     method public java.time.Period minusMonths(long);
@@ -11714,6 +11728,7 @@
     method public java.time.Period plusMonths(long);
     method public java.time.Period plusYears(long);
     method public java.time.temporal.Temporal subtractFrom(java.time.temporal.Temporal);
+    method public String toString();
     method public long toTotalMonths();
     method public java.time.Period withDays(int);
     method public java.time.Period withMonths(int);
@@ -11834,11 +11849,13 @@
   }
 
   public final class ZonedDateTime implements java.time.chrono.ChronoZonedDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal {
+    method public boolean equals(Object);
     method public static java.time.ZonedDateTime from(java.time.temporal.TemporalAccessor);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
     method public int getDayOfYear();
     method public int getHour();
+    method public long getLong(java.time.temporal.TemporalField);
     method public int getMinute();
     method public java.time.Month getMonth();
     method public int getMonthValue();
@@ -11847,7 +11864,9 @@
     method public int getSecond();
     method public int getYear();
     method public java.time.ZoneId getZone();
+    method public int hashCode();
     method public boolean isSupported(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public java.time.ZonedDateTime minus(java.time.temporal.TemporalAmount);
     method public java.time.ZonedDateTime minus(long, java.time.temporal.TemporalUnit);
     method public java.time.ZonedDateTime minusDays(long);
@@ -11883,6 +11902,7 @@
     method public java.time.LocalDate toLocalDate();
     method public java.time.LocalDateTime toLocalDateTime();
     method public java.time.OffsetDateTime toOffsetDateTime();
+    method public String toString();
     method public java.time.ZonedDateTime truncatedTo(java.time.temporal.TemporalUnit);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.ZonedDateTime with(java.time.temporal.TemporalAdjuster);
@@ -11909,7 +11929,10 @@
   public abstract class AbstractChronology implements java.time.chrono.Chronology {
     ctor protected AbstractChronology();
     method public int compareTo(java.time.chrono.Chronology);
+    method public boolean equals(Object);
+    method public int hashCode();
     method public java.time.chrono.ChronoLocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
+    method public String toString();
   }
 
   public interface ChronoLocalDate extends java.time.temporal.Temporal java.lang.Comparable<java.time.chrono.ChronoLocalDate> java.time.temporal.TemporalAdjuster {
@@ -12099,6 +12122,7 @@
     method public static java.time.chrono.HijrahDate of(int, int, int);
     method public java.time.chrono.HijrahDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.HijrahDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.HijrahDate with(java.time.temporal.TemporalField, long);
@@ -12184,6 +12208,7 @@
     method public static java.time.chrono.JapaneseDate of(int, int, int);
     method public java.time.chrono.JapaneseDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.JapaneseDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.JapaneseDate with(java.time.temporal.TemporalField, long);
@@ -12241,6 +12266,7 @@
     method public static java.time.chrono.MinguoDate of(int, int, int);
     method public java.time.chrono.MinguoDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.MinguoDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.MinguoDate with(java.time.temporal.TemporalField, long);
@@ -12293,6 +12319,7 @@
     method public static java.time.chrono.ThaiBuddhistDate of(int, int, int);
     method public java.time.chrono.ThaiBuddhistDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.ThaiBuddhistDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ThaiBuddhistDate with(java.time.temporal.TemporalField, long);
@@ -12756,6 +12783,8 @@
     ctor protected AbstractList();
     method public void add(int, E);
     method public boolean addAll(int, @NonNull java.util.Collection<? extends E>);
+    method public boolean equals(@Nullable Object);
+    method public int hashCode();
     method public int indexOf(@Nullable Object);
     method @NonNull public java.util.Iterator<E> iterator();
     method public int lastIndexOf(@Nullable Object);
@@ -12773,7 +12802,9 @@
     method public void clear();
     method public boolean containsKey(@Nullable Object);
     method public boolean containsValue(@Nullable Object);
+    method public boolean equals(@Nullable Object);
     method @Nullable public V get(@Nullable Object);
+    method public int hashCode();
     method public boolean isEmpty();
     method @NonNull public java.util.Set<K> keySet();
     method @Nullable public V put(K, V);
@@ -12786,16 +12817,20 @@
   public static class AbstractMap.SimpleEntry<K, V> implements java.util.Map.Entry<K,V> java.io.Serializable {
     ctor public AbstractMap.SimpleEntry(K, V);
     ctor public AbstractMap.SimpleEntry(@NonNull java.util.Map.Entry<? extends K,? extends V>);
+    method public boolean equals(@Nullable Object);
     method public K getKey();
     method public V getValue();
+    method public int hashCode();
     method public V setValue(V);
   }
 
   public static class AbstractMap.SimpleImmutableEntry<K, V> implements java.util.Map.Entry<K,V> java.io.Serializable {
     ctor public AbstractMap.SimpleImmutableEntry(K, V);
     ctor public AbstractMap.SimpleImmutableEntry(@NonNull java.util.Map.Entry<? extends K,? extends V>);
+    method public boolean equals(@Nullable Object);
     method public K getKey();
     method public V getValue();
+    method public int hashCode();
     method public V setValue(V);
   }
 
@@ -12812,6 +12847,8 @@
 
   public abstract class AbstractSet<E> extends java.util.AbstractCollection<E> implements java.util.Set<E> {
     ctor protected AbstractSet();
+    method public boolean equals(@Nullable Object);
+    method public int hashCode();
   }
 
   public class ArrayDeque<E> extends java.util.AbstractCollection<E> implements java.lang.Cloneable java.util.Deque<E> java.io.Serializable {
@@ -13498,6 +13535,7 @@
     ctor public EnumMap(java.util.Map<K,? extends V>);
     method public java.util.EnumMap<K,V> clone();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public V put(K, V);
   }
 
   public abstract class EnumSet<E extends java.lang.Enum<E>> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.io.Serializable {
@@ -13645,7 +13683,9 @@
     method public boolean containsValue(Object);
     method public java.util.Enumeration<V> elements();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public boolean equals(Object);
     method public V get(Object);
+    method public int hashCode();
     method public boolean isEmpty();
     method public java.util.Set<K> keySet();
     method public java.util.Enumeration<K> keys();
@@ -13792,6 +13832,7 @@
     method public E element();
     method public E getFirst();
     method public E getLast();
+    method @NonNull public java.util.ListIterator<E> listIterator(int);
     method public boolean offer(E);
     method public boolean offerFirst(E);
     method public boolean offerLast(E);
@@ -14034,6 +14075,7 @@
     method @NonNull public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByKey(@NonNull java.util.Comparator<? super K>);
     method @NonNull public static <K, V extends java.lang.Comparable<? super V>> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue();
     method @NonNull public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue(@NonNull java.util.Comparator<? super V>);
+    method @NonNull public static <K, V> java.util.Map.Entry<K,V> copyOf(@NonNull java.util.Map.Entry<? extends K,? extends V>);
     method public boolean equals(@Nullable Object);
     method public K getKey();
     method public V getValue();
@@ -14249,23 +14291,44 @@
 
   public class Properties extends java.util.Hashtable<java.lang.Object,java.lang.Object> {
     ctor public Properties();
+    ctor public Properties(int);
     ctor public Properties(java.util.Properties);
+    method public Object compute(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
+    method public Object computeIfAbsent(Object, java.util.function.Function<? super java.lang.Object,?>);
+    method public Object computeIfPresent(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
+    method public java.util.Enumeration<java.lang.Object> elements();
+    method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
+    method public void forEach(java.util.function.BiConsumer<? super java.lang.Object,? super java.lang.Object>);
+    method public Object get(Object);
+    method public Object getOrDefault(Object, Object);
     method public String getProperty(String);
     method public String getProperty(String, String);
+    method public java.util.Set<java.lang.Object> keySet();
+    method public java.util.Enumeration<java.lang.Object> keys();
     method public void list(java.io.PrintStream);
     method public void list(java.io.PrintWriter);
     method public void load(java.io.Reader) throws java.io.IOException;
     method public void load(java.io.InputStream) throws java.io.IOException;
     method public void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
+    method public Object merge(Object, Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
     method public java.util.Enumeration<?> propertyNames();
+    method public Object put(Object, Object);
+    method public void putAll(java.util.Map<?,?>);
+    method public Object putIfAbsent(Object, Object);
+    method public Object remove(Object);
+    method public boolean replace(Object, Object, Object);
+    method public Object replace(Object, Object);
+    method public void replaceAll(java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
     method @Deprecated public void save(java.io.OutputStream, String);
     method public Object setProperty(String, String);
     method public void store(java.io.Writer, String) throws java.io.IOException;
     method public void store(java.io.OutputStream, String) throws java.io.IOException;
     method public void storeToXML(java.io.OutputStream, String) throws java.io.IOException;
     method public void storeToXML(java.io.OutputStream, String, String) throws java.io.IOException;
+    method public void storeToXML(java.io.OutputStream, String, java.nio.charset.Charset) throws java.io.IOException;
     method public java.util.Set<java.lang.String> stringPropertyNames();
-    field protected java.util.Properties defaults;
+    method public java.util.Collection<java.lang.Object> values();
+    field protected volatile java.util.Properties defaults;
   }
 
   public final class PropertyPermission extends java.security.BasicPermission {
@@ -14445,6 +14508,12 @@
     method public static <S> java.util.ServiceLoader<S> load(Class<S>);
     method public static <S> java.util.ServiceLoader<S> loadInstalled(Class<S>);
     method public void reload();
+    method public java.util.stream.Stream<java.util.ServiceLoader.Provider<S>> stream();
+  }
+
+  public static interface ServiceLoader.Provider<S> extends java.util.function.Supplier<S> {
+    method public S get();
+    method public Class<? extends S> type();
   }
 
   public interface Set<E> extends java.util.Collection<E> {
@@ -14884,12 +14953,22 @@
   }
 
   public interface BlockingDeque<E> extends java.util.concurrent.BlockingQueue<E> java.util.Deque<E> {
+    method public boolean add(E);
+    method public boolean contains(Object);
+    method public E element();
+    method public java.util.Iterator<E> iterator();
+    method public boolean offer(E);
     method public boolean offerFirst(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public boolean offerLast(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public E peek();
+    method public E poll();
     method public E pollFirst(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public E pollLast(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public void putFirst(E) throws java.lang.InterruptedException;
     method public void putLast(E) throws java.lang.InterruptedException;
+    method public E remove();
+    method public boolean remove(Object);
+    method public int size();
     method public E takeFirst() throws java.lang.InterruptedException;
     method public E takeLast() throws java.lang.InterruptedException;
   }
@@ -15084,6 +15163,7 @@
     method public long mappingCount();
     method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet();
     method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet(int);
+    method @Nullable public V putIfAbsent(@NonNull K, @NonNull V);
     method @Nullable public <U> U reduce(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
     method @Nullable public java.util.Map.Entry<K,V> reduceEntries(long, @NonNull java.util.function.BiFunction<java.util.Map.Entry<K,V>,java.util.Map.Entry<K,V>,? extends java.util.Map.Entry<K,V>>);
     method @Nullable public <U> U reduceEntries(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
@@ -15103,6 +15183,9 @@
     method public double reduceValuesToDouble(long, @NonNull java.util.function.ToDoubleFunction<? super V>, double, @NonNull java.util.function.DoubleBinaryOperator);
     method public int reduceValuesToInt(long, @NonNull java.util.function.ToIntFunction<? super V>, int, @NonNull java.util.function.IntBinaryOperator);
     method public long reduceValuesToLong(long, @NonNull java.util.function.ToLongFunction<? super V>, long, @NonNull java.util.function.LongBinaryOperator);
+    method public boolean remove(@NonNull Object, @Nullable Object);
+    method public boolean replace(@NonNull K, @NonNull V, @NonNull V);
+    method @Nullable public V replace(@NonNull K, @NonNull V);
     method @Nullable public <U> U search(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>);
     method @Nullable public <U> U searchEntries(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>);
     method @Nullable public <U> U searchKeys(long, @NonNull java.util.function.Function<? super K,? extends U>);
@@ -15115,9 +15198,11 @@
     method public final void clear();
     method public boolean contains(@NonNull Object);
     method public final boolean containsAll(@NonNull java.util.Collection<?>);
+    method public boolean equals(@Nullable Object);
     method public void forEach(@NonNull java.util.function.Consumer<? super K>);
     method @NonNull public java.util.concurrent.ConcurrentHashMap<K,V> getMap();
     method @Nullable public V getMappedValue();
+    method public int hashCode();
     method public final boolean isEmpty();
     method @NonNull public java.util.Iterator<K> iterator();
     method public boolean remove(@NonNull Object);
@@ -15217,6 +15302,10 @@
     method public java.util.NavigableSet<K> navigableKeySet();
     method public java.util.Map.Entry<K,V> pollFirstEntry();
     method public java.util.Map.Entry<K,V> pollLastEntry();
+    method public V putIfAbsent(K, V);
+    method public boolean remove(Object, Object);
+    method public boolean replace(K, V, V);
+    method public V replace(K, V);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, boolean, K, boolean);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, K);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> tailMap(K, boolean);
@@ -15264,8 +15353,10 @@
     method @NonNull public Object clone();
     method public boolean contains(@Nullable Object);
     method public boolean containsAll(@NonNull java.util.Collection<?>);
+    method public boolean equals(@Nullable Object);
     method public void forEach(@NonNull java.util.function.Consumer<? super E>);
     method public E get(int);
+    method public int hashCode();
     method public int indexOf(@Nullable Object);
     method public int indexOf(@Nullable E, int);
     method public boolean isEmpty();
@@ -15341,6 +15432,7 @@
   public class DelayQueue<E extends java.util.concurrent.Delayed> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> {
     ctor public DelayQueue();
     ctor public DelayQueue(java.util.Collection<? extends E>);
+    method public boolean add(E);
     method public int drainTo(java.util.Collection<? super E>);
     method public int drainTo(java.util.Collection<? super E>, int);
     method public java.util.Iterator<E> iterator();
@@ -16762,9 +16854,11 @@
     method public boolean containsKey(Object);
     method public boolean containsValue(Object);
     method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
+    method public boolean equals(Object);
     method public Object get(Object);
     method public String getValue(String);
     method public String getValue(java.util.jar.Attributes.Name);
+    method public int hashCode();
     method public boolean isEmpty();
     method public java.util.Set<java.lang.Object> keySet();
     method public Object put(Object, Object);
@@ -17342,6 +17436,7 @@
     method protected abstract void removeSpi(String);
     method public void sync() throws java.util.prefs.BackingStoreException;
     method protected abstract void syncSpi() throws java.util.prefs.BackingStoreException;
+    method public String toString();
     field protected final Object lock;
     field protected boolean newNode;
   }
@@ -17578,6 +17673,7 @@
     method public static <T> java.util.stream.Collector<T,?,java.lang.Double> summingDouble(java.util.function.ToDoubleFunction<? super T>);
     method public static <T> java.util.stream.Collector<T,?,java.lang.Integer> summingInt(java.util.function.ToIntFunction<? super T>);
     method public static <T> java.util.stream.Collector<T,?,java.lang.Long> summingLong(java.util.function.ToLongFunction<? super T>);
+    method public static <T, R1, R2, R> java.util.stream.Collector<T,?,R> teeing(java.util.stream.Collector<? super T,?,R1>, java.util.stream.Collector<? super T,?,R2>, java.util.function.BiFunction<? super R1,? super R2,R>);
     method public static <T, C extends java.util.Collection<T>> java.util.stream.Collector<T,?,C> toCollection(java.util.function.Supplier<C>);
     method public static <T, K, U> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,U>> toConcurrentMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>);
     method public static <T, K, U> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,U>> toConcurrentMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>, java.util.function.BinaryOperator<U>);
@@ -17603,6 +17699,7 @@
     method public static java.util.stream.DoubleStream concat(java.util.stream.DoubleStream, java.util.stream.DoubleStream);
     method public long count();
     method public java.util.stream.DoubleStream distinct();
+    method public default java.util.stream.DoubleStream dropWhile(java.util.function.DoublePredicate);
     method public static java.util.stream.DoubleStream empty();
     method public java.util.stream.DoubleStream filter(java.util.function.DoublePredicate);
     method public java.util.OptionalDouble findAny();
@@ -17612,9 +17709,11 @@
     method public void forEachOrdered(java.util.function.DoubleConsumer);
     method public static java.util.stream.DoubleStream generate(java.util.function.DoubleSupplier);
     method public static java.util.stream.DoubleStream iterate(double, java.util.function.DoubleUnaryOperator);
+    method public static java.util.stream.DoubleStream iterate(double, java.util.function.DoublePredicate, java.util.function.DoubleUnaryOperator);
     method public java.util.PrimitiveIterator.OfDouble iterator();
     method public java.util.stream.DoubleStream limit(long);
     method public java.util.stream.DoubleStream map(java.util.function.DoubleUnaryOperator);
+    method public default java.util.stream.DoubleStream mapMulti(java.util.stream.DoubleStream.DoubleMapMultiConsumer);
     method public java.util.stream.IntStream mapToInt(java.util.function.DoubleToIntFunction);
     method public java.util.stream.LongStream mapToLong(java.util.function.DoubleToLongFunction);
     method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.DoubleFunction<? extends U>);
@@ -17633,6 +17732,7 @@
     method public java.util.Spliterator.OfDouble spliterator();
     method public double sum();
     method public java.util.DoubleSummaryStatistics summaryStatistics();
+    method public default java.util.stream.DoubleStream takeWhile(java.util.function.DoublePredicate);
     method public double[] toArray();
   }
 
@@ -17641,6 +17741,10 @@
     method public java.util.stream.DoubleStream build();
   }
 
+  @java.lang.FunctionalInterface public static interface DoubleStream.DoubleMapMultiConsumer {
+    method public void accept(double, java.util.function.DoubleConsumer);
+  }
+
   public interface IntStream extends java.util.stream.BaseStream<java.lang.Integer,java.util.stream.IntStream> {
     method public boolean allMatch(java.util.function.IntPredicate);
     method public boolean anyMatch(java.util.function.IntPredicate);
@@ -17653,6 +17757,7 @@
     method public static java.util.stream.IntStream concat(java.util.stream.IntStream, java.util.stream.IntStream);
     method public long count();
     method public java.util.stream.IntStream distinct();
+    method public default java.util.stream.IntStream dropWhile(java.util.function.IntPredicate);
     method public static java.util.stream.IntStream empty();
     method public java.util.stream.IntStream filter(java.util.function.IntPredicate);
     method public java.util.OptionalInt findAny();
@@ -17662,9 +17767,11 @@
     method public void forEachOrdered(java.util.function.IntConsumer);
     method public static java.util.stream.IntStream generate(java.util.function.IntSupplier);
     method public static java.util.stream.IntStream iterate(int, java.util.function.IntUnaryOperator);
+    method public static java.util.stream.IntStream iterate(int, java.util.function.IntPredicate, java.util.function.IntUnaryOperator);
     method public java.util.PrimitiveIterator.OfInt iterator();
     method public java.util.stream.IntStream limit(long);
     method public java.util.stream.IntStream map(java.util.function.IntUnaryOperator);
+    method public default java.util.stream.IntStream mapMulti(java.util.stream.IntStream.IntMapMultiConsumer);
     method public java.util.stream.DoubleStream mapToDouble(java.util.function.IntToDoubleFunction);
     method public java.util.stream.LongStream mapToLong(java.util.function.IntToLongFunction);
     method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.IntFunction<? extends U>);
@@ -17685,6 +17792,7 @@
     method public java.util.Spliterator.OfInt spliterator();
     method public int sum();
     method public java.util.IntSummaryStatistics summaryStatistics();
+    method public default java.util.stream.IntStream takeWhile(java.util.function.IntPredicate);
     method public int[] toArray();
   }
 
@@ -17693,6 +17801,10 @@
     method public java.util.stream.IntStream build();
   }
 
+  @java.lang.FunctionalInterface public static interface IntStream.IntMapMultiConsumer {
+    method public void accept(int, java.util.function.IntConsumer);
+  }
+
   public interface LongStream extends java.util.stream.BaseStream<java.lang.Long,java.util.stream.LongStream> {
     method public boolean allMatch(java.util.function.LongPredicate);
     method public boolean anyMatch(java.util.function.LongPredicate);
@@ -17704,6 +17816,7 @@
     method public static java.util.stream.LongStream concat(java.util.stream.LongStream, java.util.stream.LongStream);
     method public long count();
     method public java.util.stream.LongStream distinct();
+    method public default java.util.stream.LongStream dropWhile(java.util.function.LongPredicate);
     method public static java.util.stream.LongStream empty();
     method public java.util.stream.LongStream filter(java.util.function.LongPredicate);
     method public java.util.OptionalLong findAny();
@@ -17713,9 +17826,11 @@
     method public void forEachOrdered(java.util.function.LongConsumer);
     method public static java.util.stream.LongStream generate(java.util.function.LongSupplier);
     method public static java.util.stream.LongStream iterate(long, java.util.function.LongUnaryOperator);
+    method public static java.util.stream.LongStream iterate(long, java.util.function.LongPredicate, java.util.function.LongUnaryOperator);
     method public java.util.PrimitiveIterator.OfLong iterator();
     method public java.util.stream.LongStream limit(long);
     method public java.util.stream.LongStream map(java.util.function.LongUnaryOperator);
+    method public default java.util.stream.LongStream mapMulti(java.util.stream.LongStream.LongMapMultiConsumer);
     method public java.util.stream.DoubleStream mapToDouble(java.util.function.LongToDoubleFunction);
     method public java.util.stream.IntStream mapToInt(java.util.function.LongToIntFunction);
     method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.LongFunction<? extends U>);
@@ -17736,6 +17851,7 @@
     method public java.util.Spliterator.OfLong spliterator();
     method public long sum();
     method public java.util.LongSummaryStatistics summaryStatistics();
+    method public default java.util.stream.LongStream takeWhile(java.util.function.LongPredicate);
     method public long[] toArray();
   }
 
@@ -17744,6 +17860,10 @@
     method public java.util.stream.LongStream build();
   }
 
+  @java.lang.FunctionalInterface public static interface LongStream.LongMapMultiConsumer {
+    method public void accept(long, java.util.function.LongConsumer);
+  }
+
   public interface Stream<T> extends java.util.stream.BaseStream<T,java.util.stream.Stream<T>> {
     method public boolean allMatch(java.util.function.Predicate<? super T>);
     method public boolean anyMatch(java.util.function.Predicate<? super T>);
@@ -17995,6 +18115,7 @@
     method public String getName();
     method public long getSize();
     method public long getTime();
+    method public java.time.LocalDateTime getTimeLocal();
     method public boolean isDirectory();
     method public void setComment(String);
     method public void setCompressedSize(long);
@@ -18006,6 +18127,7 @@
     method public void setMethod(int);
     method public void setSize(long);
     method public void setTime(long);
+    method public void setTimeLocal(java.time.LocalDateTime);
     field public static final int CENATT = 36; // 0x24
     field public static final int CENATX = 38; // 0x26
     field public static final int CENCOM = 32; // 0x20
@@ -19203,10 +19325,13 @@
     ctor public X500Principal(String, java.util.Map<java.lang.String,java.lang.String>);
     ctor public X500Principal(byte[]);
     ctor public X500Principal(java.io.InputStream);
+    method public boolean equals(Object);
     method public byte[] getEncoded();
     method public String getName();
     method public String getName(String);
     method public String getName(String, java.util.Map<java.lang.String,java.lang.String>);
+    method public int hashCode();
+    method public String toString();
     field public static final String CANONICAL = "CANONICAL";
     field public static final String RFC1779 = "RFC1779";
     field public static final String RFC2253 = "RFC2253";
diff --git a/current/sdk/sdk_library/system-server/service-art-stubs.jar b/current/sdk/sdk_library/system-server/service-art-stubs.jar
index 7675f44..a1882fb 100644
--- a/current/sdk/sdk_library/system-server/service-art-stubs.jar
+++ b/current/sdk/sdk_library/system-server/service-art-stubs.jar
Binary files differ
diff --git a/current/sdk/sdk_library/system-server/service-art.srcjar b/current/sdk/sdk_library/system-server/service-art.srcjar
index 68ac451..6e5ec8a 100644
--- a/current/sdk/sdk_library/system-server/service-art.srcjar
+++ b/current/sdk/sdk_library/system-server/service-art.srcjar
Binary files differ
diff --git a/current/sdk/sdk_library/system-server/service-art.txt b/current/sdk/sdk_library/system-server/service-art.txt
index a9cd65a..ec1eab2 100644
--- a/current/sdk/sdk_library/system-server/service-art.txt
+++ b/current/sdk/sdk_library/system-server/service-art.txt
@@ -80,6 +80,7 @@
     field public static final int FLAG_FOR_PRIMARY_DEX = 1; // 0x1
     field public static final int FLAG_FOR_SECONDARY_DEX = 2; // 0x2
     field public static final int FLAG_FOR_SINGLE_SPLIT = 32; // 0x20
+    field public static final int FLAG_IGNORE_PROFILE = 128; // 0x80
     field public static final int FLAG_SHOULD_DOWNGRADE = 8; // 0x8
     field public static final int FLAG_SHOULD_INCLUDE_DEPENDENCIES = 4; // 0x4
     field public static final int FLAG_SKIP_IF_STORAGE_LOW = 64; // 0x40
@@ -142,6 +143,9 @@
     field public static final int DEXOPT_FAILED = 30; // 0x1e
     field public static final int DEXOPT_PERFORMED = 20; // 0x14
     field public static final int DEXOPT_SKIPPED = 10; // 0xa
+    field public static final int EXTENDED_BAD_EXTERNAL_PROFILE = 4; // 0x4
+    field public static final int EXTENDED_SKIPPED_NO_DEX_CODE = 2; // 0x2
+    field public static final int EXTENDED_SKIPPED_STORAGE_LOW = 1; // 0x1
   }
 
   public abstract static class DexoptResult.DexContainerFileDexoptResult {
@@ -150,6 +154,8 @@
     method public abstract long getDex2oatCpuTimeMillis();
     method public abstract long getDex2oatWallTimeMillis();
     method @NonNull public abstract String getDexContainerFile();
+    method public abstract int getExtendedStatusFlags();
+    method @NonNull public abstract java.util.List<java.lang.String> getExternalProfileErrors();
     method public abstract long getSizeBeforeBytes();
     method public abstract long getSizeBytes();
     method public abstract int getStatus();
diff --git a/current/sdk/sdk_library/system-server/service-art_annotations.zip b/current/sdk/sdk_library/system-server/service-art_annotations.zip
index 78b2f8f..f400dba 100644
--- a/current/sdk/sdk_library/system-server/service-art_annotations.zip
+++ b/current/sdk/sdk_library/system-server/service-art_annotations.zip
Binary files differ
diff --git a/current/sdk/sdk_library/system/art-stubs.jar b/current/sdk/sdk_library/system/art-stubs.jar
index 7591e5a..291d875 100644
--- a/current/sdk/sdk_library/system/art-stubs.jar
+++ b/current/sdk/sdk_library/system/art-stubs.jar
Binary files differ
diff --git a/current/sdk/sdk_library/system/art.srcjar b/current/sdk/sdk_library/system/art.srcjar
index a4e57d8..2cac973 100644
--- a/current/sdk/sdk_library/system/art.srcjar
+++ b/current/sdk/sdk_library/system/art.srcjar
Binary files differ
diff --git a/current/sdk/snapshot-creation-build-number.txt b/current/sdk/snapshot-creation-build-number.txt
index d33d0a0..b771400 100644
--- a/current/sdk/snapshot-creation-build-number.txt
+++ b/current/sdk/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10572802
\ No newline at end of file
+11030519
\ No newline at end of file
diff --git a/current/sdk/x86/lib/libnativebridge_lazy.so b/current/sdk/x86/lib/libnativebridge_lazy.so
index 96ec35d..35945b2 100755
--- a/current/sdk/x86/lib/libnativebridge_lazy.so
+++ b/current/sdk/x86/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/current/sdk/x86/lib/libnativehelper_compat_libc++.so b/current/sdk/x86/lib/libnativehelper_compat_libc++.so
index 7419d30..8d7f463 100755
--- a/current/sdk/x86/lib/libnativehelper_compat_libc++.so
+++ b/current/sdk/x86/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/current/sdk/x86/lib/libnativeloader_lazy.so b/current/sdk/x86/lib/libnativeloader_lazy.so
index 662b37f..af61b4d 100755
--- a/current/sdk/x86/lib/libnativeloader_lazy.so
+++ b/current/sdk/x86/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/current/sdk/x86_64/lib/libnativebridge_lazy.so b/current/sdk/x86_64/lib/libnativebridge_lazy.so
index ff1da08..d730858 100755
--- a/current/sdk/x86_64/lib/libnativebridge_lazy.so
+++ b/current/sdk/x86_64/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so b/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so
index b8a2416..d627bee 100755
--- a/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so
+++ b/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/current/sdk/x86_64/lib/libnativeloader_lazy.so b/current/sdk/x86_64/lib/libnativeloader_lazy.so
index af1a139..f303700 100755
--- a/current/sdk/x86_64/lib/libnativeloader_lazy.so
+++ b/current/sdk/x86_64/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/current/test-exports/Android.bp b/current/test-exports/Android.bp
index 30174eb..a713ff1 100644
--- a/current/test-exports/Android.bp
+++ b/current/test-exports/Android.bp
@@ -39,6 +39,7 @@
     },
     visibility: [
         "//art/build/sdk",
+        "//cts/tests/core/runner-axt",
         "//cts/tests/tests/util",
         "//external/conscrypt",
         "//external/conscrypt/apex/tests",
@@ -47,6 +48,7 @@
         "//frameworks/base/wifi/tests",
         "//libcore",
         "//libcore/luni/src/test/java9compatibility",
+        "//libcore/ojluni/src/test",
         "//packages/modules/Wifi/framework/tests",
         "//prebuilts:__subpackages__",
     ],
@@ -323,6 +325,7 @@
         "//art/build/sdk",
         "//cts/tests/libcore/luni",
         "//external/apache-harmony",
+        "//libcore",
         "//prebuilts:__subpackages__",
     ],
     apex_available: ["//apex_available:platform"],
diff --git a/current/test-exports/arm64/lib/libjavacoretests.so b/current/test-exports/arm64/lib/libjavacoretests.so
index e38d679..702e995 100755
--- a/current/test-exports/arm64/lib/libjavacoretests.so
+++ b/current/test-exports/arm64/lib/libjavacoretests.so
Binary files differ
diff --git a/current/test-exports/java/core-compat-test-rules.jar b/current/test-exports/java/core-compat-test-rules.jar
index 100cb25..f9d15e6 100644
--- a/current/test-exports/java/core-compat-test-rules.jar
+++ b/current/test-exports/java/core-compat-test-rules.jar
Binary files differ
diff --git a/current/test-exports/java/core-libart-for-host.jar b/current/test-exports/java/core-libart-for-host.jar
index a43e54f..54d2c21 100644
--- a/current/test-exports/java/core-libart-for-host.jar
+++ b/current/test-exports/java/core-libart-for-host.jar
Binary files differ
diff --git a/current/test-exports/java/core-ojtests-public.jar b/current/test-exports/java/core-ojtests-public.jar
index 57f4537..dee3b0d 100644
--- a/current/test-exports/java/core-ojtests-public.jar
+++ b/current/test-exports/java/core-ojtests-public.jar
Binary files differ
diff --git a/current/test-exports/java/core-test-rules.jar b/current/test-exports/java/core-test-rules.jar
index 6055b5d..27b709e 100644
--- a/current/test-exports/java/core-test-rules.jar
+++ b/current/test-exports/java/core-test-rules.jar
Binary files differ
diff --git a/current/test-exports/java/core-tests.jar b/current/test-exports/java/core-tests.jar
index cf29970..08c4403 100644
--- a/current/test-exports/java/core-tests.jar
+++ b/current/test-exports/java/core-tests.jar
Binary files differ
diff --git a/current/test-exports/java/libcore-crypto-tests.jar b/current/test-exports/java/libcore-crypto-tests.jar
index 7b26f3e..8498232 100644
--- a/current/test-exports/java/libcore-crypto-tests.jar
+++ b/current/test-exports/java/libcore-crypto-tests.jar
Binary files differ
diff --git a/current/test-exports/java/libcore-expectations-knownfailures-jar.jar b/current/test-exports/java/libcore-expectations-knownfailures-jar.jar
index f269175..3f8911f 100644
--- a/current/test-exports/java/libcore-expectations-knownfailures-jar.jar
+++ b/current/test-exports/java/libcore-expectations-knownfailures-jar.jar
Binary files differ
diff --git a/current/test-exports/java/okhttp-for-host.jar b/current/test-exports/java/okhttp-for-host.jar
index c15bee9..11a2aa1 100644
--- a/current/test-exports/java/okhttp-for-host.jar
+++ b/current/test-exports/java/okhttp-for-host.jar
Binary files differ
diff --git a/current/test-exports/java/okhttp-nojarjar.jar b/current/test-exports/java/okhttp-nojarjar.jar
index 734a25e..b448b45 100644
--- a/current/test-exports/java/okhttp-nojarjar.jar
+++ b/current/test-exports/java/okhttp-nojarjar.jar
Binary files differ
diff --git a/current/test-exports/java/okhttp-tests-nojarjar.jar b/current/test-exports/java/okhttp-tests-nojarjar.jar
index 2d6f940..dc907fa 100644
--- a/current/test-exports/java/okhttp-tests-nojarjar.jar
+++ b/current/test-exports/java/okhttp-tests-nojarjar.jar
Binary files differ
diff --git a/current/test-exports/snapshot-creation-build-number.txt b/current/test-exports/snapshot-creation-build-number.txt
index d33d0a0..9cf727a 100644
--- a/current/test-exports/snapshot-creation-build-number.txt
+++ b/current/test-exports/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10572802
\ No newline at end of file
+11088951
\ No newline at end of file
diff --git a/current/test-exports/x86/lib/libjavacoretests.so b/current/test-exports/x86/lib/libjavacoretests.so
index 0a0e42a..ef25cca 100755
--- a/current/test-exports/x86/lib/libjavacoretests.so
+++ b/current/test-exports/x86/lib/libjavacoretests.so
Binary files differ
diff --git a/current/test-exports/x86_64/lib/libjavacoretests.so b/current/test-exports/x86_64/lib/libjavacoretests.so
index 90ae90c..04fe4ac 100755
--- a/current/test-exports/x86_64/lib/libjavacoretests.so
+++ b/current/test-exports/x86_64/lib/libjavacoretests.so
Binary files differ
diff --git a/go/current/host-exports/Android.bp b/go/current/host-exports/Android.bp
index 16634c3..838b5d8 100644
--- a/go/current/host-exports/Android.bp
+++ b/go/current/host-exports/Android.bp
@@ -12,37 +12,40 @@
     default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
-java_import {
-    name: "okhttp-norepackage",
-    // Do not prefer prebuilt if the Soong config variable "source_build" in namespace "art_module" is true.
-    use_source_config_var: {
-        config_namespace: "art_module",
-        var_name: "source_build",
-    },
-    visibility: [
-        "//art/build/sdk",
-        "//external/grpc-grpc-java/okhttp",
-        "//external/okhttp",
-        "//prebuilts:__subpackages__",
-    ],
-    apex_available: [
-        "com.android.adservices",
-        "com.android.devicelock",
-        "com.android.extservices",
-        "com.android.ondevicepersonalization",
-    ],
-    licenses: ["art-module-host-exports_external_okhttp_license"],
-    host_supported: true,
-    min_sdk_version: "30",
-    target: {
-        android: {
-            jars: ["java/android/okhttp-norepackage.jar"],
-        },
-        linux_glibc: {
-            jars: ["java/linux_glibc/okhttp-norepackage.jar"],
-        },
-    },
-}
+// TODO(b/293006869): There was a version upgrade of grpc-grpc-java recently and would not be compiled
+// with old version of okhttp-norepackage in prebuilt package. Thus, we will force this target to build
+// from source until the new version of okhttp-norepackage reflects in train build.
+// java_import {
+//     name: "okhttp-norepackage",
+//     // Do not prefer prebuilt if the Soong config variable "source_build" in namespace "art_module" is true.
+//     use_source_config_var: {
+//         config_namespace: "art_module",
+//         var_name: "source_build",
+//     },
+//     visibility: [
+//         "//art/build/sdk",
+//         "//external/grpc-grpc-java/okhttp",
+//         "//external/okhttp",
+//         "//prebuilts:__subpackages__",
+//     ],
+//     apex_available: [
+//         "com.android.adservices",
+//         "com.android.devicelock",
+//         "com.android.extservices",
+//         "com.android.ondevicepersonalization",
+//     ],
+//     licenses: ["art-module-host-exports_external_okhttp_license"],
+//     host_supported: true,
+//     min_sdk_version: "30",
+//     target: {
+//         android: {
+//             jars: ["java/android/okhttp-norepackage.jar"],
+//         },
+//         linux_glibc: {
+//             jars: ["java/linux_glibc/okhttp-norepackage.jar"],
+//         },
+//     },
+// }
 
 java_import {
     name: "art.module.api.annotations",
@@ -321,7 +324,7 @@
     },
     visibility: [
         "//art:__subpackages__",
-        "//prebuilts/module_sdk/art/current/host-exports",
+        "//prebuilts/module_sdk/art:__subpackages__",
         "//prebuilts:__subpackages__",
     ],
     apex_available: [
diff --git a/go/current/host-exports/include/art/libartbase/base/flags.h b/go/current/host-exports/include/art/libartbase/base/flags.h
index 4c38fba..4734a60 100644
--- a/go/current/host-exports/include/art/libartbase/base/flags.h
+++ b/go/current/host-exports/include/art/libartbase/base/flags.h
@@ -263,22 +263,23 @@
 
   // The reporting spec for regular apps. An example of valid value is "S,1,2,4,*".
   // See metrics::ReportingPeriodSpec for complete docs.
-  Flag<std::string> MetricsReportingSpec{"metrics.reporting-spec", "", FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpec{
+      "metrics.reporting-spec", "1,5,30,60,600", FlagType::kDeviceConfig};
 
   // The reporting spec for the system server. See MetricsReportingSpec as well.
-  Flag<std::string> MetricsReportingSpecSystemServer{"metrics.reporting-spec-server", "",
-      FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpecSystemServer{
+      "metrics.reporting-spec-server", "1,10,60,3600,*", FlagType::kDeviceConfig};
 
   // The mods that should report metrics. Together with MetricsReportingNumMods, they
   // dictate what percentage of the runtime execution will report metrics.
   // If the `session_id (a random number) % MetricsReportingNumMods < MetricsReportingMods`
   // then the runtime session will report metrics.
   //
-  // By default, the mods are 0, which means the reporting is disabled.
-  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 0,
-      FlagType::kDeviceConfig};
-  Flag<uint32_t> MetricsReportingModsServer{"metrics.reporting-mods-server", 0,
-      FlagType::kDeviceConfig};
+  // By default, the mods are 2, which means that 2 out of #{reporting-num-mods} of Android sessions
+  // will be reported (with the default values this is 2/100 = 2%).
+  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 2, FlagType::kDeviceConfig};
+  Flag<uint32_t> MetricsReportingModsServer{
+      "metrics.reporting-mods-server", 2, FlagType::kDeviceConfig};
 
   // See MetricsReportingMods docs.
   //
@@ -293,7 +294,7 @@
   // Whether or not we should write metrics to statsd.
   // Note that the actual write is still controlled by
   // MetricsReportingMods and MetricsReportingNumMods.
-  Flag<bool> MetricsWriteToStatsd{ "metrics.write-to-statsd", false, FlagType::kDeviceConfig};
+  Flag<bool> MetricsWriteToStatsd{"metrics.write-to-statsd", true, FlagType::kDeviceConfig};
 
   // Whether or not we should write metrics to logcat.
   // Note that the actual write is still controlled by
diff --git a/go/current/host-exports/include/art/libartbase/base/macros.h b/go/current/host-exports/include/art/libartbase/base/macros.h
index 13e87d7..5f2100f 100644
--- a/go/current/host-exports/include/art/libartbase/base/macros.h
+++ b/go/current/host-exports/include/art/libartbase/base/macros.h
@@ -20,6 +20,7 @@
 #include <stddef.h>  // for size_t
 #include <unistd.h>  // for TEMP_FAILURE_RETRY
 
+#include "android-base/format.h"
 #include "android-base/macros.h"
 #include "android-base/thread_annotations.h"
 
@@ -32,6 +33,9 @@
 #define ART_FRIEND_TYPED_TEST(test_set_name, individual_test)\
 template<typename T> ART_FRIEND_TEST(test_set_name, individual_test)
 
+// Shorthand for formatting with compile time checking of the format string
+#define ART_FORMAT(str, ...) ::fmt::format(FMT_STRING(str), __VA_ARGS__)
+
 // A macro to disallow new and delete operators for a class. It goes in the private: declarations.
 // NOTE: Providing placement new (and matching delete) for constructing container elements.
 #define DISALLOW_ALLOCATION() \
diff --git a/go/current/host-exports/java/android/okhttp-norepackage.jar b/go/current/host-exports/java/android/okhttp-norepackage.jar
index e33f635..601653f 100644
--- a/go/current/host-exports/java/android/okhttp-norepackage.jar
+++ b/go/current/host-exports/java/android/okhttp-norepackage.jar
Binary files differ
diff --git a/go/current/host-exports/java/linux_glibc/okhttp-norepackage.jar b/go/current/host-exports/java/linux_glibc/okhttp-norepackage.jar
index e33f635..601653f 100644
--- a/go/current/host-exports/java/linux_glibc/okhttp-norepackage.jar
+++ b/go/current/host-exports/java/linux_glibc/okhttp-norepackage.jar
Binary files differ
diff --git a/go/current/host-exports/snapshot-creation-build-number.txt b/go/current/host-exports/snapshot-creation-build-number.txt
index f9eedbc..9cf727a 100644
--- a/go/current/host-exports/snapshot-creation-build-number.txt
+++ b/go/current/host-exports/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10414058
\ No newline at end of file
+11088951
\ No newline at end of file
diff --git a/go/current/host-exports/x86_64/bin/dex2oat64 b/go/current/host-exports/x86_64/bin/dex2oat64
index 94e0144..6f51455 100755
--- a/go/current/host-exports/x86_64/bin/dex2oat64
+++ b/go/current/host-exports/x86_64/bin/dex2oat64
Binary files differ
diff --git a/go/current/host-exports/x86_64/bin/dex2oatd64 b/go/current/host-exports/x86_64/bin/dex2oatd64
index 51eb2f2..538065a 100755
--- a/go/current/host-exports/x86_64/bin/dex2oatd64
+++ b/go/current/host-exports/x86_64/bin/dex2oatd64
Binary files differ
diff --git a/go/current/host-exports/x86_64/bin/dexdump b/go/current/host-exports/x86_64/bin/dexdump
index 0d7528a..aff8719 100755
--- a/go/current/host-exports/x86_64/bin/dexdump
+++ b/go/current/host-exports/x86_64/bin/dexdump
Binary files differ
diff --git a/go/current/host-exports/x86_64/bin/hiddenapi b/go/current/host-exports/x86_64/bin/hiddenapi
index 4e3d20f..d2df7d3 100755
--- a/go/current/host-exports/x86_64/bin/hiddenapi
+++ b/go/current/host-exports/x86_64/bin/hiddenapi
Binary files differ
diff --git a/go/current/host-exports/x86_64/bin/oatdump b/go/current/host-exports/x86_64/bin/oatdump
index 573067e..6152b02 100755
--- a/go/current/host-exports/x86_64/bin/oatdump
+++ b/go/current/host-exports/x86_64/bin/oatdump
Binary files differ
diff --git a/go/current/host-exports/x86_64/bin/profman b/go/current/host-exports/x86_64/bin/profman
index 04023fc..35630fc 100755
--- a/go/current/host-exports/x86_64/bin/profman
+++ b/go/current/host-exports/x86_64/bin/profman
Binary files differ
diff --git a/go/current/host-exports/x86_64/bin/veridex b/go/current/host-exports/x86_64/bin/veridex
index 82b709b..c0d4e83 100755
--- a/go/current/host-exports/x86_64/bin/veridex
+++ b/go/current/host-exports/x86_64/bin/veridex
Binary files differ
diff --git a/go/current/host-exports/x86_64/lib/libartbase.a b/go/current/host-exports/x86_64/lib/libartbase.a
index 24cfe26..c2caa32 100644
--- a/go/current/host-exports/x86_64/lib/libartbase.a
+++ b/go/current/host-exports/x86_64/lib/libartbase.a
Binary files differ
diff --git a/go/current/host-exports/x86_64/lib/libartbase.so b/go/current/host-exports/x86_64/lib/libartbase.so
index 4d29a70..f3f9fbe 100755
--- a/go/current/host-exports/x86_64/lib/libartbase.so
+++ b/go/current/host-exports/x86_64/lib/libartbase.so
Binary files differ
diff --git a/go/current/sdk/Android.bp b/go/current/sdk/Android.bp
index bae5057..1df5498 100644
--- a/go/current/sdk/Android.bp
+++ b/go/current/sdk/Android.bp
@@ -912,6 +912,7 @@
         "common_os/include/libnativehelper/include_jni",
         "common_os/include/libnativehelper/include_platform",
         "common_os/include/libnativehelper/include_platform_header_only",
+        "common_os/include/system/logging/liblog/include",
     ],
     stubs: {
         versions: [
@@ -1122,6 +1123,7 @@
         "//packages/modules/Connectivity:__subpackages__",
         "//packages/modules/ExtServices:__subpackages__",
         "//packages/modules/NetworkStack:__subpackages__",
+        "//packages/modules/Permission/tests/cts:__subpackages__",
         "//prebuilts:__subpackages__",
     ],
     apex_available: [
@@ -1139,6 +1141,7 @@
         "include/libnativehelper/header_only_include",
         "include/libnativehelper/include",
         "include/libnativehelper/include_jni",
+        "include/system/logging/liblog/include",
     ],
     arch: {
         arm64: {
@@ -1210,8 +1213,6 @@
         "//apex_available:platform",
         "com.android.art",
         "com.android.art.debug",
-        "com.android.media",
-        "com.android.media.swcodec",
         "com.android.runtime",
     ],
     licenses: ["art-module-sdk_art_license"],
@@ -1324,6 +1325,7 @@
         "common_os/include/libnativehelper/include_jni",
         "common_os/include/libnativehelper/include_platform",
         "common_os/include/libnativehelper/include_platform_header_only",
+        "common_os/include/system/logging/liblog/include",
     ],
     target: {
         host: {
diff --git a/go/current/sdk/android/arm/lib/libandroidio.so b/go/current/sdk/android/arm/lib/libandroidio.so
index ddb9283..b52b120 100755
--- a/go/current/sdk/android/arm/lib/libandroidio.so
+++ b/go/current/sdk/android/arm/lib/libandroidio.so
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libdexfile.so b/go/current/sdk/android/arm/lib/libdexfile.so
index 4f0cfdc..34a3246 100755
--- a/go/current/sdk/android/arm/lib/libdexfile.so
+++ b/go/current/sdk/android/arm/lib/libdexfile.so
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libdexfile_static.a b/go/current/sdk/android/arm/lib/libdexfile_static.a
index 3b1688b..f5e9c87 100644
--- a/go/current/sdk/android/arm/lib/libdexfile_static.a
+++ b/go/current/sdk/android/arm/lib/libdexfile_static.a
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libdexfile_support.a b/go/current/sdk/android/arm/lib/libdexfile_support.a
index fff8737..369b7ce 100644
--- a/go/current/sdk/android/arm/lib/libdexfile_support.a
+++ b/go/current/sdk/android/arm/lib/libdexfile_support.a
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libnativebridge.so b/go/current/sdk/android/arm/lib/libnativebridge.so
index 93df178..b4e4f1e 100755
--- a/go/current/sdk/android/arm/lib/libnativebridge.so
+++ b/go/current/sdk/android/arm/lib/libnativebridge.so
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libnativehelper.so b/go/current/sdk/android/arm/lib/libnativehelper.so
index ecd341d..3bb2c6d 100755
--- a/go/current/sdk/android/arm/lib/libnativehelper.so
+++ b/go/current/sdk/android/arm/lib/libnativehelper.so
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libnativehelper_lazy.a b/go/current/sdk/android/arm/lib/libnativehelper_lazy.a
index 6f119ce..515957f 100644
--- a/go/current/sdk/android/arm/lib/libnativehelper_lazy.a
+++ b/go/current/sdk/android/arm/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libnativeloader.so b/go/current/sdk/android/arm/lib/libnativeloader.so
index a466b3c..5c83b76 100755
--- a/go/current/sdk/android/arm/lib/libnativeloader.so
+++ b/go/current/sdk/android/arm/lib/libnativeloader.so
Binary files differ
diff --git a/go/current/sdk/android/arm/lib/libsigchain.so b/go/current/sdk/android/arm/lib/libsigchain.so
index 2c7e39e..f965d52 100755
--- a/go/current/sdk/android/arm/lib/libsigchain.so
+++ b/go/current/sdk/android/arm/lib/libsigchain.so
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libandroidio.so b/go/current/sdk/android/arm64/lib/libandroidio.so
index 54f46fc..a68c593 100755
--- a/go/current/sdk/android/arm64/lib/libandroidio.so
+++ b/go/current/sdk/android/arm64/lib/libandroidio.so
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libdexfile.so b/go/current/sdk/android/arm64/lib/libdexfile.so
index 87e8277..6dc8a6d 100755
--- a/go/current/sdk/android/arm64/lib/libdexfile.so
+++ b/go/current/sdk/android/arm64/lib/libdexfile.so
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libdexfile_static.a b/go/current/sdk/android/arm64/lib/libdexfile_static.a
index 26bfce1..4210828 100644
--- a/go/current/sdk/android/arm64/lib/libdexfile_static.a
+++ b/go/current/sdk/android/arm64/lib/libdexfile_static.a
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libdexfile_support.a b/go/current/sdk/android/arm64/lib/libdexfile_support.a
index e130390..b69de21 100644
--- a/go/current/sdk/android/arm64/lib/libdexfile_support.a
+++ b/go/current/sdk/android/arm64/lib/libdexfile_support.a
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libnativebridge.so b/go/current/sdk/android/arm64/lib/libnativebridge.so
index 66cb281..0088c43 100755
--- a/go/current/sdk/android/arm64/lib/libnativebridge.so
+++ b/go/current/sdk/android/arm64/lib/libnativebridge.so
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libnativehelper.so b/go/current/sdk/android/arm64/lib/libnativehelper.so
index 9cc36b9..4bbc1c8 100755
--- a/go/current/sdk/android/arm64/lib/libnativehelper.so
+++ b/go/current/sdk/android/arm64/lib/libnativehelper.so
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libnativehelper_lazy.a b/go/current/sdk/android/arm64/lib/libnativehelper_lazy.a
index 3775f9e..ee19d1d 100644
--- a/go/current/sdk/android/arm64/lib/libnativehelper_lazy.a
+++ b/go/current/sdk/android/arm64/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libnativeloader.so b/go/current/sdk/android/arm64/lib/libnativeloader.so
index 9c30ed4..d5afc33 100755
--- a/go/current/sdk/android/arm64/lib/libnativeloader.so
+++ b/go/current/sdk/android/arm64/lib/libnativeloader.so
Binary files differ
diff --git a/go/current/sdk/android/arm64/lib/libsigchain.so b/go/current/sdk/android/arm64/lib/libsigchain.so
index 69524d4..36fc70c 100755
--- a/go/current/sdk/android/arm64/lib/libsigchain.so
+++ b/go/current/sdk/android/arm64/lib/libsigchain.so
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libandroidio.so b/go/current/sdk/android/x86/lib/libandroidio.so
index 4604bcf..64a33cc 100755
--- a/go/current/sdk/android/x86/lib/libandroidio.so
+++ b/go/current/sdk/android/x86/lib/libandroidio.so
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libdexfile.so b/go/current/sdk/android/x86/lib/libdexfile.so
index e9f48b9..2e80672 100755
--- a/go/current/sdk/android/x86/lib/libdexfile.so
+++ b/go/current/sdk/android/x86/lib/libdexfile.so
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libdexfile_static.a b/go/current/sdk/android/x86/lib/libdexfile_static.a
index 261d075..a0f4ba2 100644
--- a/go/current/sdk/android/x86/lib/libdexfile_static.a
+++ b/go/current/sdk/android/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libdexfile_support.a b/go/current/sdk/android/x86/lib/libdexfile_support.a
index 72487bd..9a13cd0 100644
--- a/go/current/sdk/android/x86/lib/libdexfile_support.a
+++ b/go/current/sdk/android/x86/lib/libdexfile_support.a
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libnativebridge.so b/go/current/sdk/android/x86/lib/libnativebridge.so
index ecaf0eb..0ec091b 100755
--- a/go/current/sdk/android/x86/lib/libnativebridge.so
+++ b/go/current/sdk/android/x86/lib/libnativebridge.so
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libnativehelper.so b/go/current/sdk/android/x86/lib/libnativehelper.so
index cdfe8ae..0f1e635 100755
--- a/go/current/sdk/android/x86/lib/libnativehelper.so
+++ b/go/current/sdk/android/x86/lib/libnativehelper.so
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libnativehelper_lazy.a b/go/current/sdk/android/x86/lib/libnativehelper_lazy.a
index 46f361b..a333bce 100644
--- a/go/current/sdk/android/x86/lib/libnativehelper_lazy.a
+++ b/go/current/sdk/android/x86/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libnativeloader.so b/go/current/sdk/android/x86/lib/libnativeloader.so
index f0cfe17..0ba1dcb 100755
--- a/go/current/sdk/android/x86/lib/libnativeloader.so
+++ b/go/current/sdk/android/x86/lib/libnativeloader.so
Binary files differ
diff --git a/go/current/sdk/android/x86/lib/libsigchain.so b/go/current/sdk/android/x86/lib/libsigchain.so
index 15135ff..bc113b1 100755
--- a/go/current/sdk/android/x86/lib/libsigchain.so
+++ b/go/current/sdk/android/x86/lib/libsigchain.so
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libandroidio.so b/go/current/sdk/android/x86_64/lib/libandroidio.so
index dc83ab9..01bda18 100755
--- a/go/current/sdk/android/x86_64/lib/libandroidio.so
+++ b/go/current/sdk/android/x86_64/lib/libandroidio.so
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libdexfile.so b/go/current/sdk/android/x86_64/lib/libdexfile.so
index 988aed4..654e7fb 100755
--- a/go/current/sdk/android/x86_64/lib/libdexfile.so
+++ b/go/current/sdk/android/x86_64/lib/libdexfile.so
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libdexfile_static.a b/go/current/sdk/android/x86_64/lib/libdexfile_static.a
index 29cf592..1f8b918 100644
--- a/go/current/sdk/android/x86_64/lib/libdexfile_static.a
+++ b/go/current/sdk/android/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libdexfile_support.a b/go/current/sdk/android/x86_64/lib/libdexfile_support.a
index 8f28cc2..a529fc5 100644
--- a/go/current/sdk/android/x86_64/lib/libdexfile_support.a
+++ b/go/current/sdk/android/x86_64/lib/libdexfile_support.a
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libnativebridge.so b/go/current/sdk/android/x86_64/lib/libnativebridge.so
index b41bfc4..4102614 100755
--- a/go/current/sdk/android/x86_64/lib/libnativebridge.so
+++ b/go/current/sdk/android/x86_64/lib/libnativebridge.so
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libnativehelper.so b/go/current/sdk/android/x86_64/lib/libnativehelper.so
index b27ee91..89692a9 100755
--- a/go/current/sdk/android/x86_64/lib/libnativehelper.so
+++ b/go/current/sdk/android/x86_64/lib/libnativehelper.so
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libnativehelper_lazy.a b/go/current/sdk/android/x86_64/lib/libnativehelper_lazy.a
index 9dd3e7a..2825d30 100644
--- a/go/current/sdk/android/x86_64/lib/libnativehelper_lazy.a
+++ b/go/current/sdk/android/x86_64/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libnativeloader.so b/go/current/sdk/android/x86_64/lib/libnativeloader.so
index 0666ed0..de1fa31 100755
--- a/go/current/sdk/android/x86_64/lib/libnativeloader.so
+++ b/go/current/sdk/android/x86_64/lib/libnativeloader.so
Binary files differ
diff --git a/go/current/sdk/android/x86_64/lib/libsigchain.so b/go/current/sdk/android/x86_64/lib/libsigchain.so
index 968bc4c..b00cb27 100755
--- a/go/current/sdk/android/x86_64/lib/libsigchain.so
+++ b/go/current/sdk/android/x86_64/lib/libsigchain.so
Binary files differ
diff --git a/go/current/sdk/arm/lib/libnativebridge_lazy.so b/go/current/sdk/arm/lib/libnativebridge_lazy.so
index 509b752..577148c 100755
--- a/go/current/sdk/arm/lib/libnativebridge_lazy.so
+++ b/go/current/sdk/arm/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/go/current/sdk/arm/lib/libnativehelper_compat_libc++.so b/go/current/sdk/arm/lib/libnativehelper_compat_libc++.so
index 46e442a..4d18030 100755
--- a/go/current/sdk/arm/lib/libnativehelper_compat_libc++.so
+++ b/go/current/sdk/arm/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/go/current/sdk/arm/lib/libnativeloader_lazy.so b/go/current/sdk/arm/lib/libnativeloader_lazy.so
index 1a2467a..f9260a0 100755
--- a/go/current/sdk/arm/lib/libnativeloader_lazy.so
+++ b/go/current/sdk/arm/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/go/current/sdk/arm64/lib/libnativebridge_lazy.so b/go/current/sdk/arm64/lib/libnativebridge_lazy.so
index 5baace2..3e387fc 100755
--- a/go/current/sdk/arm64/lib/libnativebridge_lazy.so
+++ b/go/current/sdk/arm64/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/go/current/sdk/arm64/lib/libnativehelper_compat_libc++.so b/go/current/sdk/arm64/lib/libnativehelper_compat_libc++.so
index 2a53853..25c0746 100755
--- a/go/current/sdk/arm64/lib/libnativehelper_compat_libc++.so
+++ b/go/current/sdk/arm64/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/go/current/sdk/arm64/lib/libnativeloader_lazy.so b/go/current/sdk/arm64/lib/libnativeloader_lazy.so
index bed48f5..711c510 100755
--- a/go/current/sdk/arm64/lib/libnativeloader_lazy.so
+++ b/go/current/sdk/arm64/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/allocator.h b/go/current/sdk/common_os/include/art/libartbase/base/allocator.h
index 81f3a60..24374a2 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/allocator.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/allocator.h
@@ -115,8 +115,8 @@
 
   // Used internally by STL data structures.
   template <class U>
-  TrackingAllocatorImpl(
-      const TrackingAllocatorImpl<U, kTag>& alloc ATTRIBUTE_UNUSED) noexcept {}
+  explicit TrackingAllocatorImpl(
+      [[maybe_unused]] const TrackingAllocatorImpl<U, kTag>& alloc) noexcept {}
 
   // Used internally by STL data structures.
   TrackingAllocatorImpl() noexcept {
@@ -130,7 +130,7 @@
     using other = TrackingAllocatorImpl<U, kTag>;
   };
 
-  pointer allocate(size_type n, const_pointer hint ATTRIBUTE_UNUSED = 0) {
+  pointer allocate(size_type n, [[maybe_unused]] const_pointer hint = 0) {
     const size_t size = n * sizeof(T);
     TrackedAllocators::RegisterAllocation(GetTag(), size);
     return reinterpret_cast<pointer>(malloc(size));
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h b/go/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h
index c4f713a..10f7f31 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/arena_allocator.h
@@ -120,13 +120,13 @@
   ArenaAllocatorStatsImpl(const ArenaAllocatorStatsImpl& other) = default;
   ArenaAllocatorStatsImpl& operator = (const ArenaAllocatorStatsImpl& other) = delete;
 
-  void Copy(const ArenaAllocatorStatsImpl& other ATTRIBUTE_UNUSED) {}
-  void RecordAlloc(size_t bytes ATTRIBUTE_UNUSED, ArenaAllocKind kind ATTRIBUTE_UNUSED) {}
+  void Copy([[maybe_unused]] const ArenaAllocatorStatsImpl& other) {}
+  void RecordAlloc([[maybe_unused]] size_t bytes, [[maybe_unused]] ArenaAllocKind kind) {}
   size_t NumAllocations() const { return 0u; }
   size_t BytesAllocated() const { return 0u; }
-  void Dump(std::ostream& os ATTRIBUTE_UNUSED,
-            const Arena* first ATTRIBUTE_UNUSED,
-            ssize_t lost_bytes_adjustment ATTRIBUTE_UNUSED) const {}
+  void Dump([[maybe_unused]] std::ostream& os,
+            [[maybe_unused]] const Arena* first,
+            [[maybe_unused]] ssize_t lost_bytes_adjustment) const {}
 };
 
 template <bool kCount>
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/arena_containers.h b/go/current/sdk/common_os/include/art/libartbase/base/arena_containers.h
index f205bc4..80a3791 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/arena_containers.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/arena_containers.h
@@ -93,7 +93,7 @@
 template <typename Key,
           typename Value,
           typename Hash = std::hash<Key>,
-          typename Pred = std::equal_to<Value>>
+          typename Pred = std::equal_to<Key>>
 using ArenaUnorderedMap = std::unordered_map<Key,
                                              Value,
                                              Hash,
@@ -109,7 +109,7 @@
 class ArenaAllocatorAdapterKindImpl<false> {
  public:
   // Not tracking allocations, ignore the supplied kind and arbitrarily provide kArenaAllocSTL.
-  explicit ArenaAllocatorAdapterKindImpl(ArenaAllocKind kind ATTRIBUTE_UNUSED) {}
+  explicit ArenaAllocatorAdapterKindImpl([[maybe_unused]] ArenaAllocKind kind) {}
   ArenaAllocatorAdapterKindImpl(const ArenaAllocatorAdapterKindImpl&) = default;
   ArenaAllocatorAdapterKindImpl& operator=(const ArenaAllocatorAdapterKindImpl&) = default;
   ArenaAllocKind Kind() { return kArenaAllocSTL; }
@@ -199,7 +199,7 @@
   const_pointer address(const_reference x) const { return &x; }
 
   pointer allocate(size_type n,
-                   ArenaAllocatorAdapter<void>::pointer hint ATTRIBUTE_UNUSED = nullptr) {
+                   [[maybe_unused]] ArenaAllocatorAdapter<void>::pointer hint = nullptr) {
     DCHECK_LE(n, max_size());
     return allocator_->AllocArray<T>(n, ArenaAllocatorAdapterKind::Kind());
   }
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h b/go/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h
index baac2f5..f3dbd63 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/bit_memory_region.h
@@ -157,11 +157,11 @@
   ALWAYS_INLINE void CopyBits(const BitMemoryRegion& src) {
     DCHECK_EQ(size_in_bits(), src.size_in_bits());
     // Hopefully, the loads of the unused `value` shall be optimized away.
-    VisitChunks(
-        [this, &src](size_t offset, size_t num_bits, size_t value ATTRIBUTE_UNUSED) ALWAYS_INLINE {
-          StoreChunk(offset, src.LoadBits(offset, num_bits), num_bits);
-          return true;
-        });
+    VisitChunks([this, &src](size_t offset, size_t num_bits, [[maybe_unused]] size_t value)
+                    ALWAYS_INLINE {
+                      StoreChunk(offset, src.LoadBits(offset, num_bits), num_bits);
+                      return true;
+                    });
   }
 
   // And bits from other bit region.
@@ -194,9 +194,8 @@
   // Count the number of set bits within this region.
   ALWAYS_INLINE size_t PopCount() const {
     size_t result = 0u;
-    VisitChunks([&](size_t offset ATTRIBUTE_UNUSED,
-                    size_t num_bits ATTRIBUTE_UNUSED,
-                    size_t value) ALWAYS_INLINE {
+    VisitChunks([&]([[maybe_unused]] size_t offset, [[maybe_unused]] size_t num_bits, size_t value)
+                    ALWAYS_INLINE {
                       result += POPCOUNT(value);
                       return true;
                     });
@@ -210,11 +209,9 @@
 
   // Check if this region has all bits clear.
   ALWAYS_INLINE bool HasAllBitsClear() const {
-    return VisitChunks([](size_t offset ATTRIBUTE_UNUSED,
-                          size_t num_bits ATTRIBUTE_UNUSED,
-                          size_t value) ALWAYS_INLINE {
-                            return value == 0u;
-                          });
+    return VisitChunks(
+        []([[maybe_unused]] size_t offset, [[maybe_unused]] size_t num_bits, size_t value)
+            ALWAYS_INLINE { return value == 0u; });
   }
 
   // Check if this region has any bit set.
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/bit_table.h b/go/current/sdk/common_os/include/art/libartbase/base/bit_table.h
index 227f5eb..eb97b54 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/bit_table.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/bit_table.h
@@ -153,13 +153,13 @@
 template<typename Accessor>
 class BitTable : public BitTableBase<Accessor::kNumColumns> {
  public:
-  class const_iterator : public std::iterator<std::random_access_iterator_tag,
-                                              /* value_type */ Accessor,
-                                              /* difference_type */ int32_t,
-                                              /* pointer */ void,
-                                              /* reference */ void> {
+  class const_iterator {
    public:
+    using iterator_category = std::random_access_iterator_tag;
+    using value_type = Accessor;
     using difference_type = int32_t;
+    using pointer = void;
+    using reference = void;
     const_iterator() {}
     const_iterator(const BitTable* table, uint32_t row) : table_(table), row_(row) {}
     const_iterator operator+(difference_type n) { return const_iterator(table_, row_ + n); }
@@ -189,6 +189,7 @@
       DCHECK_LT(row_ + index, table_->NumRows());
       return Accessor(table_, row_ + index);
     }
+
    private:
     const BitTable* table_ = nullptr;
     uint32_t row_ = 0;
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h b/go/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h
index bfcff86..296280e 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/bit_utils_iterator.h
@@ -32,14 +32,19 @@
 // Using the Curiously Recurring Template Pattern to implement everything shared
 // by LowToHighBitIterator and HighToLowBitIterator, i.e. everything but operator*().
 template <typename T, typename Iter>
-class BitIteratorBase
-    : public std::iterator<std::forward_iterator_tag, uint32_t, ptrdiff_t, void, void> {
+class BitIteratorBase {
   static_assert(std::is_integral_v<T>, "T must be integral");
   static_assert(std::is_unsigned_v<T>, "T must be unsigned");
 
   static_assert(sizeof(T) == sizeof(uint32_t) || sizeof(T) == sizeof(uint64_t), "Unsupported size");
 
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = uint32_t;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
+
   BitIteratorBase() : bits_(0u) { }
   explicit BitIteratorBase(T bits) : bits_(bits) { }
 
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/bit_vector.h b/go/current/sdk/common_os/include/art/libartbase/base/bit_vector.h
index 071577b..a710c5d 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/bit_vector.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/bit_vector.h
@@ -51,9 +51,14 @@
    *     // Use idx.
    *   }
    */
-  class IndexIterator :
-      public std::iterator<std::forward_iterator_tag, uint32_t, ptrdiff_t, void, uint32_t> {
+  class IndexIterator {
    public:
+    using iterator_category = std::forward_iterator_tag;
+    using value_type = uint32_t;
+    using difference_type = ptrdiff_t;
+    using pointer = void;
+    using reference = uint32_t;
+
     bool operator==(const IndexIterator& other) const;
 
     bool operator!=(const IndexIterator& other) const {
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/common_art_test.h b/go/current/sdk/common_os/include/art/libartbase/base/common_art_test.h
index d7711f2..64e251e 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/common_art_test.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/common_art_test.h
@@ -157,10 +157,10 @@
   // Gets the paths of the libcore dex files.
   std::vector<std::string> GetLibCoreDexFileNames() const;
 
-  // Gets the locations of the libcore dex files for given modules.
+  // Gets the on-host or on-device locations of the libcore dex files for given modules.
   std::vector<std::string> GetLibCoreDexLocations(const std::vector<std::string>& modules) const;
 
-  // Gets the locations of the libcore dex files.
+  // Gets the on-host or on-device locations of the libcore dex files.
   std::vector<std::string> GetLibCoreDexLocations() const;
 
   static std::string GetClassPathOption(const char* option,
@@ -183,9 +183,15 @@
     const std::unique_ptr<const DexFile>& dex = dex_files[0];
     CHECK(dex->EnableWrite()) << "Failed to enable write";
     DexFile* dex_file = const_cast<DexFile*>(dex.get());
+    size_t original_size = dex_file->Size();
     mutator(dex_file);
-    const_cast<DexFile::Header&>(dex_file->GetHeader()).checksum_ = dex_file->CalculateChecksum();
-    if (!output_dex->WriteFully(dex->Begin(), dex->Size())) {
+    // NB: mutation might have changed the DEX size in the header.
+    std::vector<uint8_t> copy(dex_file->Begin(), dex_file->Begin() + original_size);
+    copy.resize(dex_file->Size());  // Shrink/expand to new size.
+    uint32_t checksum = DexFile::CalculateChecksum(copy.data(), copy.size());
+    CHECK_GE(copy.size(), sizeof(DexFile::Header));
+    reinterpret_cast<DexFile::Header*>(copy.data())->checksum_ = checksum;
+    if (!output_dex->WriteFully(copy.data(), copy.size())) {
       return false;
     }
     if (output_dex->Flush() != 0) {
@@ -297,41 +303,60 @@
 // matches the given name.
 std::vector<pid_t> GetPidByName(const std::string& process_name);
 
-#define TEST_DISABLED_FOR_TARGET() \
-  if (kIsTargetBuild) { \
-    printf("WARNING: TEST DISABLED FOR TARGET\n"); \
-    return; \
+#define TEST_DISABLED_FOR_TARGET()                       \
+  if (kIsTargetBuild) {                                  \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR TARGET"; \
   }
 
-#define TEST_DISABLED_FOR_HOST() \
-  if (!kIsTargetBuild) { \
-    printf("WARNING: TEST DISABLED FOR HOST\n"); \
-    return; \
+#define TEST_DISABLED_FOR_HOST()                       \
+  if (!kIsTargetBuild) {                               \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR HOST"; \
   }
 
-#define TEST_DISABLED_FOR_NON_STATIC_HOST_BUILDS() \
-  if (!kHostStaticBuildEnabled) { \
-    printf("WARNING: TEST DISABLED FOR NON-STATIC HOST BUILDS\n"); \
-    return; \
+#define TEST_DISABLED_FOR_NON_STATIC_HOST_BUILDS()                       \
+  if (!kHostStaticBuildEnabled) {                                        \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR NON-STATIC HOST BUILDS"; \
   }
 
-#define TEST_DISABLED_FOR_MEMORY_TOOL() \
-  if (kRunningOnMemoryTool) { \
-    printf("WARNING: TEST DISABLED FOR MEMORY TOOL\n"); \
-    return; \
+#define TEST_DISABLED_FOR_DEBUG_BUILD()                       \
+  if (kIsDebugBuild) {                                        \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR DEBUG BUILD"; \
   }
 
-#define TEST_DISABLED_FOR_HEAP_POISONING() \
-  if (kPoisonHeapReferences) { \
-    printf("WARNING: TEST DISABLED FOR HEAP POISONING\n"); \
-    return; \
+#define TEST_DISABLED_FOR_MEMORY_TOOL()                       \
+  if (kRunningOnMemoryTool) {                                 \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR MEMORY TOOL"; \
+  }
+
+#define TEST_DISABLED_FOR_HEAP_POISONING()                       \
+  if (kPoisonHeapReferences) {                                   \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR HEAP POISONING"; \
   }
 }  // namespace art
 
-#define TEST_DISABLED_FOR_MEMORY_TOOL_WITH_HEAP_POISONING() \
-  if (kRunningOnMemoryTool && kPoisonHeapReferences) { \
-    printf("WARNING: TEST DISABLED FOR MEMORY TOOL WITH HEAP POISONING\n"); \
-    return; \
+#define TEST_DISABLED_FOR_MEMORY_TOOL_WITH_HEAP_POISONING()                       \
+  if (kRunningOnMemoryTool && kPoisonHeapReferences) {                            \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR MEMORY TOOL WITH HEAP POISONING"; \
+  }
+
+#define TEST_DISABLED_FOR_RISCV64()                       \
+  if (kRuntimeISA == InstructionSet::kRiscv64) {          \
+    GTEST_SKIP() << "WARNING: TEST DISABLED FOR RISCV64"; \
+  }
+
+// Don't print messages on setup to avoid getting multiple "test disabled" messages for one test.
+// Setup phase may need to be disabled as some test rely on having boot image / compiler / other
+// things that are not implemented for RISC-V.
+#define TEST_SETUP_DISABLED_FOR_RISCV64()        \
+  if (kRuntimeISA == InstructionSet::kRiscv64) { \
+    GTEST_SKIP();                                \
+  }
+
+// Don't print messages on teardown to avoid getting multiple "test disabled" messages for one test.
+// Teardown phase may need to be disabled to match the disabled setup phase for some tests.
+#define TEST_TEARDOWN_DISABLED_FOR_RISCV64()     \
+  if (kRuntimeISA == InstructionSet::kRiscv64) { \
+    GTEST_SKIP();                                \
   }
 
 #endif  // ART_LIBARTBASE_BASE_COMMON_ART_TEST_H_
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/debug_stack.h b/go/current/sdk/common_os/include/art/libartbase/base/debug_stack.h
index 4bbaee8..f3ee310 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/debug_stack.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/debug_stack.h
@@ -55,7 +55,7 @@
 template <>
 class DebugStackReferenceImpl<false> {
  public:
-  explicit DebugStackReferenceImpl(DebugStackRefCounterImpl<false>* counter ATTRIBUTE_UNUSED) {}
+  explicit DebugStackReferenceImpl([[maybe_unused]] DebugStackRefCounterImpl<false>* counter) {}
   DebugStackReferenceImpl(const DebugStackReferenceImpl& other) = default;
   DebugStackReferenceImpl& operator=(const DebugStackReferenceImpl& other) = default;
   void CheckTop() { }
@@ -64,7 +64,7 @@
 template <>
 class DebugStackIndirectTopRefImpl<false> {
  public:
-  explicit DebugStackIndirectTopRefImpl(DebugStackReferenceImpl<false>* ref ATTRIBUTE_UNUSED) {}
+  explicit DebugStackIndirectTopRefImpl([[maybe_unused]] DebugStackReferenceImpl<false>* ref) {}
   DebugStackIndirectTopRefImpl(const DebugStackIndirectTopRefImpl& other) = default;
   DebugStackIndirectTopRefImpl& operator=(const DebugStackIndirectTopRefImpl& other) = default;
   void CheckTop() { }
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/file_utils.h b/go/current/sdk/common_os/include/art/libartbase/base/file_utils.h
index cff6a92..8222a8a 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/file_utils.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/file_utils.h
@@ -101,6 +101,19 @@
 // Returns the boot image location that forces the runtime to run in JIT Zygote mode.
 std::string GetJitZygoteBootImageLocation();
 
+// A helper function to pick the most appropriate boot image based on the given options.
+// The boot image location can only be used with the default bootclasspath (the value of the
+// BOOTCLASSPATH environment variable).
+std::string GetBootImageLocationForDefaultBcp(bool no_boot_image,
+                                              std::string user_defined_boot_image,
+                                              bool deny_art_apex_data_files,
+                                              std::string* error_msg);
+
+// A helper function to pick the most appropriate boot image based on system properties.
+// The boot image location can only be used with the default bootclasspath (the value of the
+// BOOTCLASSPATH environment variable).
+std::string GetBootImageLocationForDefaultBcpRespectingSysProps(std::string* error_msg);
+
 // Allows the name to be used for the dalvik cache directory (normally "dalvik-cache") to be
 // overridden with a new value.
 void OverrideDalvikCacheSubDirectory(std::string sub_dir);
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/flags.h b/go/current/sdk/common_os/include/art/libartbase/base/flags.h
index 4c38fba..4734a60 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/flags.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/flags.h
@@ -263,22 +263,23 @@
 
   // The reporting spec for regular apps. An example of valid value is "S,1,2,4,*".
   // See metrics::ReportingPeriodSpec for complete docs.
-  Flag<std::string> MetricsReportingSpec{"metrics.reporting-spec", "", FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpec{
+      "metrics.reporting-spec", "1,5,30,60,600", FlagType::kDeviceConfig};
 
   // The reporting spec for the system server. See MetricsReportingSpec as well.
-  Flag<std::string> MetricsReportingSpecSystemServer{"metrics.reporting-spec-server", "",
-      FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpecSystemServer{
+      "metrics.reporting-spec-server", "1,10,60,3600,*", FlagType::kDeviceConfig};
 
   // The mods that should report metrics. Together with MetricsReportingNumMods, they
   // dictate what percentage of the runtime execution will report metrics.
   // If the `session_id (a random number) % MetricsReportingNumMods < MetricsReportingMods`
   // then the runtime session will report metrics.
   //
-  // By default, the mods are 0, which means the reporting is disabled.
-  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 0,
-      FlagType::kDeviceConfig};
-  Flag<uint32_t> MetricsReportingModsServer{"metrics.reporting-mods-server", 0,
-      FlagType::kDeviceConfig};
+  // By default, the mods are 2, which means that 2 out of #{reporting-num-mods} of Android sessions
+  // will be reported (with the default values this is 2/100 = 2%).
+  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 2, FlagType::kDeviceConfig};
+  Flag<uint32_t> MetricsReportingModsServer{
+      "metrics.reporting-mods-server", 2, FlagType::kDeviceConfig};
 
   // See MetricsReportingMods docs.
   //
@@ -293,7 +294,7 @@
   // Whether or not we should write metrics to statsd.
   // Note that the actual write is still controlled by
   // MetricsReportingMods and MetricsReportingNumMods.
-  Flag<bool> MetricsWriteToStatsd{ "metrics.write-to-statsd", false, FlagType::kDeviceConfig};
+  Flag<bool> MetricsWriteToStatsd{"metrics.write-to-statsd", true, FlagType::kDeviceConfig};
 
   // Whether or not we should write metrics to logcat.
   // Note that the actual write is still controlled by
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/hash_set.h b/go/current/sdk/common_os/include/art/libartbase/base/hash_set.h
index 3f3c8f2..fec9440 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/hash_set.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/hash_set.h
@@ -502,10 +502,10 @@
   // Insert an element with hint.
   // Note: The hint is not very useful for a HashSet<> unless there are many hash conflicts
   // and in that case the use of HashSet<> itself should be reconsidered.
-  std::pair<iterator, bool> insert(const_iterator hint ATTRIBUTE_UNUSED, const T& element) {
+  std::pair<iterator, bool> insert([[maybe_unused]] const_iterator hint, const T& element) {
     return insert(element);
   }
-  std::pair<iterator, bool> insert(const_iterator hint ATTRIBUTE_UNUSED, T&& element) {
+  std::pair<iterator, bool> insert([[maybe_unused]] const_iterator hint, T&& element) {
     return insert(std::move(element));
   }
 
@@ -710,7 +710,7 @@
     if (UNLIKELY(NumBuckets() == 0)) {
       return 0;
     }
-    auto fail_fn = [&](size_t index ATTRIBUTE_UNUSED) ALWAYS_INLINE { return NumBuckets(); };
+    auto fail_fn = [&]([[maybe_unused]] size_t index) ALWAYS_INLINE { return NumBuckets(); };
     return FindIndexImpl(element, hash, fail_fn);
   }
 
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h b/go/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h
index 2e66f3e..f7f7395 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/intrusive_forward_list.h
@@ -35,9 +35,9 @@
   explicit IntrusiveForwardListHook(const IntrusiveForwardListHook* hook) : next_hook(hook) { }
 
   // Allow copyable values but do not copy the hook, it is not part of the value.
-  IntrusiveForwardListHook(const IntrusiveForwardListHook& other ATTRIBUTE_UNUSED)
-      : next_hook(nullptr) { }
-  IntrusiveForwardListHook& operator=(const IntrusiveForwardListHook& src ATTRIBUTE_UNUSED) {
+  explicit IntrusiveForwardListHook([[maybe_unused]] const IntrusiveForwardListHook& other)
+      : next_hook(nullptr) {}
+  IntrusiveForwardListHook& operator=([[maybe_unused]] const IntrusiveForwardListHook& src) {
     return *this;
   }
 
@@ -59,8 +59,14 @@
 class IntrusiveForwardList;
 
 template <typename T, typename HookTraits>
-class IntrusiveForwardListIterator : public std::iterator<std::forward_iterator_tag, T> {
+class IntrusiveForwardListIterator {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = T;
+  using difference_type = ptrdiff_t;
+  using pointer = value_type*;
+  using reference = value_type&;
+
   // Construct/copy/destroy (except the private constructor used by IntrusiveForwardList<>).
   IntrusiveForwardListIterator() : hook_(nullptr) { }
   IntrusiveForwardListIterator(const IntrusiveForwardListIterator& src) = default;
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/macros.h b/go/current/sdk/common_os/include/art/libartbase/base/macros.h
index 13e87d7..5f2100f 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/macros.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/macros.h
@@ -20,6 +20,7 @@
 #include <stddef.h>  // for size_t
 #include <unistd.h>  // for TEMP_FAILURE_RETRY
 
+#include "android-base/format.h"
 #include "android-base/macros.h"
 #include "android-base/thread_annotations.h"
 
@@ -32,6 +33,9 @@
 #define ART_FRIEND_TYPED_TEST(test_set_name, individual_test)\
 template<typename T> ART_FRIEND_TEST(test_set_name, individual_test)
 
+// Shorthand for formatting with compile time checking of the format string
+#define ART_FORMAT(str, ...) ::fmt::format(FMT_STRING(str), __VA_ARGS__)
+
 // A macro to disallow new and delete operators for a class. It goes in the private: declarations.
 // NOTE: Providing placement new (and matching delete) for constructing container elements.
 #define DISALLOW_ALLOCATION() \
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/mem_map.h b/go/current/sdk/common_os/include/art/libartbase/base/mem_map.h
index 98fb69d..db85f08 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/mem_map.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/mem_map.h
@@ -242,7 +242,10 @@
 
   bool Protect(int prot);
 
-  void MadviseDontNeedAndZero();
+  void FillWithZero(bool release_eagerly);
+  void MadviseDontNeedAndZero() {
+    FillWithZero(/* release_eagerly= */ true);
+  }
   int MadviseDontFork();
 
   int GetProtect() const {
@@ -437,8 +440,11 @@
 
 std::ostream& operator<<(std::ostream& os, const MemMap& mem_map);
 
-// Zero and release pages if possible, no requirements on alignments.
-void ZeroAndReleasePages(void* address, size_t length);
+// Zero and maybe release memory if possible, no requirements on alignments.
+void ZeroMemory(void* address, size_t length, bool release_eagerly);
+inline void ZeroAndReleaseMemory(void* address, size_t length) {
+  ZeroMemory(address, length, /* release_eagerly= */ true);
+}
 
 }  // namespace art
 
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/membarrier.h b/go/current/sdk/common_os/include/art/libartbase/base/membarrier.h
index f829fc1..6fd9a3d 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/membarrier.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/membarrier.h
@@ -36,7 +36,7 @@
     kPrivateExpedited = (1 << 3),
     // MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED
     kRegisterPrivateExpedited = (1 << 4),
-    // MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
+    // MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE
     kPrivateExpeditedSyncCore = (1 << 5),
     // MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
     kRegisterPrivateExpeditedSyncCore = (1 << 6)
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/memory_tool.h b/go/current/sdk/common_os/include/art/libartbase/base/memory_tool.h
index eba1d73..675ceb2 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/memory_tool.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/memory_tool.h
@@ -75,17 +75,6 @@
 # define ATTRIBUTE_NO_SANITIZE_HWADDRESS
 #endif
 
-// Removes the hwasan tag from the pointer (the top eight bits).
-// Those bits are used for verification by hwasan and they are ignored by normal ARM memory ops.
-template<typename PtrType>
-static inline PtrType* HWASanUntag(PtrType* p) {
-#if __has_feature(hwaddress_sanitizer) && defined(__aarch64__)
-  return reinterpret_cast<PtrType*>(reinterpret_cast<uintptr_t>(p) & ((1ULL << 56) - 1));
-#else
-  return p;
-#endif
-}
-
 }  // namespace art
 
 #endif  // ART_LIBARTBASE_BASE_MEMORY_TOOL_H_
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h b/go/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h
index 40db63d..e3c85b4 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/metrics/metrics.h
@@ -87,7 +87,8 @@
   METRIC(TotalBytesAllocatedDelta, MetricsDeltaCounter)        \
   METRIC(TotalGcCollectionTimeDelta, MetricsDeltaCounter)      \
   METRIC(YoungGcCountDelta, MetricsDeltaCounter)               \
-  METRIC(FullGcCountDelta, MetricsDeltaCounter)
+  METRIC(FullGcCountDelta, MetricsDeltaCounter)                \
+  METRIC(TimeElapsedDelta, MetricsDeltaCounter)
 
 #define ART_METRICS(METRIC) \
   ART_EVENT_METRICS(METRIC) \
@@ -759,6 +760,7 @@
 
  private:
   uint64_t beginning_timestamp_;
+  uint64_t last_report_timestamp_;
 
 #define METRIC(name, Kind, ...) Kind<DatumId::k##name, ##__VA_ARGS__> name##_;
   ART_METRICS(METRIC)
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h b/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h
index 6de0192..165fb8c 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_allocator.h
@@ -171,7 +171,7 @@
   size_t ApproximatePeakBytes();
 
   // Allow a delete-expression to destroy but not deallocate allocators created by Create().
-  static void operator delete(void* ptr ATTRIBUTE_UNUSED) {}
+  static void operator delete([[maybe_unused]] void* ptr) {}
 
  private:
   ArenaStack* arena_stack_;
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h b/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h
index 5f0cfe6..d0ff7f5 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/scoped_arena_containers.h
@@ -185,7 +185,7 @@
   const_pointer address(const_reference x) const { return &x; }
 
   pointer allocate(size_type n,
-                   ScopedArenaAllocatorAdapter<void>::pointer hint ATTRIBUTE_UNUSED = nullptr) {
+                   [[maybe_unused]] ScopedArenaAllocatorAdapter<void>::pointer hint = nullptr) {
     DCHECK_LE(n, max_size());
     DebugStackIndirectTopRef::CheckTop();
     return reinterpret_cast<T*>(arena_stack_->Alloc(n * sizeof(T),
@@ -273,7 +273,7 @@
 template <typename T>
 class ArenaDelete<T[]> {
  public:
-  void operator()(T* ptr ATTRIBUTE_UNUSED) const {
+  void operator()([[maybe_unused]] T* ptr) const {
     static_assert(std::is_trivially_destructible_v<T>,
                   "ArenaUniquePtr does not support non-trivially-destructible arrays.");
     // TODO: Implement debug checks, and MEMORY_TOOL support.
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/stl_util.h b/go/current/sdk/common_os/include/art/libartbase/base/stl_util.h
index 2c9547f..87b6d4b 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/stl_util.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/stl_util.h
@@ -156,10 +156,14 @@
 }
 
 template <typename IterLeft, typename IterRight>
-class ZipLeftIter : public std::iterator<
-                        std::forward_iterator_tag,
-                        std::pair<typename IterLeft::value_type, typename IterRight::value_type>> {
+class ZipLeftIter {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = std::pair<typename IterLeft::value_type, typename IterRight::value_type>;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
+
   ZipLeftIter(IterLeft left, IterRight right) : left_iter_(left), right_iter_(right) {}
   ZipLeftIter<IterLeft, IterRight>& operator++() {
     ++left_iter_;
@@ -186,8 +190,14 @@
   IterRight right_iter_;
 };
 
-class CountIter : public std::iterator<std::forward_iterator_tag, size_t, size_t, size_t, size_t> {
+class CountIter {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = size_t;
+  using difference_type = size_t;
+  using pointer = size_t;
+  using reference = size_t;
+
   CountIter() : count_(0) {}
   explicit CountIter(size_t count) : count_(count) {}
   CountIter& operator++() {
@@ -238,9 +248,14 @@
 }
 
 template <typename RealIter, typename Filter>
-struct FilterIterator
-    : public std::iterator<std::forward_iterator_tag, typename RealIter::value_type> {
+struct FilterIterator {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = typename RealIter::value_type;
+  using difference_type = ptrdiff_t;
+  using pointer = typename RealIter::pointer;
+  using reference = typename RealIter::reference;
+
   FilterIterator(RealIter rl,
                  Filter cond,
                  std::optional<RealIter> end = std::nullopt)
@@ -323,8 +338,14 @@
 }
 
 // Helper struct for iterating a split-string without allocation.
-struct SplitStringIter : public std::iterator<std::forward_iterator_tag, std::string_view> {
+struct SplitStringIter {
  public:
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = std::string_view;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
+
   // Direct iterator constructor. The iteration state is only the current index.
   // We use that with the split char and the full string to get the current and
   // next segment.
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h b/go/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h
index 6a7e4be..7d1b9fc 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/stride_iterator.h
@@ -23,11 +23,14 @@
 
 namespace art {
 
-template<typename T>
-class StrideIterator : public std::iterator<std::random_access_iterator_tag, T> {
+template <typename T>
+class StrideIterator {
  public:
-  using difference_type =
-      typename std::iterator<std::random_access_iterator_tag, T>::difference_type;
+  using iterator_category = std::random_access_iterator_tag;
+  using value_type = T;
+  using difference_type = ptrdiff_t;
+  using pointer = value_type*;
+  using reference = value_type&;
 
   StrideIterator(const StrideIterator&) = default;
   StrideIterator(StrideIterator&&) noexcept = default;
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/testing.h b/go/current/sdk/common_os/include/art/libartbase/base/testing.h
index 65bd3f6..88d0aee 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/testing.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/testing.h
@@ -25,16 +25,26 @@
 namespace art {
 namespace testing {
 
+// Note: "libcore" here means art + conscrypt + icu.
+
 // Gets the names of the libcore modules.
 // If `core_only` is true, only returns the names of CORE_IMG_JARS in Android.common_path.mk.
 std::vector<std::string> GetLibCoreModuleNames(bool core_only = false);
 
 // Gets the paths of the libcore dex files for given modules.
-std::vector<std::string> GetLibCoreDexFileNames(const std::vector<std::string>& modules);
+std::vector<std::string> GetLibCoreDexFileNames(const std::string& prefix,
+                                                const std::vector<std::string>& modules);
 
 // Gets the paths of the libcore dex files.
 // If `core_only` is true, only returns the filenames of CORE_IMG_JARS in Android.common_path.mk.
-std::vector<std::string> GetLibCoreDexFileNames(bool core_only = false);
+std::vector<std::string> GetLibCoreDexFileNames(const std::string& prefix, bool core_only = false);
+
+// Gets the on-device locations of the libcore dex files for given modules.
+std::vector<std::string> GetLibCoreDexLocations(const std::vector<std::string>& modules);
+
+// Gets the on-device locations of the libcore dex files.
+// If `core_only` is true, only returns the filenames of CORE_IMG_JARS in Android.common_path.mk.
+std::vector<std::string> GetLibCoreDexLocations(bool core_only = false);
 
 }  // namespace testing
 }  // namespace art
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h b/go/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h
index 178f89d..0592256 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/unix_file/random_access_file_test.h
@@ -171,8 +171,7 @@
     CleanUp(file.get());
   }
 
-  virtual void CleanUp(RandomAccessFile* file ATTRIBUTE_UNUSED) {
-  }
+  virtual void CleanUp([[maybe_unused]] RandomAccessFile* file) {}
 
  protected:
   std::string android_data_;
diff --git a/go/current/sdk/common_os/include/art/libartbase/base/utils.h b/go/current/sdk/common_os/include/art/libartbase/base/utils.h
index f311f09..5e04cb0 100644
--- a/go/current/sdk/common_os/include/art/libartbase/base/utils.h
+++ b/go/current/sdk/common_os/include/art/libartbase/base/utils.h
@@ -75,16 +75,13 @@
 class VoidFunctor {
  public:
   template <typename A>
-  inline void operator() (A a ATTRIBUTE_UNUSED) const {
-  }
+  inline void operator()([[maybe_unused]] A a) const {}
 
   template <typename A, typename B>
-  inline void operator() (A a ATTRIBUTE_UNUSED, B b ATTRIBUTE_UNUSED) const {
-  }
+  inline void operator()([[maybe_unused]] A a, [[maybe_unused]] B b) const {}
 
   template <typename A, typename B, typename C>
-  inline void operator() (A a ATTRIBUTE_UNUSED, B b ATTRIBUTE_UNUSED, C c ATTRIBUTE_UNUSED) const {
-  }
+  inline void operator()([[maybe_unused]] A a, [[maybe_unused]] B b, [[maybe_unused]] C c) const {}
 };
 
 inline bool TestBitmap(size_t idx, const uint8_t* bitmap) {
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h b/go/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h
index 9f2ae82..2fbc2cb 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/art_dex_file_loader.h
@@ -36,31 +36,8 @@
 // Class that is used to open dex files and deal with corresponding multidex and location logic.
 class ArtDexFileLoader : public DexFileLoader {
  public:
-  using DexFileLoader::DexFileLoader;
-  virtual ~ArtDexFileLoader() { }
-
-  // Returns the checksums of a file for comparison with GetLocationChecksum().
-  // For .dex files, this is the single header checksum.
-  // For zip files, this is the zip entry CRC32 checksum for classes.dex and
-  // each additional multidex entry classes2.dex, classes3.dex, etc.
-  // If a valid zip_fd is provided the file content will be read directly from
-  // the descriptor and `filename` will be used as alias for error logging. If
-  // zip_fd is -1, the method will try to open the `filename` and read the
-  // content from it.
-  //
-  // The dex_locations vector will be populated with the corresponding multidex
-  // locations.
-  //
-  // Return true if the checksums could be found, false otherwise.
-  static bool GetMultiDexChecksums(const char* filename,
-                                   std::vector<uint32_t>* checksums,
-                                   std::vector<std::string>* dex_locations,
-                                   std::string* error_msg,
-                                   int zip_fd = -1,
-                                   bool* only_contains_uncompressed_dex = nullptr);
-
-  // Don't shadow overloads from base class.
-  using DexFileLoader::Open;
+  using DexFileLoader::DexFileLoader;  // Use constructors from base class.
+  using DexFileLoader::Open;           // Don't shadow overloads from base class.
 
   // Old signature preserved for app-compat.
   std::unique_ptr<const DexFile> Open(const uint8_t* base,
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h b/go/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h
index a3ee2bd..401195c 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/class_accessor.h
@@ -18,6 +18,7 @@
 #define ART_LIBDEXFILE_DEX_CLASS_ACCESSOR_H_
 
 #include "code_item_accessors.h"
+#include "dex/dex_file.h"
 #include "dex_file_types.h"
 #include "invoke_type.h"
 #include "modifiers.h"
@@ -177,11 +178,13 @@
   };
 
   template <typename DataType>
-  class DataIterator : public std::iterator<std::forward_iterator_tag, DataType> {
+  class DataIterator {
    public:
-    using value_type = typename std::iterator<std::forward_iterator_tag, DataType>::value_type;
-    using difference_type =
-        typename std::iterator<std::forward_iterator_tag, value_type>::difference_type;
+    using iterator_category = std::forward_iterator_tag;
+    using value_type = DataType;
+    using difference_type = ptrdiff_t;
+    using pointer = value_type*;
+    using reference = value_type&;
 
     DataIterator(const DexFile& dex_file,
                  uint32_t position,
@@ -279,7 +282,7 @@
 
   ClassAccessor(const DexFile& dex_file,
                 const uint8_t* class_data,
-                uint32_t class_def_index = dex::kDexNoIndex,
+                uint32_t class_def_index = DexFile::kDexNoIndex32,
                 bool parse_hiddenapi_class_data = false);
 
   // Return the code item for a method.
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h b/go/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h
index 8ed585b..c7817f7 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/class_iterator.h
@@ -41,10 +41,13 @@
 };
 
 // Iterator for visiting classes in a Dex file.
-class ClassIterator : public std::iterator<std::forward_iterator_tag, ClassIteratorData> {
+class ClassIterator {
  public:
-  using value_type = std::iterator<std::forward_iterator_tag, ClassIteratorData>::value_type;
-  using difference_type = std::iterator<std::forward_iterator_tag, value_type>::difference_type;
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = ClassIteratorData;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
 
   ClassIterator(const DexFile& dex_file, uint32_t class_def_idx)
       : data_(dex_file, class_def_idx) {}
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h b/go/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h
index 1e33002..b740460 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/code_item_accessors-inl.h
@@ -178,8 +178,7 @@
 
 template <>
 inline void CodeItemDebugInfoAccessor::Init<StandardDexFile::CodeItem>(
-    const StandardDexFile::CodeItem& code_item,
-    uint32_t dex_method_index ATTRIBUTE_UNUSED) {
+    const StandardDexFile::CodeItem& code_item, [[maybe_unused]] uint32_t dex_method_index) {
   debug_info_offset_ = code_item.debug_info_off_;
   CodeItemDataAccessor::Init(code_item);
 }
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h b/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h
index 22f6c20..468ff49 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_file.h
@@ -273,6 +273,7 @@
 
   // Returns true if the byte string points to the magic value.
   static bool IsMagicValid(const uint8_t* magic);
+  static bool IsMagicValid(DexFile::Magic magic) { return IsMagicValid(magic.data()); }
   bool IsMagicValid() const override;
 
   // Returns true if the byte string after the magic is the correct value.
@@ -305,7 +306,6 @@
 
  private:
   CompactDexFile(const uint8_t* base,
-                 size_t size,
                  const std::string& location,
                  uint32_t location_checksum,
                  const OatDexFile* oat_dex_file,
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h b/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h
index 599ec4d..2f06688 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/compact_dex_level.h
@@ -24,6 +24,7 @@
 namespace art {
 
 // Optimization level for compact dex generation.
+// TODO(b/256664509): Clean this up.
 enum class CompactDexLevel {
   // Level none means not generated.
   kCompactDexLevelNone,
@@ -31,9 +32,7 @@
   kCompactDexLevelFast,
 };
 
-#ifndef ART_DEFAULT_COMPACT_DEX_LEVEL
-#error ART_DEFAULT_COMPACT_DEX_LEVEL not specified.
-#else
+#ifdef ART_DEFAULT_COMPACT_DEX_LEVEL
 #define ART_DEFAULT_COMPACT_DEX_LEVEL_VALUE_fast CompactDexLevel::kCompactDexLevelFast
 #define ART_DEFAULT_COMPACT_DEX_LEVEL_VALUE_none CompactDexLevel::kCompactDexLevelNone
 
@@ -41,7 +40,8 @@
     ART_DEFAULT_COMPACT_DEX_LEVEL_VALUE_, \
     ART_DEFAULT_COMPACT_DEX_LEVEL)
 
-static constexpr CompactDexLevel kDefaultCompactDexLevel = ART_DEFAULT_COMPACT_DEX_LEVEL_DEFAULT;
+static_assert(ART_DEFAULT_COMPACT_DEX_LEVEL_DEFAULT == CompactDexLevel::kCompactDexLevelNone,
+              "ART_DEFAULT_COMPACT_DEX_LEVEL_DEFAULT != none is no longer supported");
 #endif
 
 }  // namespace art
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h
index d9c5211..9291f6e 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file-inl.h
@@ -180,6 +180,10 @@
   return StringDataAndUtf16LengthByIdx(GetProtoId(method_id.proto_idx_).shorty_idx_, length);
 }
 
+inline std::string_view DexFile::GetMethodShortyView(const dex::MethodId& method_id) const {
+  return GetShortyView(method_id.proto_idx_);
+}
+
 inline const char* DexFile::GetClassDescriptor(const dex::ClassDef& class_def) const {
   return StringByTypeIdx(class_def.class_idx_);
 }
@@ -194,12 +198,16 @@
 }
 
 ALWAYS_INLINE
+inline std::string_view DexFile::GetShortyView(dex::ProtoIndex proto_idx) const {
+  return GetShortyView(GetProtoId(proto_idx));
+}
+
+ALWAYS_INLINE
 inline std::string_view DexFile::GetShortyView(const dex::ProtoId& proto_id) const {
-  uint32_t lhs_shorty_len;
-  const char* lhs_shorty_data =
-      StringDataAndUtf16LengthByIdx(proto_id.shorty_idx_, &lhs_shorty_len);
-  DCHECK_EQ(lhs_shorty_data[lhs_shorty_len], '\0');  // For a shorty utf16 length == mutf8 length.
-  return std::string_view(lhs_shorty_data, lhs_shorty_len);
+  uint32_t shorty_len;
+  const char* shorty_data = StringDataAndUtf16LengthByIdx(proto_id.shorty_idx_, &shorty_len);
+  DCHECK_EQ(shorty_data[shorty_len], '\0');  // For a shorty utf16 length == mutf8 length.
+  return std::string_view(shorty_data, shorty_len);
 }
 
 inline const dex::TryItem* DexFile::GetTryItems(const DexInstructionIterator& code_item_end,
@@ -319,7 +327,14 @@
         // Emit what was previously there, if anything
         if (local_in_reg[reg].is_live_) {
           local_in_reg[reg].end_address_ = address;
-          new_local_callback(local_in_reg[reg]);
+          // Parameters with generic types cannot be encoded in the debug_info_item header. So d8
+          // encodes it as null in the header with start and end address as 0. There will be a
+          // START_LOCAL_EXTENDED that will declare the parameter with correct signature
+          // Debuggers get confused when they see empty ranges. So don't emit them.
+          // See b/297843934 for more details.
+          if (local_in_reg[reg].end_address_ != 0) {
+            new_local_callback(local_in_reg[reg]);
+          }
         }
 
         local_in_reg[reg].name_ = index_to_string_data(name_idx);
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h
index 1d1b016..5068480 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file.h
@@ -19,6 +19,7 @@
 
 #include <android-base/logging.h>
 
+#include <array>
 #include <memory>
 #include <optional>
 #include <string>
@@ -56,8 +57,9 @@
 // Owns the physical storage that backs one or more DexFiles (that is, it can be shared).
 // It frees the storage (e.g. closes file) when all DexFiles that use it are all closed.
 //
-// The Begin()-End() range represents exactly one DexFile (with the size from the header).
-// In particular, the End() does NOT include any shared cdex data from other DexFiles.
+// The memory range must include all data used by the DexFiles including any shared data.
+//
+// It might also include surrounding non-dex data (e.g. it might represent vdex file).
 class DexFileContainer {
  public:
   DexFileContainer() { }
@@ -124,11 +126,19 @@
   static constexpr uint16_t kDexNoIndex16 = 0xFFFF;
   static constexpr uint32_t kDexNoIndex32 = 0xFFFFFFFF;
 
+  using Magic = std::array<uint8_t, 8>;
+
+  struct Sha1 : public std::array<uint8_t, kSha1DigestSize> {
+    std::string ToString() const;
+  };
+
+  static_assert(std::is_standard_layout_v<Sha1>);
+
   // Raw header_item.
   struct Header {
-    uint8_t magic_[8] = {};
+    Magic magic_ = {};
     uint32_t checksum_ = 0;  // See also location_checksum_
-    uint8_t signature_[kSha1DigestSize] = {};
+    Sha1 signature_ = {};
     uint32_t file_size_ = 0;  // size of entire file
     uint32_t header_size_ = 0;  // offset to start of next section
     uint32_t endian_tag_ = 0;
@@ -245,6 +255,8 @@
     return location_checksum_;
   }
 
+  Sha1 GetSha1() const { return header_->signature_; }
+
   const Header& GetHeader() const {
     DCHECK(header_ != nullptr) << GetLocation();
     return *header_;
@@ -453,6 +465,7 @@
   // Returns the shorty of a method id.
   const char* GetMethodShorty(const dex::MethodId& method_id) const;
   const char* GetMethodShorty(const dex::MethodId& method_id, uint32_t* length) const;
+  std::string_view GetMethodShortyView(const dex::MethodId& method_id) const;
 
   // Returns the number of class definitions in the .dex file.
   uint32_t NumClassDefs() const {
@@ -547,6 +560,7 @@
 
   // Returns the short form method descriptor for the given prototype.
   const char* GetShorty(dex::ProtoIndex proto_idx) const;
+  std::string_view GetShortyView(dex::ProtoIndex proto_idx) const;
   std::string_view GetShortyView(const dex::ProtoId& proto_id) const;
 
   const dex::TypeList* GetProtoParameters(const dex::ProtoId& proto_id) const {
@@ -755,13 +769,9 @@
     return begin_;
   }
 
-  size_t Size() const {
-    return size_;
-  }
+  size_t Size() const { return header_->file_size_; }
 
-  static ArrayRef<const uint8_t> GetDataRange(const uint8_t* data,
-                                              size_t size,
-                                              DexFileContainer* container);
+  static ArrayRef<const uint8_t> GetDataRange(const uint8_t* data, DexFileContainer* container);
 
   const uint8_t* DataBegin() const { return data_.data(); }
 
@@ -836,9 +846,7 @@
     return DataBegin() <= addr && addr < DataBegin() + DataSize();
   }
 
-  DexFileContainer* GetContainer() const {
-    return container_.get();
-  }
+  const std::shared_ptr<DexFileContainer>& GetContainer() const { return container_; }
 
   IterationRange<ClassIterator> GetClasses() const;
 
@@ -854,7 +862,6 @@
   static constexpr uint32_t kDefaultMethodsVersion = 37;
 
   DexFile(const uint8_t* base,
-          size_t size,
           const std::string& location,
           uint32_t location_checksum,
           const OatDexFile* oat_dex_file,
@@ -862,6 +869,9 @@
           std::shared_ptr<DexFileContainer> container,
           bool is_compact_dex);
 
+  template <typename T>
+  const T* GetSection(const uint32_t* offset, DexFileContainer* container);
+
   // Top-level initializer that calls other Init methods.
   bool Init(std::string* error_msg);
 
@@ -874,8 +884,7 @@
   // The base address of the memory mapping.
   const uint8_t* const begin_;
 
-  // The size of the underlying memory allocation in bytes.
-  const size_t size_;
+  size_t unused_size_ = 0;  // Preserve layout for DRM (b/305203031).
 
   // Data memory range: Most dex offsets are relative to this memory range.
   // Standard dex: same as (begin_, size_).
@@ -985,7 +994,12 @@
 
   bool HasNext() const { return pos_ < array_size_; }
 
-  void Next();
+  WARN_UNUSED bool MaybeNext();
+
+  ALWAYS_INLINE void Next() {
+    bool ok = MaybeNext();
+    DCHECK(ok) << "Unknown type: " << GetValueType();
+  }
 
   enum ValueType {
     kByte         = 0x00,
@@ -1006,6 +1020,7 @@
     kAnnotation   = 0x1d,
     kNull         = 0x1e,
     kBoolean      = 0x1f,
+    kEndOfInput   = 0xff,
   };
 
   ValueType GetValueType() const { return type_; }
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h
index 532445a..be3359b 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_file_loader.h
@@ -32,7 +32,6 @@
 
 class MemMap;
 class OatDexFile;
-class ScopedTrace;
 class ZipArchive;
 
 enum class DexFileLoaderErrorCode {
@@ -72,6 +71,53 @@
   // index == 0, and dex_location + multi-dex-separator + GetMultiDexClassesDexName(index) else.
   static std::string GetMultiDexLocation(size_t index, const char* dex_location);
 
+  // Returns combined checksum of one or more dex files (one checksum for the whole multidex set).
+  //
+  // This uses the source path provided to DexFileLoader constructor.
+  //
+  // Returns false on error.  Sets *checksum to nullopt for an empty set.
+  bool GetMultiDexChecksum(/*out*/ std::optional<uint32_t>* checksum,
+                           /*out*/ std::string* error_msg,
+                           /*out*/ bool* only_contains_uncompressed_dex = nullptr);
+
+  // Returns combined checksum of one or more dex files (one checksum for the whole multidex set).
+  //
+  // This uses already open dex files.
+  //
+  // It starts iteration at index 'i', which must be a primary dex file,
+  // and it sets 'i' to the next primary dex file or to end of the array.
+  template <typename DexFilePtrVector>  // array|vector<unique_ptr|DexFile|OatDexFile*>.
+  static uint32_t GetMultiDexChecksum(const DexFilePtrVector& dex_files,
+                                      /*inout*/ size_t* i) {
+    CHECK_LT(*i, dex_files.size()) << "No dex files";
+    std::optional<uint32_t> checksum;
+    for (; *i < dex_files.size(); ++(*i)) {
+      const char* location = dex_files[*i]->GetLocation().c_str();
+      if (!checksum.has_value()) {                         // First dex file.
+        CHECK(!IsMultiDexLocation(location)) << location;  // Expect primary dex.
+      } else if (!IsMultiDexLocation(location)) {          // Later dex file.
+        break;  // Found another primary dex file, terminate iteration.
+      }
+      checksum = checksum.value_or(kEmptyMultiDexChecksum) ^ dex_files[*i]->GetLocationChecksum();
+    }
+    CHECK(checksum.has_value());
+    return checksum.value();
+  }
+
+  // Calculate checksum of dex files in a vector, starting at index 0.
+  // It will CHECK that the whole vector is consumed (i.e. there is just one primary dex file).
+  template <typename DexFilePtrVector>
+  static uint32_t GetMultiDexChecksum(const DexFilePtrVector& dex_files) {
+    size_t i = 0;
+    uint32_t checksum = GetMultiDexChecksum(dex_files, &i);
+    CHECK_EQ(i, dex_files.size());
+    return checksum;
+  }
+
+  // Non-zero initial value for multi-dex to catch bugs if multi-dex checksum is compared
+  // directly to DexFile::GetLocationChecksum without going through GetMultiDexChecksum.
+  static constexpr uint32_t kEmptyMultiDexChecksum = 1;
+
   // Returns the canonical form of the given dex location.
   //
   // There are different flavors of "dex locations" as follows:
@@ -107,14 +153,14 @@
     return (pos == std::string::npos) ? std::string() : location.substr(pos);
   }
 
-  DexFileLoader(const char* filename, int fd, const std::string& location)
-      : filename_(filename),
-        file_(fd == -1 ? std::optional<File>() : File(fd, /*check_usage=*/false)),
-        location_(location) {}
+  DexFileLoader(const char* filename, const File* file, const std::string& location)
+      : filename_(filename), file_(file), location_(location) {
+    CHECK(file != nullptr);  // Must be non-null, but may be invalid.
+  }
 
   DexFileLoader(std::shared_ptr<DexFileContainer> container, const std::string& location)
       : root_container_(std::move(container)), location_(location) {
-    DCHECK(root_container_ != nullptr);
+    CHECK(root_container_ != nullptr);
   }
 
   DexFileLoader(const uint8_t* base, size_t size, const std::string& location);
@@ -123,28 +169,39 @@
 
   DexFileLoader(MemMap&& mem_map, const std::string& location);
 
-  DexFileLoader(int fd, const std::string& location)
-      : DexFileLoader(/*filename=*/location.c_str(), fd, location) {}
+  DexFileLoader(File* file, const std::string& location)
+      : DexFileLoader(/*filename=*/location.c_str(), file, location) {}
 
   DexFileLoader(const char* filename, const std::string& location)
-      : DexFileLoader(filename, /*fd=*/-1, location) {}
+      : DexFileLoader(filename, /*file=*/&kInvalidFile, location) {}
 
   explicit DexFileLoader(const std::string& location)
-      : DexFileLoader(location.c_str(), /*fd=*/-1, location) {}
+      : DexFileLoader(location.c_str(), /*file=*/&kInvalidFile, location) {}
 
   virtual ~DexFileLoader() {}
 
-  std::unique_ptr<const DexFile> Open(uint32_t location_checksum,
+  std::unique_ptr<const DexFile> Open(size_t header_offset,
+                                      uint32_t location_checksum,
                                       const OatDexFile* oat_dex_file,
                                       bool verify,
                                       bool verify_checksum,
                                       std::string* error_msg);
 
   std::unique_ptr<const DexFile> Open(uint32_t location_checksum,
+                                      const OatDexFile* oat_dex_file,
                                       bool verify,
                                       bool verify_checksum,
                                       std::string* error_msg) {
-    return Open(location_checksum,
+    return Open(
+        /*header_offset=*/0, location_checksum, oat_dex_file, verify, verify_checksum, error_msg);
+  }
+
+  std::unique_ptr<const DexFile> Open(uint32_t location_checksum,
+                                      bool verify,
+                                      bool verify_checksum,
+                                      std::string* error_msg) {
+    return Open(/*header_offset=*/0,
+                location_checksum,
                 /*oat_dex_file=*/nullptr,
                 verify,
                 verify_checksum,
@@ -195,7 +252,9 @@
   }
 
  protected:
-  bool InitAndReadMagic(uint32_t* magic, std::string* error_msg);
+  static const File kInvalidFile;  // Used for "no file descriptor" (-1).
+
+  bool InitAndReadMagic(size_t header_offset, uint32_t* magic, std::string* error_msg);
 
   // Ensure we have root container.  If we are backed by a file, memory-map it.
   // We can only do this for dex files since zip files might be too big to map.
@@ -251,7 +310,8 @@
   // The DexFileLoader can be backed either by file or by memory (i.e. DexFileContainer).
   // We can not just mmap the file since APKs might be unreasonably large for 32-bit system.
   std::string filename_;
-  std::optional<File> file_;
+  const File* file_ = &kInvalidFile;
+  std::optional<File> owned_file_;  // May be used as backing storage for 'file_'.
   std::shared_ptr<DexFileContainer> root_container_;
   const std::string location_;
 };
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h
index 6c7f42a..da494e1 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/dex_instruction_iterator.h
@@ -57,11 +57,13 @@
 };
 
 // Base helper class to prevent duplicated comparators.
-class DexInstructionIteratorBase : public
-        std::iterator<std::forward_iterator_tag, DexInstructionPcPair> {
+class DexInstructionIteratorBase {
  public:
-  using value_type = std::iterator<std::forward_iterator_tag, DexInstructionPcPair>::value_type;
-  using difference_type = std::iterator<std::forward_iterator_tag, value_type>::difference_type;
+  using iterator_category = std::forward_iterator_tag;
+  using value_type = DexInstructionPcPair;
+  using difference_type = ptrdiff_t;
+  using pointer = void;
+  using reference = void;
 
   explicit DexInstructionIteratorBase(const Instruction* inst, uint32_t dex_pc)
       : data_(reinterpret_cast<const uint16_t*>(inst), dex_pc) {}
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h b/go/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h
index 4ab27ef..5ee8cec 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/standard_dex_file.h
@@ -22,6 +22,8 @@
 
 #include "dex_file.h"
 
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size);
+
 namespace art {
 
 class OatDexFile;
@@ -94,6 +96,7 @@
 
   // Returns true if the byte string points to the magic value.
   static bool IsMagicValid(const uint8_t* magic);
+  static bool IsMagicValid(DexFile::Magic magic) { return IsMagicValid(magic.data()); }
   bool IsMagicValid() const override;
 
   // Returns true if the byte string after the magic is the correct value.
@@ -113,14 +116,12 @@
 
  private:
   StandardDexFile(const uint8_t* base,
-                  size_t size,
                   const std::string& location,
                   uint32_t location_checksum,
                   const OatDexFile* oat_dex_file,
                   // Shared since several dex files may be stored in the same logical container.
                   std::shared_ptr<DexFileContainer> container)
       : DexFile(base,
-                size,
                 location,
                 location_checksum,
                 oat_dex_file,
@@ -132,6 +133,7 @@
 
   ART_FRIEND_TEST(ClassLinkerTest, RegisterDexFileName);  // for constructor
   friend class OptimizingUnitTestHelper;  // for constructor
+  friend int ::LLVMFuzzerTestOneInput(const uint8_t*, size_t);  // for constructor
 
   DISALLOW_COPY_AND_ASSIGN(StandardDexFile);
 };
diff --git a/go/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h b/go/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h
index 964f196..fb0e4c5 100644
--- a/go/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h
+++ b/go/current/sdk/common_os/include/art/libdexfile/dex/test_dex_file_builder.h
@@ -88,8 +88,8 @@
     } header_data;
     std::memset(header_data.data, 0, sizeof(header_data.data));
     DexFile::Header* header = reinterpret_cast<DexFile::Header*>(&header_data.data);
-    std::copy_n(StandardDexFile::kDexMagic, 4u, header->magic_);
-    std::copy_n(StandardDexFile::kDexMagicVersions[0], 4u, header->magic_ + 4u);
+    std::copy_n(StandardDexFile::kDexMagic, 4u, header->magic_.data());
+    std::copy_n(StandardDexFile::kDexMagicVersions[0], 4u, header->magic_.data() + 4u);
     header->header_size_ = sizeof(DexFile::Header);
     header->endian_tag_ = DexFile::kDexEndianConstant;
     header->link_size_ = 0u;  // Unused.
diff --git a/go/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h b/go/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h
index 5904c0f..a87b04f 100644
--- a/go/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h
+++ b/go/current/sdk/common_os/include/art/libnativebridge/include/nativebridge/native_bridge.h
@@ -29,6 +29,11 @@
 extern "C" {
 #endif  // __cplusplus
 
+enum JNICallType {
+  kJNICallTypeRegular = 1,
+  kJNICallTypeCriticalNative = 2,
+};
+
 // Loads a shared library from the system linker namespace, suitable for
 // platform libraries in /system/lib(64). If linker namespaces don't exist (i.e.
 // on host), this simply calls dlopen().
@@ -81,8 +86,15 @@
 void* NativeBridgeLoadLibrary(const char* libpath, int flag);
 
 // Get a native bridge trampoline for specified native method.
+// This version is deprecated - please use NativeBridgeGetTrampoline2
 void* NativeBridgeGetTrampoline(void* handle, const char* name, const char* shorty, uint32_t len);
 
+void* NativeBridgeGetTrampoline2(void* handle,
+                                 const char* name,
+                                 const char* shorty,
+                                 uint32_t len,
+                                 enum JNICallType jni_call_type);
+
 // True if native library paths are valid and is for an ABI that is supported by native bridge.
 // The *libpath* must point to a library.
 //
@@ -206,7 +218,7 @@
   void* (*loadLibrary)(const char* libpath, int flag);
 
   // Get a native bridge trampoline for specified native method. The trampoline has same
-  // sigature as the native method.
+  // signature as the native method.
   //
   // Parameters:
   //   handle [IN] the handle returned from loadLibrary
@@ -214,6 +226,9 @@
   //   len [IN] length of shorty
   // Returns:
   //   address of trampoline if successful, otherwise NULL
+  // Deprecated in v7
+  //   Starting with version 7 native bridge uses getTrampolineWithJNICallType
+  //   instead
   void* (*getTrampoline)(void* handle, const char* name, const char* shorty, uint32_t len);
 
   // Check whether native library is valid and is for an ABI that is supported by native bridge.
@@ -387,6 +402,25 @@
   // If native bridge is used in app-zygote (in doPreload()) this callback is
   // required to clean-up the environment before the fork (see b/146904103).
   void (*preZygoteFork)();
+
+  // This replaces previous getTrampoline call starting with version 7 of the
+  // interface.
+  //
+  // Get a native bridge trampoline for specified native method. The trampoline
+  // has same signature as the native method.
+  //
+  // Parameters:
+  //   handle [IN] the handle returned from loadLibrary
+  //   shorty [IN] short descriptor of native method
+  //   len [IN] length of shorty
+  //   jni_call_type [IN] the type of JNI call
+  // Returns:
+  //   address of trampoline if successful, otherwise NULL
+  void* (*getTrampolineWithJNICallType)(void* handle,
+                                        const char* name,
+                                        const char* shorty,
+                                        uint32_t len,
+                                        enum JNICallType jni_call_type);
 };
 
 // Runtime interfaces to native bridge.
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-assertion-result.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-assertion-result.h
new file mode 100644
index 0000000..56fe128
--- /dev/null
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-assertion-result.h
@@ -0,0 +1,237 @@
+// Copyright 2005, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The Google C++ Testing and Mocking Framework (Google Test)
+//
+// This file implements the AssertionResult type.
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
+
+#ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_
+#define GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_
+
+#include <memory>
+#include <ostream>
+#include <string>
+#include <type_traits>
+
+#include "gtest/gtest-message.h"
+#include "gtest/internal/gtest-port.h"
+
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251                                   \
+/* class A needs to have dll-interface to be used by clients of class B */)
+
+namespace testing {
+
+// A class for indicating whether an assertion was successful.  When
+// the assertion wasn't successful, the AssertionResult object
+// remembers a non-empty message that describes how it failed.
+//
+// To create an instance of this class, use one of the factory functions
+// (AssertionSuccess() and AssertionFailure()).
+//
+// This class is useful for two purposes:
+//   1. Defining predicate functions to be used with Boolean test assertions
+//      EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts
+//   2. Defining predicate-format functions to be
+//      used with predicate assertions (ASSERT_PRED_FORMAT*, etc).
+//
+// For example, if you define IsEven predicate:
+//
+//   testing::AssertionResult IsEven(int n) {
+//     if ((n % 2) == 0)
+//       return testing::AssertionSuccess();
+//     else
+//       return testing::AssertionFailure() << n << " is odd";
+//   }
+//
+// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5)))
+// will print the message
+//
+//   Value of: IsEven(Fib(5))
+//     Actual: false (5 is odd)
+//   Expected: true
+//
+// instead of a more opaque
+//
+//   Value of: IsEven(Fib(5))
+//     Actual: false
+//   Expected: true
+//
+// in case IsEven is a simple Boolean predicate.
+//
+// If you expect your predicate to be reused and want to support informative
+// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up
+// about half as often as positive ones in our tests), supply messages for
+// both success and failure cases:
+//
+//   testing::AssertionResult IsEven(int n) {
+//     if ((n % 2) == 0)
+//       return testing::AssertionSuccess() << n << " is even";
+//     else
+//       return testing::AssertionFailure() << n << " is odd";
+//   }
+//
+// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print
+//
+//   Value of: IsEven(Fib(6))
+//     Actual: true (8 is even)
+//   Expected: false
+//
+// NB: Predicates that support negative Boolean assertions have reduced
+// performance in positive ones so be careful not to use them in tests
+// that have lots (tens of thousands) of positive Boolean assertions.
+//
+// To use this class with EXPECT_PRED_FORMAT assertions such as:
+//
+//   // Verifies that Foo() returns an even number.
+//   EXPECT_PRED_FORMAT1(IsEven, Foo());
+//
+// you need to define:
+//
+//   testing::AssertionResult IsEven(const char* expr, int n) {
+//     if ((n % 2) == 0)
+//       return testing::AssertionSuccess();
+//     else
+//       return testing::AssertionFailure()
+//         << "Expected: " << expr << " is even\n  Actual: it's " << n;
+//   }
+//
+// If Foo() returns 5, you will see the following message:
+//
+//   Expected: Foo() is even
+//     Actual: it's 5
+//
+class GTEST_API_ AssertionResult {
+ public:
+  // Copy constructor.
+  // Used in EXPECT_TRUE/FALSE(assertion_result).
+  AssertionResult(const AssertionResult& other);
+
+// C4800 is a level 3 warning in Visual Studio 2015 and earlier.
+// This warning is not emitted in Visual Studio 2017.
+// This warning is off by default starting in Visual Studio 2019 but can be
+// enabled with command-line options.
+#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
+  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */)
+#endif
+
+  // Used in the EXPECT_TRUE/FALSE(bool_expression).
+  //
+  // T must be contextually convertible to bool.
+  //
+  // The second parameter prevents this overload from being considered if
+  // the argument is implicitly convertible to AssertionResult. In that case
+  // we want AssertionResult's copy constructor to be used.
+  template <typename T>
+  explicit AssertionResult(
+      const T& success,
+      typename std::enable_if<
+          !std::is_convertible<T, AssertionResult>::value>::type*
+      /*enabler*/
+      = nullptr)
+      : success_(success) {}
+
+#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
+  GTEST_DISABLE_MSC_WARNINGS_POP_()
+#endif
+
+  // Assignment operator.
+  AssertionResult& operator=(AssertionResult other) {
+    swap(other);
+    return *this;
+  }
+
+  // Returns true if and only if the assertion succeeded.
+  operator bool() const { return success_; }  // NOLINT
+
+  // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
+  AssertionResult operator!() const;
+
+  // Returns the text streamed into this AssertionResult. Test assertions
+  // use it when they fail (i.e., the predicate's outcome doesn't match the
+  // assertion's expectation). When nothing has been streamed into the
+  // object, returns an empty string.
+  const char* message() const {
+    return message_ != nullptr ? message_->c_str() : "";
+  }
+  // Deprecated; please use message() instead.
+  const char* failure_message() const { return message(); }
+
+  // Streams a custom failure message into this object.
+  template <typename T>
+  AssertionResult& operator<<(const T& value) {
+    AppendMessage(Message() << value);
+    return *this;
+  }
+
+  // Allows streaming basic output manipulators such as endl or flush into
+  // this object.
+  AssertionResult& operator<<(
+      ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) {
+    AppendMessage(Message() << basic_manipulator);
+    return *this;
+  }
+
+ private:
+  // Appends the contents of message to message_.
+  void AppendMessage(const Message& a_message) {
+    if (message_ == nullptr) message_ = ::std::make_unique<::std::string>();
+    message_->append(a_message.GetString().c_str());
+  }
+
+  // Swap the contents of this AssertionResult with other.
+  void swap(AssertionResult& other);
+
+  // Stores result of the assertion predicate.
+  bool success_;
+  // Stores the message describing the condition in case the expectation
+  // construct is not satisfied with the predicate's outcome.
+  // Referenced via a pointer to avoid taking too much stack frame space
+  // with test assertions.
+  std::unique_ptr< ::std::string> message_;
+};
+
+// Makes a successful assertion result.
+GTEST_API_ AssertionResult AssertionSuccess();
+
+// Makes a failed assertion result.
+GTEST_API_ AssertionResult AssertionFailure();
+
+// Makes a failed assertion result with the given failure message.
+// Deprecated; use AssertionFailure() << msg.
+GTEST_API_ AssertionResult AssertionFailure(const Message& msg);
+
+}  // namespace testing
+
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4251
+
+#endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_ASSERTION_RESULT_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h
index adfb192..08fef8c 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-death-test.h
@@ -27,21 +27,21 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the public API for death tests.  It is
 // #included by gtest.h so a user doesn't need to include this
 // directly.
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_
 
 #include "gtest/internal/gtest-death-test-internal.h"
 
-namespace testing {
-
 // This flag controls the style of death tests.  Valid values are "threadsafe",
 // meaning that the death test child process will re-execute the test binary
 // from the start, running only a single death test, or "fast",
@@ -49,7 +49,9 @@
 // after forking.
 GTEST_DECLARE_string_(death_test_style);
 
-#if GTEST_HAS_DEATH_TEST
+namespace testing {
+
+#ifdef GTEST_HAS_DEATH_TEST
 
 namespace internal {
 
@@ -97,9 +99,12 @@
 //
 //   ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!");
 //
+// The final parameter to each of these macros is a matcher applied to any data
+// the sub-process wrote to stderr.  For compatibility with existing tests, a
+// bare string is interpreted as a regular expression matcher.
+//
 // On the regular expressions used in death tests:
 //
-//   GOOGLETEST_CM0005 DO NOT DELETE
 //   On POSIX-compliant systems (*nix), we use the <regex.h> library,
 //   which uses the POSIX extended regex syntax.
 //
@@ -162,27 +167,27 @@
 //   directory in PATH.
 //
 
-// Asserts that a given statement causes the program to exit, with an
-// integer exit status that satisfies predicate, and emitting error output
-// that matches regex.
-# define ASSERT_EXIT(statement, predicate, regex) \
-    GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_)
+// Asserts that a given `statement` causes the program to exit, with an
+// integer exit status that satisfies `predicate`, and emitting error output
+// that matches `matcher`.
+#define ASSERT_EXIT(statement, predicate, matcher) \
+  GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_FATAL_FAILURE_)
 
-// Like ASSERT_EXIT, but continues on to successive tests in the
+// Like `ASSERT_EXIT`, but continues on to successive tests in the
 // test suite, if any:
-# define EXPECT_EXIT(statement, predicate, regex) \
-    GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_)
+#define EXPECT_EXIT(statement, predicate, matcher) \
+  GTEST_DEATH_TEST_(statement, predicate, matcher, GTEST_NONFATAL_FAILURE_)
 
-// Asserts that a given statement causes the program to exit, either by
+// Asserts that a given `statement` causes the program to exit, either by
 // explicitly exiting with a nonzero exit code or being killed by a
-// signal, and emitting error output that matches regex.
-# define ASSERT_DEATH(statement, regex) \
-    ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
+// signal, and emitting error output that matches `matcher`.
+#define ASSERT_DEATH(statement, matcher) \
+  ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
 
-// Like ASSERT_DEATH, but continues on to successive tests in the
+// Like `ASSERT_DEATH`, but continues on to successive tests in the
 // test suite, if any:
-# define EXPECT_DEATH(statement, regex) \
-    EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex)
+#define EXPECT_DEATH(statement, matcher) \
+  EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, matcher)
 
 // Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*:
 
@@ -193,22 +198,23 @@
   ExitedWithCode(const ExitedWithCode&) = default;
   void operator=(const ExitedWithCode& other) = delete;
   bool operator()(int exit_status) const;
+
  private:
   const int exit_code_;
 };
 
-# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
+#if !defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_FUCHSIA)
 // Tests that an exit code describes an exit due to termination by a
 // given signal.
-// GOOGLETEST_CM0006 DO NOT DELETE
 class GTEST_API_ KilledBySignal {
  public:
   explicit KilledBySignal(int signum);
   bool operator()(int exit_status) const;
+
  private:
   const int signum_;
 };
-# endif  // !GTEST_OS_WINDOWS
+#endif  // !GTEST_OS_WINDOWS
 
 // EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode.
 // The death testing framework causes this to have interesting semantics,
@@ -253,23 +259,21 @@
 //   EXPECT_EQ(12, DieInDebugOr12(&sideeffect));
 // }, "death");
 //
-# ifdef NDEBUG
+#ifdef NDEBUG
 
-#  define EXPECT_DEBUG_DEATH(statement, regex) \
+#define EXPECT_DEBUG_DEATH(statement, regex) \
   GTEST_EXECUTE_STATEMENT_(statement, regex)
 
-#  define ASSERT_DEBUG_DEATH(statement, regex) \
+#define ASSERT_DEBUG_DEATH(statement, regex) \
   GTEST_EXECUTE_STATEMENT_(statement, regex)
 
-# else
+#else
 
-#  define EXPECT_DEBUG_DEATH(statement, regex) \
-  EXPECT_DEATH(statement, regex)
+#define EXPECT_DEBUG_DEATH(statement, regex) EXPECT_DEATH(statement, regex)
 
-#  define ASSERT_DEBUG_DEATH(statement, regex) \
-  ASSERT_DEATH(statement, regex)
+#define ASSERT_DEBUG_DEATH(statement, regex) ASSERT_DEATH(statement, regex)
 
-# endif  // NDEBUG for EXPECT_DEBUG_DEATH
+#endif  // NDEBUG for EXPECT_DEBUG_DEATH
 #endif  // GTEST_HAS_DEATH_TEST
 
 // This macro is used for implementing macros such as
@@ -307,34 +311,33 @@
 //  statement unconditionally returns or throws. The Message constructor at
 //  the end allows the syntax of streaming additional messages into the
 //  macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH.
-# define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator) \
-    GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-    if (::testing::internal::AlwaysTrue()) { \
-      GTEST_LOG_(WARNING) \
-          << "Death tests are not supported on this platform.\n" \
-          << "Statement '" #statement "' cannot be verified."; \
-    } else if (::testing::internal::AlwaysFalse()) { \
-      ::testing::internal::RE::PartialMatch(".*", (regex)); \
-      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-      terminator; \
-    } else \
-      ::testing::Message()
+#define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator)             \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                                \
+  if (::testing::internal::AlwaysTrue()) {                                     \
+    GTEST_LOG_(WARNING) << "Death tests are not supported on this platform.\n" \
+                        << "Statement '" #statement "' cannot be verified.";   \
+  } else if (::testing::internal::AlwaysFalse()) {                             \
+    ::testing::internal::RE::PartialMatch(".*", (regex));                      \
+    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);                 \
+    terminator;                                                                \
+  } else                                                                       \
+    ::testing::Message()
 
 // EXPECT_DEATH_IF_SUPPORTED(statement, regex) and
 // ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if
 // death tests are supported; otherwise they just issue a warning.  This is
 // useful when you are combining death test assertions with normal test
 // assertions in one test.
-#if GTEST_HAS_DEATH_TEST
-# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
-    EXPECT_DEATH(statement, regex)
-# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
-    ASSERT_DEATH(statement, regex)
+#ifdef GTEST_HAS_DEATH_TEST
+#define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
+  EXPECT_DEATH(statement, regex)
+#define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
+  ASSERT_DEATH(statement, regex)
 #else
-# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
-    GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, )
-# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
-    GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return)
+#define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \
+  GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, )
+#define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \
+  GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return)
 #endif
 
 }  // namespace testing
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h
index 2bd3dcf..eae210e 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-matchers.h
@@ -32,10 +32,15 @@
 // This file implements just enough of the matcher interface to allow
 // EXPECT_DEATH and friends to accept a matcher argument.
 
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
+
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_MATCHERS_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_MATCHERS_H_
 
 #include <atomic>
+#include <functional>
 #include <memory>
 #include <ostream>
 #include <string>
@@ -98,17 +103,17 @@
  private:
   ::std::ostream* const stream_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(MatchResultListener);
+  MatchResultListener(const MatchResultListener&) = delete;
+  MatchResultListener& operator=(const MatchResultListener&) = delete;
 };
 
-inline MatchResultListener::~MatchResultListener() {
-}
+inline MatchResultListener::~MatchResultListener() = default;
 
 // An instance of a subclass of this knows how to describe itself as a
 // matcher.
-class MatcherDescriberInterface {
+class GTEST_API_ MatcherDescriberInterface {
  public:
-  virtual ~MatcherDescriberInterface() {}
+  virtual ~MatcherDescriberInterface() = default;
 
   // Describes this matcher to an ostream.  The function should print
   // a verb phrase that describes the property a value matching this
@@ -174,38 +179,14 @@
 
 namespace internal {
 
-struct AnyEq {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a == b; }
-};
-struct AnyNe {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a != b; }
-};
-struct AnyLt {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a < b; }
-};
-struct AnyGt {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a > b; }
-};
-struct AnyLe {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a <= b; }
-};
-struct AnyGe {
-  template <typename A, typename B>
-  bool operator()(const A& a, const B& b) const { return a >= b; }
-};
-
 // A match result listener that ignores the explanation.
 class DummyMatchResultListener : public MatchResultListener {
  public:
   DummyMatchResultListener() : MatchResultListener(nullptr) {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(DummyMatchResultListener);
+  DummyMatchResultListener(const DummyMatchResultListener&) = delete;
+  DummyMatchResultListener& operator=(const DummyMatchResultListener&) = delete;
 };
 
 // A match result listener that forwards the explanation to a given
@@ -217,7 +198,9 @@
       : MatchResultListener(os) {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamMatchResultListener);
+  StreamMatchResultListener(const StreamMatchResultListener&) = delete;
+  StreamMatchResultListener& operator=(const StreamMatchResultListener&) =
+      delete;
 };
 
 struct SharedPayloadBase {
@@ -284,17 +267,18 @@
   }
 
  protected:
-  MatcherBase() : vtable_(nullptr) {}
+  MatcherBase() : vtable_(nullptr), buffer_() {}
 
   // Constructs a matcher from its implementation.
   template <typename U>
-  explicit MatcherBase(const MatcherInterface<U>* impl) {
+  explicit MatcherBase(const MatcherInterface<U>* impl)
+      : vtable_(nullptr), buffer_() {
     Init(impl);
   }
 
   template <typename M, typename = typename std::remove_reference<
                             M>::type::is_gtest_matcher>
-  MatcherBase(M&& m) {  // NOLINT
+  MatcherBase(M&& m) : vtable_(nullptr), buffer_() {  // NOLINT
     Init(std::forward<M>(m));
   }
 
@@ -420,8 +404,8 @@
     static const M& Get(const MatcherBase& m) {
       // When inlined along with Init, need to be explicit to avoid violating
       // strict aliasing rules.
-      const M *ptr = static_cast<const M*>(
-          static_cast<const void*>(&m.buffer_));
+      const M* ptr =
+          static_cast<const M*>(static_cast<const void*>(&m.buffer_));
       return *ptr;
     }
     static void Init(MatcherBase& m, M impl) {
@@ -510,7 +494,7 @@
 class GTEST_API_ Matcher<const std::string&>
     : public internal::MatcherBase<const std::string&> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const std::string&>* impl)
       : internal::MatcherBase<const std::string&>(impl) {}
@@ -532,7 +516,7 @@
 class GTEST_API_ Matcher<std::string>
     : public internal::MatcherBase<std::string> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const std::string&>* impl)
       : internal::MatcherBase<std::string>(impl) {}
@@ -560,7 +544,7 @@
 class GTEST_API_ Matcher<const internal::StringView&>
     : public internal::MatcherBase<const internal::StringView&> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const internal::StringView&>* impl)
       : internal::MatcherBase<const internal::StringView&>(impl) {}
@@ -586,7 +570,7 @@
 class GTEST_API_ Matcher<internal::StringView>
     : public internal::MatcherBase<internal::StringView> {
  public:
-  Matcher() {}
+  Matcher() = default;
 
   explicit Matcher(const MatcherInterface<const internal::StringView&>* impl)
       : internal::MatcherBase<internal::StringView>(impl) {}
@@ -738,50 +722,53 @@
 };
 
 template <typename Rhs>
-class EqMatcher : public ComparisonBase<EqMatcher<Rhs>, Rhs, AnyEq> {
+class EqMatcher : public ComparisonBase<EqMatcher<Rhs>, Rhs, std::equal_to<>> {
  public:
   explicit EqMatcher(const Rhs& rhs)
-      : ComparisonBase<EqMatcher<Rhs>, Rhs, AnyEq>(rhs) { }
+      : ComparisonBase<EqMatcher<Rhs>, Rhs, std::equal_to<>>(rhs) {}
   static const char* Desc() { return "is equal to"; }
   static const char* NegatedDesc() { return "isn't equal to"; }
 };
 template <typename Rhs>
-class NeMatcher : public ComparisonBase<NeMatcher<Rhs>, Rhs, AnyNe> {
+class NeMatcher
+    : public ComparisonBase<NeMatcher<Rhs>, Rhs, std::not_equal_to<>> {
  public:
   explicit NeMatcher(const Rhs& rhs)
-      : ComparisonBase<NeMatcher<Rhs>, Rhs, AnyNe>(rhs) { }
+      : ComparisonBase<NeMatcher<Rhs>, Rhs, std::not_equal_to<>>(rhs) {}
   static const char* Desc() { return "isn't equal to"; }
   static const char* NegatedDesc() { return "is equal to"; }
 };
 template <typename Rhs>
-class LtMatcher : public ComparisonBase<LtMatcher<Rhs>, Rhs, AnyLt> {
+class LtMatcher : public ComparisonBase<LtMatcher<Rhs>, Rhs, std::less<>> {
  public:
   explicit LtMatcher(const Rhs& rhs)
-      : ComparisonBase<LtMatcher<Rhs>, Rhs, AnyLt>(rhs) { }
+      : ComparisonBase<LtMatcher<Rhs>, Rhs, std::less<>>(rhs) {}
   static const char* Desc() { return "is <"; }
   static const char* NegatedDesc() { return "isn't <"; }
 };
 template <typename Rhs>
-class GtMatcher : public ComparisonBase<GtMatcher<Rhs>, Rhs, AnyGt> {
+class GtMatcher : public ComparisonBase<GtMatcher<Rhs>, Rhs, std::greater<>> {
  public:
   explicit GtMatcher(const Rhs& rhs)
-      : ComparisonBase<GtMatcher<Rhs>, Rhs, AnyGt>(rhs) { }
+      : ComparisonBase<GtMatcher<Rhs>, Rhs, std::greater<>>(rhs) {}
   static const char* Desc() { return "is >"; }
   static const char* NegatedDesc() { return "isn't >"; }
 };
 template <typename Rhs>
-class LeMatcher : public ComparisonBase<LeMatcher<Rhs>, Rhs, AnyLe> {
+class LeMatcher
+    : public ComparisonBase<LeMatcher<Rhs>, Rhs, std::less_equal<>> {
  public:
   explicit LeMatcher(const Rhs& rhs)
-      : ComparisonBase<LeMatcher<Rhs>, Rhs, AnyLe>(rhs) { }
+      : ComparisonBase<LeMatcher<Rhs>, Rhs, std::less_equal<>>(rhs) {}
   static const char* Desc() { return "is <="; }
   static const char* NegatedDesc() { return "isn't <="; }
 };
 template <typename Rhs>
-class GeMatcher : public ComparisonBase<GeMatcher<Rhs>, Rhs, AnyGe> {
+class GeMatcher
+    : public ComparisonBase<GeMatcher<Rhs>, Rhs, std::greater_equal<>> {
  public:
   explicit GeMatcher(const Rhs& rhs)
-      : ComparisonBase<GeMatcher<Rhs>, Rhs, AnyGe>(rhs) { }
+      : ComparisonBase<GeMatcher<Rhs>, Rhs, std::greater_equal<>>(rhs) {}
   static const char* Desc() { return "is >="; }
   static const char* NegatedDesc() { return "isn't >="; }
 };
@@ -822,7 +809,7 @@
   template <class MatcheeStringType>
   bool MatchAndExplain(const MatcheeStringType& s,
                        MatchResultListener* /* listener */) const {
-    const std::string& s2(s);
+    const std::string s2(s);
     return full_match_ ? RE::FullMatch(s2, *regex_)
                        : RE::PartialMatch(s2, *regex_);
   }
@@ -872,12 +859,16 @@
 // Note: if the parameter of Eq() were declared as const T&, Eq("foo")
 // wouldn't compile.
 template <typename T>
-inline internal::EqMatcher<T> Eq(T x) { return internal::EqMatcher<T>(x); }
+inline internal::EqMatcher<T> Eq(T x) {
+  return internal::EqMatcher<T>(x);
+}
 
 // Constructs a Matcher<T> from a 'value' of type T.  The constructed
 // matcher matches any value that's equal to 'value'.
 template <typename T>
-Matcher<T>::Matcher(T value) { *this = Eq(value); }
+Matcher<T>::Matcher(T value) {
+  *this = Eq(value);
+}
 
 // Creates a monomorphic matcher that matches anything with type Lhs
 // and equal to rhs.  A user may need to use this instead of Eq(...)
@@ -892,7 +883,9 @@
 // can always write Matcher<T>(Lt(5)) to be explicit about the type,
 // for example.
 template <typename Lhs, typename Rhs>
-inline Matcher<Lhs> TypedEq(const Rhs& rhs) { return Eq(rhs); }
+inline Matcher<Lhs> TypedEq(const Rhs& rhs) {
+  return Eq(rhs);
+}
 
 // Creates a polymorphic matcher that matches anything >= x.
 template <typename Rhs>
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h
index becfd49..448ac6b 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-message.h
@@ -27,7 +27,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the Message class.
@@ -42,17 +41,28 @@
 // to CHANGE WITHOUT NOTICE.  Therefore DO NOT DEPEND ON IT in a user
 // program!
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
 
 #include <limits>
 #include <memory>
+#include <ostream>
 #include <sstream>
+#include <string>
 
 #include "gtest/internal/gtest-port.h"
 
+#ifdef GTEST_HAS_ABSL
+#include <type_traits>
+
+#include "absl/strings/has_absl_stringify.h"
+#include "absl/strings/str_cat.h"
+#endif  // GTEST_HAS_ABSL
+
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
 
@@ -108,10 +118,19 @@
     *ss_ << str;
   }
 
-  // Streams a non-pointer value to this object.
-  template <typename T>
-  inline Message& operator <<(const T& val) {
-    // Some libraries overload << for STL containers.  These
+  // Streams a non-pointer value to this object. If building a version of
+  // GoogleTest with ABSL, this overload is only enabled if the value does not
+  // have an AbslStringify definition.
+  template <
+      typename T
+#ifdef GTEST_HAS_ABSL
+      ,
+      typename std::enable_if<!absl::HasAbslStringify<T>::value,  // NOLINT
+                              int>::type = 0
+#endif  // GTEST_HAS_ABSL
+      >
+  inline Message& operator<<(const T& val) {
+        // Some libraries overload << for STL containers.  These
     // overloads are defined in the global namespace instead of ::std.
     //
     // C++'s symbol lookup rule (i.e. Koenig lookup) says that these
@@ -125,11 +144,26 @@
     // from the global namespace.  With this using declaration,
     // overloads of << defined in the global namespace and those
     // visible via Koenig lookup are both exposed in this function.
-    using ::operator <<;
+    using ::operator<<;
     *ss_ << val;
     return *this;
   }
 
+#ifdef GTEST_HAS_ABSL
+  // Streams a non-pointer value with an AbslStringify definition to this
+  // object.
+  template <typename T,
+            typename std::enable_if<absl::HasAbslStringify<T>::value,  // NOLINT
+                                    int>::type = 0>
+  inline Message& operator<<(const T& val) {
+    // ::operator<< is needed here for a similar reason as with the non-Abseil
+    // version above
+    using ::operator<<;
+    *ss_ << absl::StrCat(val);
+    return *this;
+  }
+#endif  // GTEST_HAS_ABSL
+
   // Streams a pointer value to this object.
   //
   // This function is an overload of the previous one.  When you
@@ -144,7 +178,7 @@
   // ensure consistent result across compilers, we always treat NULL
   // as "(null)".
   template <typename T>
-  inline Message& operator <<(T* const& pointer) {  // NOLINT
+  inline Message& operator<<(T* const& pointer) {  // NOLINT
     if (pointer == nullptr) {
       *ss_ << "(null)";
     } else {
@@ -159,25 +193,23 @@
   // templatized version above.  Without this definition, streaming
   // endl or other basic IO manipulators to Message will confuse the
   // compiler.
-  Message& operator <<(BasicNarrowIoManip val) {
+  Message& operator<<(BasicNarrowIoManip val) {
     *ss_ << val;
     return *this;
   }
 
   // Instead of 1/0, we want to see true/false for bool values.
-  Message& operator <<(bool b) {
-    return *this << (b ? "true" : "false");
-  }
+  Message& operator<<(bool b) { return *this << (b ? "true" : "false"); }
 
   // These two overloads allow streaming a wide C string to a Message
   // using the UTF-8 encoding.
-  Message& operator <<(const wchar_t* wide_c_str);
-  Message& operator <<(wchar_t* wide_c_str);
+  Message& operator<<(const wchar_t* wide_c_str);
+  Message& operator<<(wchar_t* wide_c_str);
 
 #if GTEST_HAS_STD_WSTRING
   // Converts the given wide string to a narrow string using the UTF-8
   // encoding, and streams the result to this Message object.
-  Message& operator <<(const ::std::wstring& wstr);
+  Message& operator<<(const ::std::wstring& wstr);
 #endif  // GTEST_HAS_STD_WSTRING
 
   // Gets the text streamed to this object so far as an std::string.
@@ -196,7 +228,7 @@
 };
 
 // Streams a Message to an ostream.
-inline std::ostream& operator <<(std::ostream& os, const Message& sb) {
+inline std::ostream& operator<<(std::ostream& os, const Message& sb) {
   return os << sb.GetString();
 }
 
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h
index 804e702..49a47ea 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-param-test.h
@@ -26,11 +26,14 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // Macros and functions for implementing parameterized tests
 // in Google C++ Testing and Mocking Framework (Google Test)
-//
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
+
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
 
@@ -353,9 +356,7 @@
 // }
 // INSTANTIATE_TEST_SUITE_P(BoolSequence, FlagDependentTest, Bool());
 //
-inline internal::ParamGenerator<bool> Bool() {
-  return Values(false, true);
-}
+inline internal::ParamGenerator<bool> Bool() { return Values(false, true); }
 
 // Combine() allows the user to combine two or more sequences to produce
 // values of a Cartesian product of those sequences' elements.
@@ -406,9 +407,50 @@
   return internal::CartesianProductHolder<Generator...>(g...);
 }
 
+// ConvertGenerator() wraps a parameter generator in order to cast each produced
+// value through a known type before supplying it to the test suite
+//
+// Synopsis:
+// ConvertGenerator<T>(gen)
+//   - returns a generator producing the same elements as generated by gen, but
+//     each element is static_cast to type T before being returned
+//
+// It is useful when using the Combine() function to get the generated
+// parameters in a custom type instead of std::tuple
+//
+// Example:
+//
+// This will instantiate tests in test suite AnimalTest each one with
+// the parameter values tuple("cat", BLACK), tuple("cat", WHITE),
+// tuple("dog", BLACK), and tuple("dog", WHITE):
+//
+// enum Color { BLACK, GRAY, WHITE };
+// struct ParamType {
+//   using TupleT = std::tuple<const char*, Color>;
+//   std::string animal;
+//   Color color;
+//   ParamType(TupleT t) : animal(std::get<0>(t)), color(std::get<1>(t)) {}
+// };
+// class AnimalTest
+//     : public testing::TestWithParam<ParamType> {...};
+//
+// TEST_P(AnimalTest, AnimalLooksNice) {...}
+//
+// INSTANTIATE_TEST_SUITE_P(AnimalVariations, AnimalTest,
+//                          ConvertGenerator<ParamType::TupleT>(
+//                              Combine(Values("cat", "dog"),
+//                                      Values(BLACK, WHITE))));
+//
+template <typename T>
+internal::ParamConverterGenerator<T> ConvertGenerator(
+    internal::ParamGenerator<T> gen) {
+  return internal::ParamConverterGenerator<T>(gen);
+}
+
 #define TEST_P(test_suite_name, test_name)                                     \
   class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                     \
-      : public test_suite_name {                                               \
+      : public test_suite_name,                                                \
+        private ::testing::internal::GTestNonCopyable {                        \
    public:                                                                     \
     GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {}                    \
     void TestBody() override;                                                  \
@@ -428,8 +470,6 @@
       return 0;                                                                \
     }                                                                          \
     static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_;               \
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name,    \
-                                                           test_name));        \
   };                                                                           \
   int GTEST_TEST_CLASS_NAME_(test_suite_name,                                  \
                              test_name)::gtest_registering_dummy_ =            \
@@ -453,43 +493,42 @@
 #define GTEST_GET_FIRST_(first, ...) first
 #define GTEST_GET_SECOND_(first, second, ...) second
 
-#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...)                \
-  static ::testing::internal::ParamGenerator<test_suite_name::ParamType>      \
-      gtest_##prefix##test_suite_name##_EvalGenerator_() {                    \
-    return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_));        \
-  }                                                                           \
-  static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_(   \
-      const ::testing::TestParamInfo<test_suite_name::ParamType>& info) {     \
-    if (::testing::internal::AlwaysFalse()) {                                 \
-      ::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_(      \
-          __VA_ARGS__,                                                        \
-          ::testing::internal::DefaultParamName<test_suite_name::ParamType>,  \
-          DUMMY_PARAM_)));                                                    \
-      auto t = std::make_tuple(__VA_ARGS__);                                  \
-      static_assert(std::tuple_size<decltype(t)>::value <= 2,                 \
-                    "Too Many Args!");                                        \
-    }                                                                         \
-    return ((GTEST_EXPAND_(GTEST_GET_SECOND_(                                 \
-        __VA_ARGS__,                                                          \
-        ::testing::internal::DefaultParamName<test_suite_name::ParamType>,    \
-        DUMMY_PARAM_))))(info);                                               \
-  }                                                                           \
-  static int gtest_##prefix##test_suite_name##_dummy_                         \
-      GTEST_ATTRIBUTE_UNUSED_ =                                               \
-          ::testing::UnitTest::GetInstance()                                  \
-              ->parameterized_test_registry()                                 \
-              .GetTestSuitePatternHolder<test_suite_name>(                    \
-                  GTEST_STRINGIFY_(test_suite_name),                          \
-                  ::testing::internal::CodeLocation(__FILE__, __LINE__))      \
-              ->AddTestSuiteInstantiation(                                    \
-                  GTEST_STRINGIFY_(prefix),                                   \
-                  &gtest_##prefix##test_suite_name##_EvalGenerator_,          \
-                  &gtest_##prefix##test_suite_name##_EvalGenerateName_,       \
+#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...)               \
+  static ::testing::internal::ParamGenerator<test_suite_name::ParamType>     \
+      gtest_##prefix##test_suite_name##_EvalGenerator_() {                   \
+    return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_));       \
+  }                                                                          \
+  static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_(  \
+      const ::testing::TestParamInfo<test_suite_name::ParamType>& info) {    \
+    if (::testing::internal::AlwaysFalse()) {                                \
+      ::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_(     \
+          __VA_ARGS__,                                                       \
+          ::testing::internal::DefaultParamName<test_suite_name::ParamType>, \
+          DUMMY_PARAM_)));                                                   \
+      auto t = std::make_tuple(__VA_ARGS__);                                 \
+      static_assert(std::tuple_size<decltype(t)>::value <= 2,                \
+                    "Too Many Args!");                                       \
+    }                                                                        \
+    return ((GTEST_EXPAND_(GTEST_GET_SECOND_(                                \
+        __VA_ARGS__,                                                         \
+        ::testing::internal::DefaultParamName<test_suite_name::ParamType>,   \
+        DUMMY_PARAM_))))(info);                                              \
+  }                                                                          \
+  static int gtest_##prefix##test_suite_name##_dummy_                        \
+      GTEST_ATTRIBUTE_UNUSED_ =                                              \
+          ::testing::UnitTest::GetInstance()                                 \
+              ->parameterized_test_registry()                                \
+              .GetTestSuitePatternHolder<test_suite_name>(                   \
+                  GTEST_STRINGIFY_(test_suite_name),                         \
+                  ::testing::internal::CodeLocation(__FILE__, __LINE__))     \
+              ->AddTestSuiteInstantiation(                                   \
+                  GTEST_STRINGIFY_(prefix),                                  \
+                  &gtest_##prefix##test_suite_name##_EvalGenerator_,         \
+                  &gtest_##prefix##test_suite_name##_EvalGenerateName_,      \
                   __FILE__, __LINE__)
 
-
 // Allow Marking a Parameterized test class as not needing to be instantiated.
-#define GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(T)                   \
+#define GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(T)                  \
   namespace gtest_do_not_use_outside_namespace_scope {}                   \
   static const ::testing::internal::MarkAsIgnored gtest_allow_ignore_##T( \
       GTEST_STRINGIFY_(T))
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h
index 978420e..5928681 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-printers.h
@@ -27,7 +27,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-
 // Google Test - The Google C++ Testing and Mocking Framework
 //
 // This file implements a universal value printer that can print a
@@ -44,6 +43,9 @@
 //   1. foo::PrintTo(const T&, ostream*)
 //   2. operator<<(ostream&, const T&) defined in either foo or the
 //      global namespace.
+// * Prefer AbslStringify(..) to operator<<(..), per https://abseil.io/tips/215.
+// * Define foo::PrintTo(..) if the type already has AbslStringify(..), but an
+//   alternative presentation in test results is of interest.
 //
 // However if T is an STL-style container then it is printed element-wise
 // unless foo::PrintTo(const T&, ostream*) is defined. Note that
@@ -95,7 +97,9 @@
 // being defined as many user-defined container types don't have
 // value_type.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PRINTERS_H_
@@ -107,12 +111,21 @@
 #include <string>
 #include <tuple>
 #include <type_traits>
+#include <typeinfo>
 #include <utility>
 #include <vector>
 
+#ifdef GTEST_HAS_ABSL
+#include "absl/strings/has_absl_stringify.h"
+#include "absl/strings/str_cat.h"
+#endif  // GTEST_HAS_ABSL
 #include "gtest/internal/gtest-internal.h"
 #include "gtest/internal/gtest-port.h"
 
+#if GTEST_INTERNAL_HAS_STD_SPAN
+#include <span>  // NOLINT
+#endif  // GTEST_INTERNAL_HAS_STD_SPAN
+
 namespace testing {
 
 // Definitions in the internal* namespaces are subject to change without notice.
@@ -122,13 +135,32 @@
 template <typename T>
 void UniversalPrint(const T& value, ::std::ostream* os);
 
+template <typename T>
+struct IsStdSpan {
+  static constexpr bool value = false;
+};
+
+#if GTEST_INTERNAL_HAS_STD_SPAN
+template <typename E>
+struct IsStdSpan<std::span<E>> {
+  static constexpr bool value = true;
+};
+#endif  // GTEST_INTERNAL_HAS_STD_SPAN
+
 // Used to print an STL-style container when the user doesn't define
 // a PrintTo() for it.
+//
+// NOTE: Since std::span does not have const_iterator until C++23, it would
+// fail IsContainerTest before C++23. However, IsContainerTest only uses
+// the presence of const_iterator to avoid treating iterators as containers
+// because of iterator::iterator. Which means std::span satisfies the *intended*
+// condition of IsContainerTest.
 struct ContainerPrinter {
   template <typename T,
             typename = typename std::enable_if<
-                (sizeof(IsContainerTest<T>(0)) == sizeof(IsContainer)) &&
-                !IsRecursiveContainer<T>::value>::type>
+                ((sizeof(IsContainerTest<T>(0)) == sizeof(IsContainer)) &&
+                 !IsRecursiveContainer<T>::value) ||
+                IsStdSpan<T>::value>::type>
   static void PrintValue(const T& container, std::ostream* os) {
     const size_t kMaxCount = 32;  // The maximum number of elements to print.
     *os << '{';
@@ -176,6 +208,13 @@
   }
 };
 
+// Android local change: There is a non-standard hack in android-base/logging.h
+// which emits a warning when a string pointer is printed. Ignore the warning
+// in this generic printer.
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wuser-defined-warnings"
+#endif
 struct PointerPrinter {
   template <typename T>
   static void PrintValue(T* p, ::std::ostream* os) {
@@ -189,6 +228,9 @@
     }
   }
 };
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
 
 namespace internal_stream_operator_without_lexical_name_lookup {
 
@@ -204,12 +246,13 @@
             // Don't accept member pointers here. We'd print them via implicit
             // conversion to bool, which isn't useful.
             typename = typename std::enable_if<
-                !std::is_member_pointer<T>::value>::type,
-            // Only accept types for which we can find a streaming operator via
-            // ADL (possibly involving implicit conversions).
-            typename = decltype(std::declval<std::ostream&>()
-                                << std::declval<const T&>())>
-  static void PrintValue(const T& value, ::std::ostream* os) {
+                !std::is_member_pointer<T>::value>::type>
+  // Only accept types for which we can find a streaming operator via
+  // ADL (possibly involving implicit conversions).
+  // (Use SFINAE via return type, because it seems GCC < 12 doesn't handle name
+  // lookup properly when we do it in the template parameter list.)
+  static auto PrintValue(const T& value, ::std::ostream* os)
+      -> decltype((void)(*os << value)) {
     // Call streaming operator found by ADL, possibly with implicit conversions
     // of the arguments.
     *os << value;
@@ -257,12 +300,21 @@
 #endif
 };
 
+#ifdef GTEST_HAS_ABSL
+struct ConvertibleToAbslStringifyPrinter {
+  template <typename T,
+            typename = typename std::enable_if<
+                absl::HasAbslStringify<T>::value>::type>  // NOLINT
+  static void PrintValue(const T& value, ::std::ostream* os) {
+    *os << absl::StrCat(value);
+  }
+};
+#endif  // GTEST_HAS_ABSL
 
 // Prints the given number of bytes in the given object to the given
 // ostream.
 GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes,
-                                     size_t count,
-                                     ::std::ostream* os);
+                                     size_t count, ::std::ostream* os);
 struct RawBytesPrinter {
   // SFINAE on `sizeof` to make sure we have a complete type.
   template <typename T, size_t = sizeof(T)>
@@ -297,8 +349,8 @@
 //  - Print containers (they have begin/end/etc).
 //  - Print function pointers.
 //  - Print object pointers.
-//  - Use the stream operator, if available.
 //  - Print protocol buffers.
+//  - Use the stream operator, if available.
 //  - Print types convertible to BiggestInt.
 //  - Print types convertible to StringView, if available.
 //  - Fallback to printing the raw bytes of the object.
@@ -306,9 +358,13 @@
 void PrintWithFallback(const T& value, ::std::ostream* os) {
   using Printer = typename FindFirstPrinter<
       T, void, ContainerPrinter, FunctionPointerPrinter, PointerPrinter,
+      ProtobufPrinter,
+#ifdef GTEST_HAS_ABSL
+      ConvertibleToAbslStringifyPrinter,
+#endif  // GTEST_HAS_ABSL
       internal_stream_operator_without_lexical_name_lookup::StreamPrinter,
-      ProtobufPrinter, ConvertibleToIntegerPrinter,
-      ConvertibleToStringViewPrinter, RawBytesPrinter, FallbackPrinter>::type;
+      ConvertibleToIntegerPrinter, ConvertibleToStringViewPrinter,
+      RawBytesPrinter, FallbackPrinter>::type;
   Printer::PrintValue(value, os);
 }
 
@@ -360,7 +416,7 @@
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char);
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t);
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t);
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char8_t);
 GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char8_t);
 #endif
@@ -375,17 +431,17 @@
 // to point to a NUL-terminated string, and thus can print it as a string.
 
 #define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \
-  template <>                                                           \
-  class FormatForComparison<CharType*, OtherStringType> {               \
-   public:                                                              \
-    static ::std::string Format(CharType* value) {                      \
-      return ::testing::PrintToString(value);                           \
-    }                                                                   \
+  template <>                                                            \
+  class FormatForComparison<CharType*, OtherStringType> {                \
+   public:                                                               \
+    static ::std::string Format(CharType* value) {                       \
+      return ::testing::PrintToString(value);                            \
+    }                                                                    \
   }
 
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string);
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string);
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char8_t, ::std::u8string);
 GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char8_t, ::std::u8string);
 #endif
@@ -410,8 +466,8 @@
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 template <typename T1, typename T2>
-std::string FormatForComparisonFailureMessage(
-    const T1& value, const T2& /* other_operand */) {
+std::string FormatForComparisonFailureMessage(const T1& value,
+                                              const T2& /* other_operand */) {
   return FormatForComparison<T1, T2>::Format(value);
 }
 
@@ -473,12 +529,107 @@
 inline void PrintTo(char16_t c, ::std::ostream* os) {
   PrintTo(ImplicitCast_<char32_t>(c), os);
 }
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 inline void PrintTo(char8_t c, ::std::ostream* os) {
   PrintTo(ImplicitCast_<char32_t>(c), os);
 }
 #endif
 
+// gcc/clang __{u,}int128_t
+#if defined(__SIZEOF_INT128__)
+GTEST_API_ void PrintTo(__uint128_t v, ::std::ostream* os);
+GTEST_API_ void PrintTo(__int128_t v, ::std::ostream* os);
+#endif  // __SIZEOF_INT128__
+
+// The default resolution used to print floating-point values uses only
+// 6 digits, which can be confusing if a test compares two values whose
+// difference lies in the 7th digit.  So we'd like to print out numbers
+// in full precision.
+// However if the value is something simple like 1.1, full will print a
+// long string like 1.100000001 due to floating-point numbers not using
+// a base of 10.  This routiune returns an appropriate resolution for a
+// given floating-point number, that is, 6 if it will be accurate, or a
+// max_digits10 value (full precision) if it won't,  for values between
+// 0.0001 and one million.
+// It does this by computing what those digits would be (by multiplying
+// by an appropriate power of 10), then dividing by that power again to
+// see if gets the original value back.
+// A similar algorithm applies for values larger than one million; note
+// that for those values, we must divide to get a six-digit number, and
+// then multiply to possibly get the original value again.
+template <typename FloatType>
+int AppropriateResolution(FloatType val) {
+  int full = std::numeric_limits<FloatType>::max_digits10;
+  if (val < 0) val = -val;
+
+  // Android local change: do not warn about exact float comparison.
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wfloat-equal"
+#endif
+  if (val < 1000000) {
+    FloatType mulfor6 = 1e10;
+    if (val >= 100000.0) {  // 100,000 to 999,999
+      mulfor6 = 1.0;
+    } else if (val >= 10000.0) {
+      mulfor6 = 1e1;
+    } else if (val >= 1000.0) {
+      mulfor6 = 1e2;
+    } else if (val >= 100.0) {
+      mulfor6 = 1e3;
+    } else if (val >= 10.0) {
+      mulfor6 = 1e4;
+    } else if (val >= 1.0) {
+      mulfor6 = 1e5;
+    } else if (val >= 0.1) {
+      mulfor6 = 1e6;
+    } else if (val >= 0.01) {
+      mulfor6 = 1e7;
+    } else if (val >= 0.001) {
+      mulfor6 = 1e8;
+    } else if (val >= 0.0001) {
+      mulfor6 = 1e9;
+    }
+    if (static_cast<FloatType>(static_cast<int32_t>(val * mulfor6 + 0.5)) /
+            mulfor6 ==
+        val)
+      return 6;
+  } else if (val < 1e10) {
+    FloatType divfor6 = 1.0;
+    if (val >= 1e9) {  // 1,000,000,000 to 9,999,999,999
+      divfor6 = 10000;
+    } else if (val >= 1e8) {  // 100,000,000 to 999,999,999
+      divfor6 = 1000;
+    } else if (val >= 1e7) {  // 10,000,000 to 99,999,999
+      divfor6 = 100;
+    } else if (val >= 1e6) {  // 1,000,000 to 9,999,999
+      divfor6 = 10;
+    }
+    if (static_cast<FloatType>(static_cast<int32_t>(val / divfor6 + 0.5)) *
+            divfor6 ==
+        val)
+      return 6;
+  }
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+  return full;
+}
+
+inline void PrintTo(float f, ::std::ostream* os) {
+  auto old_precision = os->precision();
+  os->precision(AppropriateResolution(f));
+  *os << f;
+  os->precision(old_precision);
+}
+
+inline void PrintTo(double d, ::std::ostream* os) {
+  auto old_precision = os->precision();
+  os->precision(AppropriateResolution(d));
+  *os << d;
+  os->precision(old_precision);
+}
+
 // Overloads for C strings.
 GTEST_API_ void PrintTo(const char* s, ::std::ostream* os);
 inline void PrintTo(char* s, ::std::ostream* os) {
@@ -499,20 +650,20 @@
 inline void PrintTo(unsigned char* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const void*>(s), os);
 }
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 // Overloads for u8 strings.
-void PrintTo(const char8_t* s, ::std::ostream* os);
+GTEST_API_ void PrintTo(const char8_t* s, ::std::ostream* os);
 inline void PrintTo(char8_t* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const char8_t*>(s), os);
 }
 #endif
 // Overloads for u16 strings.
-void PrintTo(const char16_t* s, ::std::ostream* os);
+GTEST_API_ void PrintTo(const char16_t* s, ::std::ostream* os);
 inline void PrintTo(char16_t* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const char16_t*>(s), os);
 }
 // Overloads for u32 strings.
-void PrintTo(const char32_t* s, ::std::ostream* os);
+GTEST_API_ void PrintTo(const char32_t* s, ::std::ostream* os);
 inline void PrintTo(char32_t* s, ::std::ostream* os) {
   PrintTo(ImplicitCast_<const char32_t*>(s), os);
 }
@@ -545,13 +696,13 @@
 }
 
 // Overloads for ::std::string.
-GTEST_API_ void PrintStringTo(const ::std::string&s, ::std::ostream* os);
+GTEST_API_ void PrintStringTo(const ::std::string& s, ::std::ostream* os);
 inline void PrintTo(const ::std::string& s, ::std::ostream* os) {
   PrintStringTo(s, os);
 }
 
 // Overloads for ::std::u8string
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 GTEST_API_ void PrintU8StringTo(const ::std::u8string& s, ::std::ostream* os);
 inline void PrintTo(const ::std::u8string& s, ::std::ostream* os) {
   PrintU8StringTo(s, os);
@@ -572,7 +723,7 @@
 
 // Overloads for ::std::wstring.
 #if GTEST_HAS_STD_WSTRING
-GTEST_API_ void PrintWideStringTo(const ::std::wstring&s, ::std::ostream* os);
+GTEST_API_ void PrintWideStringTo(const ::std::wstring& s, ::std::ostream* os);
 inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) {
   PrintWideStringTo(s, os);
 }
@@ -587,6 +738,12 @@
 
 inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullptr)"; }
 
+#if GTEST_HAS_RTTI
+inline void PrintTo(const std::type_info& info, std::ostream* os) {
+  *os << internal::GetTypeName(info);
+}
+#endif  // GTEST_HAS_RTTI
+
 template <typename T>
 void PrintTo(std::reference_wrapper<T> ref, ::std::ostream* os) {
   UniversalPrinter<T&>::Print(ref.get(), os);
@@ -744,6 +901,14 @@
   }
 };
 
+template <>
+class UniversalPrinter<decltype(Nullopt())> {
+ public:
+  static void Print(decltype(Nullopt()), ::std::ostream* os) {
+    *os << "(nullopt)";
+  }
+};
+
 #endif  // GTEST_INTERNAL_HAS_OPTIONAL
 
 #if GTEST_INTERNAL_HAS_VARIANT
@@ -755,7 +920,7 @@
  public:
   static void Print(const Variant<T...>& value, ::std::ostream* os) {
     *os << '(';
-#if GTEST_HAS_ABSL
+#ifdef GTEST_HAS_ABSL
     absl::visit(Visitor{os, value.index()}, value);
 #else
     std::visit(Visitor{os, value.index()}, value);
@@ -802,10 +967,10 @@
   }
 }
 // This overload prints a (const) char array compactly.
-GTEST_API_ void UniversalPrintArray(
-    const char* begin, size_t len, ::std::ostream* os);
+GTEST_API_ void UniversalPrintArray(const char* begin, size_t len,
+                                    ::std::ostream* os);
 
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 // This overload prints a (const) char8_t array compactly.
 GTEST_API_ void UniversalPrintArray(const char8_t* begin, size_t len,
                                     ::std::ostream* os);
@@ -820,8 +985,8 @@
                                     ::std::ostream* os);
 
 // This overload prints a (const) wchar_t array compactly.
-GTEST_API_ void UniversalPrintArray(
-    const wchar_t* begin, size_t len, ::std::ostream* os);
+GTEST_API_ void UniversalPrintArray(const wchar_t* begin, size_t len,
+                                    ::std::ostream* os);
 
 // Implements printing an array type T[N].
 template <typename T, size_t N>
@@ -872,6 +1037,13 @@
     UniversalPrint(value, os);
   }
 };
+template <typename T>
+class UniversalTersePrinter<std::reference_wrapper<T>> {
+ public:
+  static void Print(std::reference_wrapper<T> value, ::std::ostream* os) {
+    UniversalTersePrinter<T>::Print(value.get(), os);
+  }
+};
 template <typename T, size_t N>
 class UniversalTersePrinter<T[N]> {
  public:
@@ -894,7 +1066,7 @@
 class UniversalTersePrinter<char*> : public UniversalTersePrinter<const char*> {
 };
 
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 template <>
 class UniversalTersePrinter<const char8_t*> {
  public:
@@ -980,10 +1152,10 @@
   UniversalPrinter<T1>::Print(value, os);
 }
 
-typedef ::std::vector< ::std::string> Strings;
+typedef ::std::vector<::std::string> Strings;
 
-  // Tersely prints the first N fields of a tuple to a string vector,
-  // one element for each field.
+// Tersely prints the first N fields of a tuple to a string vector,
+// one element for each field.
 template <typename Tuple>
 void TersePrintPrefixToStrings(const Tuple&, std::integral_constant<size_t, 0>,
                                Strings*) {}
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h
index eacef44..c0613b6 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-spi.h
@@ -27,15 +27,14 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // Utilities for testing Google Test itself and code that uses Google Test
 // (e.g. frameworks built on top of Google Test).
 
-// GOOGLETEST_CM0004 DO NOT DELETE
-
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
 
+#include <string>
+
 #include "gtest/gtest.h"
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
@@ -88,7 +87,10 @@
   TestPartResultReporterInterface* old_reporter_;
   TestPartResultArray* const result_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedFakeTestPartResultReporter);
+  ScopedFakeTestPartResultReporter(const ScopedFakeTestPartResultReporter&) =
+      delete;
+  ScopedFakeTestPartResultReporter& operator=(
+      const ScopedFakeTestPartResultReporter&) = delete;
 };
 
 namespace internal {
@@ -104,12 +106,14 @@
   SingleFailureChecker(const TestPartResultArray* results,
                        TestPartResult::Type type, const std::string& substr);
   ~SingleFailureChecker();
+
  private:
   const TestPartResultArray* const results_;
   const TestPartResult::Type type_;
   const std::string substr_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(SingleFailureChecker);
+  SingleFailureChecker(const SingleFailureChecker&) = delete;
+  SingleFailureChecker& operator=(const SingleFailureChecker&) = delete;
 };
 
 }  // namespace internal
@@ -119,7 +123,8 @@
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
 
 // A set of macros for testing Google Test assertions or code that's expected
-// to generate Google Test fatal failures.  It verifies that the given
+// to generate Google Test fatal failures (e.g. a failure from an ASSERT_EQ, but
+// not a non-fatal failure, as from EXPECT_EQ).  It verifies that the given
 // statement will cause exactly one fatal Google Test failure with 'substr'
 // being part of the failure message.
 //
@@ -141,44 +146,46 @@
 // helper macro, due to some peculiarity in how the preprocessor
 // works.  The AcceptsMacroThatExpandsToUnprotectedComma test in
 // gtest_unittest.cc will fail to compile if we do that.
-#define EXPECT_FATAL_FAILURE(statement, substr) \
-  do { \
-    class GTestExpectFatalFailureHelper {\
-     public:\
-      static void Execute() { statement; }\
-    };\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
-        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
-          ::testing::ScopedFakeTestPartResultReporter:: \
-          INTERCEPT_ONLY_CURRENT_THREAD, &gtest_failures);\
-      GTestExpectFatalFailureHelper::Execute();\
-    }\
+#define EXPECT_FATAL_FAILURE(statement, substr)                               \
+  do {                                                                        \
+    class GTestExpectFatalFailureHelper {                                     \
+     public:                                                                  \
+      static void Execute() { statement; }                                    \
+    };                                                                        \
+    ::testing::TestPartResultArray gtest_failures;                            \
+    ::testing::internal::SingleFailureChecker gtest_checker(                  \
+        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \
+    {                                                                         \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(             \
+          ::testing::ScopedFakeTestPartResultReporter::                       \
+              INTERCEPT_ONLY_CURRENT_THREAD,                                  \
+          &gtest_failures);                                                   \
+      GTestExpectFatalFailureHelper::Execute();                               \
+    }                                                                         \
   } while (::testing::internal::AlwaysFalse())
 
-#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
-  do { \
-    class GTestExpectFatalFailureHelper {\
-     public:\
-      static void Execute() { statement; }\
-    };\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
-        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
-          ::testing::ScopedFakeTestPartResultReporter:: \
-          INTERCEPT_ALL_THREADS, &gtest_failures);\
-      GTestExpectFatalFailureHelper::Execute();\
-    }\
+#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr)                \
+  do {                                                                        \
+    class GTestExpectFatalFailureHelper {                                     \
+     public:                                                                  \
+      static void Execute() { statement; }                                    \
+    };                                                                        \
+    ::testing::TestPartResultArray gtest_failures;                            \
+    ::testing::internal::SingleFailureChecker gtest_checker(                  \
+        &gtest_failures, ::testing::TestPartResult::kFatalFailure, (substr)); \
+    {                                                                         \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(             \
+          ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
+          &gtest_failures);                                                   \
+      GTestExpectFatalFailureHelper::Execute();                               \
+    }                                                                         \
   } while (::testing::internal::AlwaysFalse())
 
 // A macro for testing Google Test assertions or code that's expected to
-// generate Google Test non-fatal failures.  It asserts that the given
-// statement will cause exactly one non-fatal Google Test failure with 'substr'
-// being part of the failure message.
+// generate Google Test non-fatal failures (e.g. a failure from an EXPECT_EQ,
+// but not from an ASSERT_EQ). It asserts that the given statement will cause
+// exactly one non-fatal Google Test failure with 'substr' being part of the
+// failure message.
 //
 // There are two different versions of this macro. EXPECT_NONFATAL_FAILURE only
 // affects and considers failures generated in the current thread and
@@ -207,32 +214,37 @@
 // instead of
 //   GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)
 // to avoid an MSVC warning on unreachable code.
-#define EXPECT_NONFATAL_FAILURE(statement, substr) \
-  do {\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
+#define EXPECT_NONFATAL_FAILURE(statement, substr)                    \
+  do {                                                                \
+    ::testing::TestPartResultArray gtest_failures;                    \
+    ::testing::internal::SingleFailureChecker gtest_checker(          \
         &gtest_failures, ::testing::TestPartResult::kNonFatalFailure, \
-        (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
-          ::testing::ScopedFakeTestPartResultReporter:: \
-          INTERCEPT_ONLY_CURRENT_THREAD, &gtest_failures);\
-      if (::testing::internal::AlwaysTrue()) { statement; }\
-    }\
+        (substr));                                                    \
+    {                                                                 \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(     \
+          ::testing::ScopedFakeTestPartResultReporter::               \
+              INTERCEPT_ONLY_CURRENT_THREAD,                          \
+          &gtest_failures);                                           \
+      if (::testing::internal::AlwaysTrue()) {                        \
+        statement;                                                    \
+      }                                                               \
+    }                                                                 \
   } while (::testing::internal::AlwaysFalse())
 
-#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \
-  do {\
-    ::testing::TestPartResultArray gtest_failures;\
-    ::testing::internal::SingleFailureChecker gtest_checker(\
-        &gtest_failures, ::testing::TestPartResult::kNonFatalFailure, \
-        (substr));\
-    {\
-      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\
+#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr)             \
+  do {                                                                        \
+    ::testing::TestPartResultArray gtest_failures;                            \
+    ::testing::internal::SingleFailureChecker gtest_checker(                  \
+        &gtest_failures, ::testing::TestPartResult::kNonFatalFailure,         \
+        (substr));                                                            \
+    {                                                                         \
+      ::testing::ScopedFakeTestPartResultReporter gtest_reporter(             \
           ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \
-          &gtest_failures);\
-      if (::testing::internal::AlwaysTrue()) { statement; }\
-    }\
+          &gtest_failures);                                                   \
+      if (::testing::internal::AlwaysTrue()) {                                \
+        statement;                                                            \
+      }                                                                       \
+    }                                                                         \
   } while (::testing::internal::AlwaysFalse())
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_SPI_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h
index 203fdf9..41c8a9a 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-test-part.h
@@ -26,14 +26,19 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_TEST_PART_H_
 
 #include <iosfwd>
+#include <ostream>
+#include <string>
 #include <vector>
+
 #include "gtest/internal/gtest-internal.h"
 #include "gtest/internal/gtest-string.h"
 
@@ -128,7 +133,7 @@
 // virtual.
 class GTEST_API_ TestPartResultArray {
  public:
-  TestPartResultArray() {}
+  TestPartResultArray() = default;
 
   // Appends the given TestPartResult to the array.
   void Append(const TestPartResult& result);
@@ -142,13 +147,14 @@
  private:
   std::vector<TestPartResult> array_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestPartResultArray);
+  TestPartResultArray(const TestPartResultArray&) = delete;
+  TestPartResultArray& operator=(const TestPartResultArray&) = delete;
 };
 
 // This interface knows how to report a test part result.
 class GTEST_API_ TestPartResultReporterInterface {
  public:
-  virtual ~TestPartResultReporterInterface() {}
+  virtual ~TestPartResultReporterInterface() = default;
 
   virtual void ReportTestPartResult(const TestPartResult& result) = 0;
 };
@@ -168,11 +174,13 @@
   ~HasNewFatalFailureHelper() override;
   void ReportTestPartResult(const TestPartResult& result) override;
   bool has_new_fatal_failure() const { return has_new_fatal_failure_; }
+
  private:
   bool has_new_fatal_failure_;
   TestPartResultReporterInterface* original_reporter_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(HasNewFatalFailureHelper);
+  HasNewFatalFailureHelper(const HasNewFatalFailureHelper&) = delete;
+  HasNewFatalFailureHelper& operator=(const HasNewFatalFailureHelper&) = delete;
 };
 
 }  // namespace internal
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h
index 9fdc6be..72de536 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest-typed-test.h
@@ -27,7 +27,9 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_
@@ -190,7 +192,7 @@
   typedef ::testing::internal::GenerateTypeList<Types>::type            \
       GTEST_TYPE_PARAMS_(CaseName);                                     \
   typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \
-      GTEST_NAME_GENERATOR_(CaseName)
+  GTEST_NAME_GENERATOR_(CaseName)
 
 #define TYPED_TEST(CaseName, TestName)                                        \
   static_assert(sizeof(GTEST_STRINGIFY_(TestName)) > 1,                       \
@@ -256,7 +258,7 @@
 // #included in multiple translation units linked together.
 #define TYPED_TEST_SUITE_P(SuiteName)              \
   static ::testing::internal::TypedTestSuitePState \
-      GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName)
+  GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName)
 
 // Legacy API is deprecated but still available
 #ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
@@ -265,28 +267,28 @@
   TYPED_TEST_SUITE_P
 #endif  // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
-#define TYPED_TEST_P(SuiteName, TestName)                             \
-  namespace GTEST_SUITE_NAMESPACE_(SuiteName) {                       \
-    template <typename gtest_TypeParam_>                              \
-    class TestName : public SuiteName<gtest_TypeParam_> {             \
-     private:                                                         \
-      typedef SuiteName<gtest_TypeParam_> TestFixture;                \
-      typedef gtest_TypeParam_ TypeParam;                             \
-      void TestBody() override;                                       \
-    };                                                                \
-    static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \
-        GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName(       \
-            __FILE__, __LINE__, GTEST_STRINGIFY_(SuiteName),          \
-            GTEST_STRINGIFY_(TestName));                              \
-  }                                                                   \
-  template <typename gtest_TypeParam_>                                \
-  void GTEST_SUITE_NAMESPACE_(                                        \
+#define TYPED_TEST_P(SuiteName, TestName)                           \
+  namespace GTEST_SUITE_NAMESPACE_(SuiteName) {                     \
+  template <typename gtest_TypeParam_>                              \
+  class TestName : public SuiteName<gtest_TypeParam_> {             \
+   private:                                                         \
+    typedef SuiteName<gtest_TypeParam_> TestFixture;                \
+    typedef gtest_TypeParam_ TypeParam;                             \
+    void TestBody() override;                                       \
+  };                                                                \
+  static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \
+      GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName(       \
+          __FILE__, __LINE__, GTEST_STRINGIFY_(SuiteName),          \
+          GTEST_STRINGIFY_(TestName));                              \
+  }                                                                 \
+  template <typename gtest_TypeParam_>                              \
+  void GTEST_SUITE_NAMESPACE_(                                      \
       SuiteName)::TestName<gtest_TypeParam_>::TestBody()
 
 // Note: this won't work correctly if the trailing arguments are macros.
 #define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...)                         \
   namespace GTEST_SUITE_NAMESPACE_(SuiteName) {                             \
-    typedef ::testing::internal::Templates<__VA_ARGS__> gtest_AllTests_;    \
+  typedef ::testing::internal::Templates<__VA_ARGS__> gtest_AllTests_;      \
   }                                                                         \
   static const char* const GTEST_REGISTERED_TEST_NAMES_(                    \
       SuiteName) GTEST_ATTRIBUTE_UNUSED_ =                                  \
@@ -301,21 +303,21 @@
   REGISTER_TYPED_TEST_SUITE_P
 #endif  // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
-#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...)       \
-  static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1,                       \
-                "test-suit-prefix must not be empty");                      \
-  static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ =        \
-      ::testing::internal::TypeParameterizedTestSuite<                      \
-          SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_,    \
-          ::testing::internal::GenerateTypeList<Types>::type>::             \
-          Register(GTEST_STRINGIFY_(Prefix),                                \
-                   ::testing::internal::CodeLocation(__FILE__, __LINE__),   \
-                   &GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName),             \
-                   GTEST_STRINGIFY_(SuiteName),                             \
-                   GTEST_REGISTERED_TEST_NAMES_(SuiteName),                 \
-                   ::testing::internal::GenerateNames<                      \
-                       ::testing::internal::NameGeneratorSelector<          \
-                           __VA_ARGS__>::type,                              \
+#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...)     \
+  static_assert(sizeof(GTEST_STRINGIFY_(Prefix)) > 1,                     \
+                "test-suit-prefix must not be empty");                    \
+  static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ =      \
+      ::testing::internal::TypeParameterizedTestSuite<                    \
+          SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_,  \
+          ::testing::internal::GenerateTypeList<Types>::type>::           \
+          Register(GTEST_STRINGIFY_(Prefix),                              \
+                   ::testing::internal::CodeLocation(__FILE__, __LINE__), \
+                   &GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName),           \
+                   GTEST_STRINGIFY_(SuiteName),                           \
+                   GTEST_REGISTERED_TEST_NAMES_(SuiteName),               \
+                   ::testing::internal::GenerateNames<                    \
+                       ::testing::internal::NameGeneratorSelector<        \
+                           __VA_ARGS__>::type,                            \
                        ::testing::internal::GenerateTypeList<Types>::type>())
 
 // Legacy API is deprecated but still available
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h
index 7a5d057..a932e68 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest.h
@@ -27,7 +27,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the public API for Google Test.  It should be
@@ -47,43 +46,36 @@
 // registration from Barthelemy Dagenais' (barthelemy@prologique.com)
 // easyUnit framework.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
-
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_H_
 
 #include <cstddef>
+#include <cstdint>
 #include <limits>
 #include <memory>
 #include <ostream>
+#include <set>
+#include <sstream>
+#include <string>
 #include <type_traits>
 #include <vector>
 
-#include "gtest/internal/gtest-internal.h"
-#include "gtest/internal/gtest-string.h"
+#include "gtest/gtest-assertion-result.h"
 #include "gtest/gtest-death-test.h"
 #include "gtest/gtest-matchers.h"
 #include "gtest/gtest-message.h"
 #include "gtest/gtest-param-test.h"
 #include "gtest/gtest-printers.h"
-#include "gtest/gtest_prod.h"
 #include "gtest/gtest-test-part.h"
 #include "gtest/gtest-typed-test.h"
+#include "gtest/gtest_pred_impl.h"
+#include "gtest/gtest_prod.h"
+#include "gtest/internal/gtest-internal.h"
+#include "gtest/internal/gtest-string.h"
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
 
-namespace testing {
-
-// Silence C4100 (unreferenced formal parameter) and 4805
-// unsafe mix of type 'const int' and type 'const bool'
-#ifdef _MSC_VER
-# pragma warning(push)
-# pragma warning(disable:4805)
-# pragma warning(disable:4100)
-#endif
-
-
 // Declares the flags.
 
 // This flag temporary enables the disabled tests.
@@ -138,6 +130,12 @@
 // is 1. If the value is -1 the tests are repeating forever.
 GTEST_DECLARE_int32_(repeat);
 
+// This flag controls whether Google Test Environments are recreated for each
+// repeat of the tests. The default value is true. If set to false the global
+// test Environment objects are only set up once, for the first iteration, and
+// only torn down once, for the last.
+GTEST_DECLARE_bool_(recreate_environments_when_repeating);
+
 // This flag controls whether Google Test includes Google Test internal
 // stack frames in failure stack traces.
 GTEST_DECLARE_bool_(show_internal_stack_frames);
@@ -163,6 +161,12 @@
 GTEST_DECLARE_string_(flagfile);
 #endif  // GTEST_USE_OWN_FLAGFILE_FLAG_
 
+namespace testing {
+
+// Silence C4100 (unreferenced formal parameter) and 4805
+// unsafe mix of type 'const int' and type 'const bool'
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4805 4100)
+
 // The upper limit for valid stack trace depths.
 const int kMaxStackTraceDepth = 100;
 
@@ -186,6 +190,17 @@
                                     const std::string& message);
 std::set<std::string>* GetIgnoredParameterizedTestSuites();
 
+// A base class that prevents subclasses from being copyable.
+// We do this instead of using '= delete' so as to avoid triggering warnings
+// inside user code regarding any of our declarations.
+class GTestNonCopyable {
+ public:
+  GTestNonCopyable() = default;
+  GTestNonCopyable(const GTestNonCopyable&) = delete;
+  GTestNonCopyable& operator=(const GTestNonCopyable&) = delete;
+  ~GTestNonCopyable() = default;
+};
+
 }  // namespace internal
 
 // The friend relationship of some of these classes is cyclic.
@@ -201,193 +216,6 @@
 class TestInfo;
 class UnitTest;
 
-// A class for indicating whether an assertion was successful.  When
-// the assertion wasn't successful, the AssertionResult object
-// remembers a non-empty message that describes how it failed.
-//
-// To create an instance of this class, use one of the factory functions
-// (AssertionSuccess() and AssertionFailure()).
-//
-// This class is useful for two purposes:
-//   1. Defining predicate functions to be used with Boolean test assertions
-//      EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts
-//   2. Defining predicate-format functions to be
-//      used with predicate assertions (ASSERT_PRED_FORMAT*, etc).
-//
-// For example, if you define IsEven predicate:
-//
-//   testing::AssertionResult IsEven(int n) {
-//     if ((n % 2) == 0)
-//       return testing::AssertionSuccess();
-//     else
-//       return testing::AssertionFailure() << n << " is odd";
-//   }
-//
-// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5)))
-// will print the message
-//
-//   Value of: IsEven(Fib(5))
-//     Actual: false (5 is odd)
-//   Expected: true
-//
-// instead of a more opaque
-//
-//   Value of: IsEven(Fib(5))
-//     Actual: false
-//   Expected: true
-//
-// in case IsEven is a simple Boolean predicate.
-//
-// If you expect your predicate to be reused and want to support informative
-// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up
-// about half as often as positive ones in our tests), supply messages for
-// both success and failure cases:
-//
-//   testing::AssertionResult IsEven(int n) {
-//     if ((n % 2) == 0)
-//       return testing::AssertionSuccess() << n << " is even";
-//     else
-//       return testing::AssertionFailure() << n << " is odd";
-//   }
-//
-// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print
-//
-//   Value of: IsEven(Fib(6))
-//     Actual: true (8 is even)
-//   Expected: false
-//
-// NB: Predicates that support negative Boolean assertions have reduced
-// performance in positive ones so be careful not to use them in tests
-// that have lots (tens of thousands) of positive Boolean assertions.
-//
-// To use this class with EXPECT_PRED_FORMAT assertions such as:
-//
-//   // Verifies that Foo() returns an even number.
-//   EXPECT_PRED_FORMAT1(IsEven, Foo());
-//
-// you need to define:
-//
-//   testing::AssertionResult IsEven(const char* expr, int n) {
-//     if ((n % 2) == 0)
-//       return testing::AssertionSuccess();
-//     else
-//       return testing::AssertionFailure()
-//         << "Expected: " << expr << " is even\n  Actual: it's " << n;
-//   }
-//
-// If Foo() returns 5, you will see the following message:
-//
-//   Expected: Foo() is even
-//     Actual: it's 5
-//
-class GTEST_API_ AssertionResult {
- public:
-  // Copy constructor.
-  // Used in EXPECT_TRUE/FALSE(assertion_result).
-  AssertionResult(const AssertionResult& other);
-
-// C4800 is a level 3 warning in Visual Studio 2015 and earlier.
-// This warning is not emitted in Visual Studio 2017.
-// This warning is off by default starting in Visual Studio 2019 but can be
-// enabled with command-line options.
-#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
-  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */)
-#endif
-
-  // Used in the EXPECT_TRUE/FALSE(bool_expression).
-  //
-  // T must be contextually convertible to bool.
-  //
-  // The second parameter prevents this overload from being considered if
-  // the argument is implicitly convertible to AssertionResult. In that case
-  // we want AssertionResult's copy constructor to be used.
-  template <typename T>
-  explicit AssertionResult(
-      const T& success,
-      typename std::enable_if<
-          !std::is_convertible<T, AssertionResult>::value>::type*
-      /*enabler*/
-      = nullptr)
-      : success_(success) {}
-
-#if defined(_MSC_VER) && (_MSC_VER < 1910 || _MSC_VER >= 1920)
-  GTEST_DISABLE_MSC_WARNINGS_POP_()
-#endif
-
-  // Assignment operator.
-  AssertionResult& operator=(AssertionResult other) {
-    swap(other);
-    return *this;
-  }
-
-  // Returns true if and only if the assertion succeeded.
-  operator bool() const { return success_; }  // NOLINT
-
-  // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE.
-  AssertionResult operator!() const;
-
-  // Returns the text streamed into this AssertionResult. Test assertions
-  // use it when they fail (i.e., the predicate's outcome doesn't match the
-  // assertion's expectation). When nothing has been streamed into the
-  // object, returns an empty string.
-  const char* message() const {
-    return message_.get() != nullptr ? message_->c_str() : "";
-  }
-  // Deprecated; please use message() instead.
-  const char* failure_message() const { return message(); }
-
-  // Streams a custom failure message into this object.
-  template <typename T> AssertionResult& operator<<(const T& value) {
-    AppendMessage(Message() << value);
-    return *this;
-  }
-
-  // Allows streaming basic output manipulators such as endl or flush into
-  // this object.
-  AssertionResult& operator<<(
-      ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) {
-    AppendMessage(Message() << basic_manipulator);
-    return *this;
-  }
-
- private:
-  // Appends the contents of message to message_.
-  void AppendMessage(const Message& a_message) {
-    if (message_.get() == nullptr) message_.reset(new ::std::string);
-    message_->append(a_message.GetString().c_str());
-  }
-
-  // Swap the contents of this AssertionResult with other.
-  void swap(AssertionResult& other);
-
-  // Stores result of the assertion predicate.
-  bool success_;
-  // Stores the message describing the condition in case the expectation
-  // construct is not satisfied with the predicate's outcome.
-  // Referenced via a pointer to avoid taking too much stack frame space
-  // with test assertions.
-  std::unique_ptr< ::std::string> message_;
-};
-
-// Makes a successful assertion result.
-GTEST_API_ AssertionResult AssertionSuccess();
-
-// Makes a failed assertion result.
-GTEST_API_ AssertionResult AssertionFailure();
-
-// Makes a failed assertion result with the given failure message.
-// Deprecated; use AssertionFailure() << msg.
-GTEST_API_ AssertionResult AssertionFailure(const Message& msg);
-
-}  // namespace testing
-
-// Includes the auto-generated header that implements a family of generic
-// predicate assertion macros. This include comes late because it relies on
-// APIs declared above.
-#include "gtest/gtest_pred_impl.h"
-
-namespace testing {
-
 // The abstract class that all tests inherit from.
 //
 // In Google Test, a unit test program contains one or many TestSuites, and
@@ -468,7 +296,13 @@
   // SetUp/TearDown method of Environment objects registered with Google
   // Test) will be output as attributes of the <testsuites> element.
   static void RecordProperty(const std::string& key, const std::string& value);
-  static void RecordProperty(const std::string& key, int value);
+  // We do not define a custom serialization except for values that can be
+  // converted to int64_t, but other values could be logged in this way.
+  template <typename T, std::enable_if_t<std::is_convertible<T, int64_t>::value,
+                                         bool> = true>
+  static void RecordProperty(const std::string& key, const T& value) {
+    RecordProperty(key, (Message() << value).GetString());
+  }
 
  protected:
   // Creates a Test object.
@@ -522,7 +356,8 @@
   virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; }
 
   // We disallow copying Tests.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Test);
+  Test(const Test&) = delete;
+  Test& operator=(const Test&) = delete;
 };
 
 typedef internal::TimeInMillis TimeInMillis;
@@ -536,24 +371,17 @@
   // C'tor.  TestProperty does NOT have a default constructor.
   // Always use this constructor (with parameters) to create a
   // TestProperty object.
-  TestProperty(const std::string& a_key, const std::string& a_value) :
-    key_(a_key), value_(a_value) {
-  }
+  TestProperty(const std::string& a_key, const std::string& a_value)
+      : key_(a_key), value_(a_value) {}
 
   // Gets the user supplied key.
-  const char* key() const {
-    return key_.c_str();
-  }
+  const char* key() const { return key_.c_str(); }
 
   // Gets the user supplied value.
-  const char* value() const {
-    return value_.c_str();
-  }
+  const char* value() const { return value_.c_str(); }
 
   // Sets a new value, overriding the one supplied in the constructor.
-  void SetValue(const std::string& new_value) {
-    value_ = new_value;
-  }
+  void SetValue(const std::string& new_value) { value_ = new_value; }
 
  private:
   // The key supplied by the user.
@@ -687,7 +515,8 @@
   TimeInMillis elapsed_time_;
 
   // We disallow copying TestResult.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestResult);
+  TestResult(const TestResult&) = delete;
+  TestResult& operator=(const TestResult&) = delete;
 };  // class TestResult
 
 // A TestInfo object stores the following information about a test:
@@ -721,14 +550,14 @@
   // Returns the name of the parameter type, or NULL if this is not a typed
   // or a type-parameterized test.
   const char* type_param() const {
-    if (type_param_.get() != nullptr) return type_param_->c_str();
+    if (type_param_ != nullptr) return type_param_->c_str();
     return nullptr;
   }
 
   // Returns the text representation of the value parameter, or NULL if this
   // is not a value-parameterized test.
   const char* value_param() const {
-    if (value_param_.get() != nullptr) return value_param_->c_str();
+    if (value_param_ != nullptr) return value_param_->c_str();
     return nullptr;
   }
 
@@ -770,7 +599,7 @@
   const TestResult* result() const { return &result_; }
 
  private:
-#if GTEST_HAS_DEATH_TEST
+#ifdef GTEST_HAS_DEATH_TEST
   friend class internal::DefaultDeathTestFactory;
 #endif  // GTEST_HAS_DEATH_TEST
   friend class Test;
@@ -811,8 +640,8 @@
   }
 
   // These fields are immutable properties of the test.
-  const std::string test_suite_name_;    // test suite name
-  const std::string name_;               // Test name
+  const std::string test_suite_name_;  // test suite name
+  const std::string name_;             // Test name
   // Name of the parameter type, or NULL if this is not a typed or a
   // type-parameterized test.
   const std::unique_ptr<const ::std::string> type_param_;
@@ -833,7 +662,8 @@
   // test for the second time.
   TestResult result_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo);
+  TestInfo(const TestInfo&) = delete;
+  TestInfo& operator=(const TestInfo&) = delete;
 };
 
 // A test suite, which consists of a vector of TestInfos.
@@ -866,7 +696,7 @@
   // Returns the name of the parameter type, or NULL if this is not a
   // type-parameterized test suite.
   const char* type_param() const {
-    if (type_param_.get() != nullptr) return type_param_->c_str();
+    if (type_param_ != nullptr) return type_param_->c_str();
     return nullptr;
   }
 
@@ -941,7 +771,7 @@
 
   // Adds a TestInfo to this test suite.  Will delete the TestInfo upon
   // destruction of the TestSuite object.
-  void AddTestInfo(TestInfo * test_info);
+  void AddTestInfo(TestInfo* test_info);
 
   // Clears the results of all tests in this test suite.
   void ClearResult();
@@ -1042,7 +872,8 @@
   TestResult ad_hoc_test_result_;
 
   // We disallow copying TestSuites.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestSuite);
+  TestSuite(const TestSuite&) = delete;
+  TestSuite& operator=(const TestSuite&) = delete;
 };
 
 // An Environment object is capable of setting up and tearing down an
@@ -1062,13 +893,14 @@
 class Environment {
  public:
   // The d'tor is virtual as we need to subclass Environment.
-  virtual ~Environment() {}
+  virtual ~Environment() = default;
 
   // Override this to define how to set up the environment.
   virtual void SetUp() {}
 
   // Override this to define how to tear down the environment.
   virtual void TearDown() {}
+
  private:
   // If you see an error about overriding the following function or
   // about it being private, you have mis-spelled SetUp() as Setup().
@@ -1092,7 +924,7 @@
 // the order the corresponding events are fired.
 class TestEventListener {
  public:
-  virtual ~TestEventListener() {}
+  virtual ~TestEventListener() = default;
 
   // Fired before any test activity starts.
   virtual void OnTestProgramStart(const UnitTest& unit_test) = 0;
@@ -1120,6 +952,9 @@
   // Fired before the test starts.
   virtual void OnTestStart(const TestInfo& test_info) = 0;
 
+  // Fired when a test is disabled
+  virtual void OnTestDisabled(const TestInfo& /*test_info*/) {}
+
   // Fired after a failed assertion or a SUCCEED() invocation.
   // If you want to throw an exception from this function to skip to the next
   // TEST, it must be AssertionException defined above, or inherited from it.
@@ -1143,8 +978,7 @@
   virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) = 0;
 
   // Fired after each iteration of tests finishes.
-  virtual void OnTestIterationEnd(const UnitTest& unit_test,
-                                  int iteration) = 0;
+  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) = 0;
 
   // Fired after all test activities have ended.
   virtual void OnTestProgramEnd(const UnitTest& unit_test) = 0;
@@ -1169,6 +1003,7 @@
 #endif  //  GTEST_REMOVE_LEGACY_TEST_CASEAPI_
 
   void OnTestStart(const TestInfo& /*test_info*/) override {}
+  void OnTestDisabled(const TestInfo& /*test_info*/) override {}
   void OnTestPartResult(const TestPartResult& /*test_part_result*/) override {}
   void OnTestEnd(const TestInfo& /*test_info*/) override {}
   void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {}
@@ -1219,6 +1054,10 @@
     return default_xml_generator_;
   }
 
+  // Controls whether events will be forwarded by the repeater to the
+  // listeners in the list.
+  void SuppressEventForwarding(bool);
+
  private:
   friend class TestSuite;
   friend class TestInfo;
@@ -1248,7 +1087,6 @@
   // Controls whether events will be forwarded by the repeater to the
   // listeners in the list.
   bool EventForwardingEnabled() const;
-  void SuppressEventForwarding();
 
   // The actual list of listeners.
   internal::TestEventRepeater* repeater_;
@@ -1258,7 +1096,8 @@
   TestEventListener* default_xml_generator_;
 
   // We disallow copying TestEventListeners.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventListeners);
+  TestEventListeners(const TestEventListeners&) = delete;
+  TestEventListeners& operator=(const TestEventListeners&) = delete;
 };
 
 // A UnitTest consists of a vector of TestSuites.
@@ -1301,8 +1140,7 @@
 
   // Returns the TestInfo object for the test that's currently running,
   // or NULL if no test is running.
-  const TestInfo* current_test_info() const
-      GTEST_LOCK_EXCLUDED_(mutex_);
+  const TestInfo* current_test_info() const GTEST_LOCK_EXCLUDED_(mutex_);
 
   // Returns the random seed used at the start of the current test run.
   int random_seed() const;
@@ -1408,8 +1246,7 @@
   // eventually call this to report their results.  The user code
   // should use the assertion macros instead of calling this directly.
   void AddTestPartResult(TestPartResult::Type result_type,
-                         const char* file_name,
-                         int line_number,
+                         const char* file_name, int line_number,
                          const std::string& message,
                          const std::string& os_stack_trace)
       GTEST_LOCK_EXCLUDED_(mutex_);
@@ -1440,8 +1277,7 @@
   friend std::set<std::string>* internal::GetIgnoredParameterizedTestSuites();
   friend internal::UnitTestImpl* internal::GetUnitTestImpl();
   friend void internal::ReportFailureInUnknownLocation(
-      TestPartResult::Type result_type,
-      const std::string& message);
+      TestPartResult::Type result_type, const std::string& message);
 
   // Creates an empty UnitTest.
   UnitTest();
@@ -1455,8 +1291,7 @@
       GTEST_LOCK_EXCLUDED_(mutex_);
 
   // Pops a trace from the per-thread Google Test trace stack.
-  void PopGTestTrace()
-      GTEST_LOCK_EXCLUDED_(mutex_);
+  void PopGTestTrace() GTEST_LOCK_EXCLUDED_(mutex_);
 
   // Protects mutable state in *impl_.  This is mutable as some const
   // methods need to lock it too.
@@ -1469,7 +1304,8 @@
   internal::UnitTestImpl* impl_;
 
   // We disallow copying UnitTest.
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTest);
+  UnitTest(const UnitTest&) = delete;
+  UnitTest& operator=(const UnitTest&) = delete;
 };
 
 // A convenient wrapper for adding an environment for the test
@@ -1520,13 +1356,11 @@
 // when calling EXPECT_* in a tight loop.
 template <typename T1, typename T2>
 AssertionResult CmpHelperEQFailure(const char* lhs_expression,
-                                   const char* rhs_expression,
-                                   const T1& lhs, const T2& rhs) {
-  return EqFailure(lhs_expression,
-                   rhs_expression,
+                                   const char* rhs_expression, const T1& lhs,
+                                   const T2& rhs) {
+  return EqFailure(lhs_expression, rhs_expression,
                    FormatForComparisonFailureMessage(lhs, rhs),
-                   FormatForComparisonFailureMessage(rhs, lhs),
-                   false);
+                   FormatForComparisonFailureMessage(rhs, lhs), false);
 }
 
 // This block of code defines operator==/!=
@@ -1539,8 +1373,7 @@
 // The helper function for {ASSERT|EXPECT}_EQ.
 template <typename T1, typename T2>
 AssertionResult CmpHelperEQ(const char* lhs_expression,
-                            const char* rhs_expression,
-                            const T1& lhs,
+                            const char* rhs_expression, const T1& lhs,
                             const T2& rhs) {
   if (lhs == rhs) {
     return AssertionSuccess();
@@ -1571,8 +1404,7 @@
   // Even though its body looks the same as the above version, we
   // cannot merge the two, as it will make anonymous enums unhappy.
   static AssertionResult Compare(const char* lhs_expression,
-                                 const char* rhs_expression,
-                                 BiggestInt lhs,
+                                 const char* rhs_expression, BiggestInt lhs,
                                  BiggestInt rhs) {
     return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
   }
@@ -1607,16 +1439,16 @@
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 
-#define GTEST_IMPL_CMP_HELPER_(op_name, op)\
-template <typename T1, typename T2>\
-AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
-                                   const T1& val1, const T2& val2) {\
-  if (val1 op val2) {\
-    return AssertionSuccess();\
-  } else {\
-    return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\
-  }\
-}
+#define GTEST_IMPL_CMP_HELPER_(op_name, op)                                \
+  template <typename T1, typename T2>                                      \
+  AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \
+                                     const T1& val1, const T2& val2) {     \
+    if (val1 op val2) {                                                    \
+      return AssertionSuccess();                                           \
+    } else {                                                               \
+      return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);            \
+    }                                                                      \
+  }
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 
@@ -1638,49 +1470,42 @@
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression,
                                           const char* s2_expression,
-                                          const char* s1,
-                                          const char* s2);
+                                          const char* s1, const char* s2);
 
 // The helper function for {ASSERT|EXPECT}_STRCASEEQ.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char* s1_expression,
                                               const char* s2_expression,
-                                              const char* s1,
-                                              const char* s2);
+                                              const char* s1, const char* s2);
 
 // The helper function for {ASSERT|EXPECT}_STRNE.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
                                           const char* s2_expression,
-                                          const char* s1,
-                                          const char* s2);
+                                          const char* s1, const char* s2);
 
 // The helper function for {ASSERT|EXPECT}_STRCASENE.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char* s1_expression,
                                               const char* s2_expression,
-                                              const char* s1,
-                                              const char* s2);
-
+                                              const char* s1, const char* s2);
 
 // Helper function for *_STREQ on wide strings.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression,
                                           const char* s2_expression,
-                                          const wchar_t* s1,
-                                          const wchar_t* s2);
+                                          const wchar_t* s1, const wchar_t* s2);
 
 // Helper function for *_STRNE on wide strings.
 //
 // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM.
 GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression,
                                           const char* s2_expression,
-                                          const wchar_t* s1,
-                                          const wchar_t* s2);
+                                          const wchar_t* s1, const wchar_t* s2);
 
 }  // namespace internal
 
@@ -1692,32 +1517,40 @@
 //
 // The {needle,haystack}_expr arguments are the stringified
 // expressions that generated the two real arguments.
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const char* needle, const char* haystack);
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const wchar_t* needle, const wchar_t* haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const char* needle, const char* haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const wchar_t* needle, const wchar_t* haystack);
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::string& needle, const ::std::string& haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::string& needle, const ::std::string& haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const char* needle,
+                                       const char* haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const wchar_t* needle,
+                                       const wchar_t* haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const char* needle,
+                                          const char* haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const wchar_t* needle,
+                                          const wchar_t* haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const ::std::string& needle,
+                                       const ::std::string& haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const ::std::string& needle,
+                                          const ::std::string& haystack);
 
 #if GTEST_HAS_STD_WSTRING
-GTEST_API_ AssertionResult IsSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::wstring& needle, const ::std::wstring& haystack);
-GTEST_API_ AssertionResult IsNotSubstring(
-    const char* needle_expr, const char* haystack_expr,
-    const ::std::wstring& needle, const ::std::wstring& haystack);
+GTEST_API_ AssertionResult IsSubstring(const char* needle_expr,
+                                       const char* haystack_expr,
+                                       const ::std::wstring& needle,
+                                       const ::std::wstring& haystack);
+GTEST_API_ AssertionResult IsNotSubstring(const char* needle_expr,
+                                          const char* haystack_expr,
+                                          const ::std::wstring& needle,
+                                          const ::std::wstring& haystack);
 #endif  // GTEST_HAS_STD_WSTRING
 
 namespace internal {
@@ -1732,8 +1565,7 @@
 template <typename RawType>
 AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression,
                                          const char* rhs_expression,
-                                         RawType lhs_value,
-                                         RawType rhs_value) {
+                                         RawType lhs_value, RawType rhs_value) {
   const FloatingPoint<RawType> lhs(lhs_value), rhs(rhs_value);
 
   if (lhs.AlmostEquals(rhs)) {
@@ -1741,17 +1573,15 @@
   }
 
   ::std::stringstream lhs_ss;
-  lhs_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
-         << lhs_value;
+  lhs_ss.precision(std::numeric_limits<RawType>::digits10 + 2);
+  lhs_ss << lhs_value;
 
   ::std::stringstream rhs_ss;
-  rhs_ss << std::setprecision(std::numeric_limits<RawType>::digits10 + 2)
-         << rhs_value;
+  rhs_ss.precision(std::numeric_limits<RawType>::digits10 + 2);
+  rhs_ss << rhs_value;
 
-  return EqFailure(lhs_expression,
-                   rhs_expression,
-                   StringStreamToString(&lhs_ss),
-                   StringStreamToString(&rhs_ss),
+  return EqFailure(lhs_expression, rhs_expression,
+                   StringStreamToString(&lhs_ss), StringStreamToString(&rhs_ss),
                    false);
 }
 
@@ -1761,8 +1591,7 @@
 GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1,
                                                 const char* expr2,
                                                 const char* abs_error_expr,
-                                                double val1,
-                                                double val2,
+                                                double val1, double val2,
                                                 double abs_error);
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
@@ -1770,9 +1599,7 @@
 class GTEST_API_ AssertHelper {
  public:
   // Constructor.
-  AssertHelper(TestPartResult::Type type,
-               const char* file,
-               int line,
+  AssertHelper(TestPartResult::Type type, const char* file, int line,
                const char* message);
   ~AssertHelper();
 
@@ -1786,11 +1613,9 @@
   // re-using stack space even for temporary variables, so every EXPECT_EQ
   // reserves stack space for another AssertHelper.
   struct AssertHelperData {
-    AssertHelperData(TestPartResult::Type t,
-                     const char* srcfile,
-                     int line_num,
+    AssertHelperData(TestPartResult::Type t, const char* srcfile, int line_num,
                      const char* msg)
-        : type(t), file(srcfile), line(line_num), message(msg) { }
+        : type(t), file(srcfile), line(line_num), message(msg) {}
 
     TestPartResult::Type const type;
     const char* const file;
@@ -1798,12 +1623,14 @@
     std::string const message;
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData);
+    AssertHelperData(const AssertHelperData&) = delete;
+    AssertHelperData& operator=(const AssertHelperData&) = delete;
   };
 
   AssertHelperData* const data_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper);
+  AssertHelper(const AssertHelper&) = delete;
+  AssertHelper& operator=(const AssertHelper&) = delete;
 };
 
 }  // namespace internal
@@ -1818,7 +1645,7 @@
 // the GetParam() method.
 //
 // Use it with one of the parameter generator defining functions, like Range(),
-// Values(), ValuesIn(), Bool(), and Combine().
+// Values(), ValuesIn(), Bool(), Combine(), and ConvertGenerator<T>().
 //
 // class FooTest : public ::testing::TestWithParam<int> {
 //  protected:
@@ -1846,7 +1673,7 @@
 class WithParamInterface {
  public:
   typedef T ParamType;
-  virtual ~WithParamInterface() {}
+  virtual ~WithParamInterface() = default;
 
   // The current parameter value. Is also available in the test fixture's
   // constructor.
@@ -1860,15 +1687,14 @@
  private:
   // Sets parameter value. The caller is responsible for making sure the value
   // remains alive and unchanged throughout the current test.
-  static void SetParam(const ParamType* parameter) {
-    parameter_ = parameter;
-  }
+  static void SetParam(const ParamType* parameter) { parameter_ = parameter; }
 
   // Static value used for accessing parameter during a test lifetime.
   static const ParamType* parameter_;
 
   // TestClass must be a subclass of WithParamInterface<T> and Test.
-  template <class TestClass> friend class internal::ParameterizedTestFactory;
+  template <class TestClass>
+  friend class internal::ParameterizedTestFactory;
 };
 
 template <typename T>
@@ -1878,8 +1704,7 @@
 // WithParamInterface, and can just inherit from ::testing::TestWithParam.
 
 template <typename T>
-class TestWithParam : public Test, public WithParamInterface<T> {
-};
+class TestWithParam : public Test, public WithParamInterface<T> {};
 
 // Macros for indicating success/failure in test code.
 
@@ -1910,7 +1735,7 @@
 
 // Generates a nonfatal failure at the given source file location with
 // a generic message.
-#define ADD_FAILURE_AT(file, line) \
+#define ADD_FAILURE_AT(file, line)        \
   GTEST_MESSAGE_AT_(file, line, "Failed", \
                     ::testing::TestPartResult::kNonFatalFailure)
 
@@ -1918,14 +1743,14 @@
 #define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed")
 
 // Like GTEST_FAIL(), but at the given source file location.
-#define GTEST_FAIL_AT(file, line)         \
-  GTEST_MESSAGE_AT_(file, line, "Failed", \
-                    ::testing::TestPartResult::kFatalFailure)
+#define GTEST_FAIL_AT(file, line)                \
+  return GTEST_MESSAGE_AT_(file, line, "Failed", \
+                           ::testing::TestPartResult::kFatalFailure)
 
 // Define this macro to 1 to omit the definition of FAIL(), which is a
 // generic name and clashes with some other libraries.
-#if !GTEST_DONT_DEFINE_FAIL
-# define FAIL() GTEST_FAIL()
+#if !(defined(GTEST_DONT_DEFINE_FAIL) && GTEST_DONT_DEFINE_FAIL)
+#define FAIL() GTEST_FAIL()
 #endif
 
 // Generates a success with a generic message.
@@ -1933,8 +1758,8 @@
 
 // Define this macro to 1 to omit the definition of SUCCEED(), which
 // is a generic name and clashes with some other libraries.
-#if !GTEST_DONT_DEFINE_SUCCEED
-# define SUCCEED() GTEST_SUCCEED()
+#if !(defined(GTEST_DONT_DEFINE_SUCCEED) && GTEST_DONT_DEFINE_SUCCEED)
+#define SUCCEED() GTEST_SUCCEED()
 #endif
 
 // Macros for testing exceptions.
@@ -1962,35 +1787,34 @@
 // Boolean assertions. Condition can be either a Boolean expression or an
 // AssertionResult. For more information on how to use AssertionResult with
 // these macros see comments on that class.
-#define GTEST_EXPECT_TRUE(condition) \
+#define GTEST_EXPECT_TRUE(condition)                      \
   GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
                       GTEST_NONFATAL_FAILURE_)
-#define GTEST_EXPECT_FALSE(condition) \
+#define GTEST_EXPECT_FALSE(condition)                        \
   GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
                       GTEST_NONFATAL_FAILURE_)
 #define GTEST_ASSERT_TRUE(condition) \
-  GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \
-                      GTEST_FATAL_FAILURE_)
-#define GTEST_ASSERT_FALSE(condition) \
+  GTEST_TEST_BOOLEAN_(condition, #condition, false, true, GTEST_FATAL_FAILURE_)
+#define GTEST_ASSERT_FALSE(condition)                        \
   GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \
                       GTEST_FATAL_FAILURE_)
 
 // Define these macros to 1 to omit the definition of the corresponding
 // EXPECT or ASSERT, which clashes with some users' own code.
 
-#if !GTEST_DONT_DEFINE_EXPECT_TRUE
+#if !(defined(GTEST_DONT_DEFINE_EXPECT_TRUE) && GTEST_DONT_DEFINE_EXPECT_TRUE)
 #define EXPECT_TRUE(condition) GTEST_EXPECT_TRUE(condition)
 #endif
 
-#if !GTEST_DONT_DEFINE_EXPECT_FALSE
+#if !(defined(GTEST_DONT_DEFINE_EXPECT_FALSE) && GTEST_DONT_DEFINE_EXPECT_FALSE)
 #define EXPECT_FALSE(condition) GTEST_EXPECT_FALSE(condition)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_TRUE
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_TRUE) && GTEST_DONT_DEFINE_ASSERT_TRUE)
 #define ASSERT_TRUE(condition) GTEST_ASSERT_TRUE(condition)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_FALSE
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_FALSE) && GTEST_DONT_DEFINE_ASSERT_FALSE)
 #define ASSERT_FALSE(condition) GTEST_ASSERT_FALSE(condition)
 #endif
 
@@ -2069,28 +1893,28 @@
 // Define macro GTEST_DONT_DEFINE_ASSERT_XY to 1 to omit the definition of
 // ASSERT_XY(), which clashes with some users' own code.
 
-#if !GTEST_DONT_DEFINE_ASSERT_EQ
-# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_EQ) && GTEST_DONT_DEFINE_ASSERT_EQ)
+#define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_NE
-# define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_NE) && GTEST_DONT_DEFINE_ASSERT_NE)
+#define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_LE
-# define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_LE) && GTEST_DONT_DEFINE_ASSERT_LE)
+#define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_LT
-# define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_LT) && GTEST_DONT_DEFINE_ASSERT_LT)
+#define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_GE
-# define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_GE) && GTEST_DONT_DEFINE_ASSERT_GE)
+#define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2)
 #endif
 
-#if !GTEST_DONT_DEFINE_ASSERT_GT
-# define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
+#if !(defined(GTEST_DONT_DEFINE_ASSERT_GT) && GTEST_DONT_DEFINE_ASSERT_GT)
+#define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2)
 #endif
 
 // C-string Comparisons.  All tests treat NULL and any non-NULL string
@@ -2115,7 +1939,7 @@
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
 #define EXPECT_STRCASEEQ(s1, s2) \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
-#define EXPECT_STRCASENE(s1, s2)\
+#define EXPECT_STRCASENE(s1, s2) \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
 
 #define ASSERT_STREQ(s1, s2) \
@@ -2124,7 +1948,7 @@
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2)
 #define ASSERT_STRCASEEQ(s1, s2) \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2)
-#define ASSERT_STRCASENE(s1, s2)\
+#define ASSERT_STRCASENE(s1, s2) \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2)
 
 // Macros for comparing floating-point numbers.
@@ -2141,29 +1965,29 @@
 // FloatingPoint template class in gtest-internal.h if you are
 // interested in the implementation details.
 
-#define EXPECT_FLOAT_EQ(val1, val2)\
+#define EXPECT_FLOAT_EQ(val1, val2)                                         \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
                       val1, val2)
 
-#define EXPECT_DOUBLE_EQ(val1, val2)\
+#define EXPECT_DOUBLE_EQ(val1, val2)                                         \
   EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
                       val1, val2)
 
-#define ASSERT_FLOAT_EQ(val1, val2)\
+#define ASSERT_FLOAT_EQ(val1, val2)                                         \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<float>, \
                       val1, val2)
 
-#define ASSERT_DOUBLE_EQ(val1, val2)\
+#define ASSERT_DOUBLE_EQ(val1, val2)                                         \
   ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ<double>, \
                       val1, val2)
 
-#define EXPECT_NEAR(val1, val2, abs_error)\
-  EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
-                      val1, val2, abs_error)
+#define EXPECT_NEAR(val1, val2, abs_error)                                   \
+  EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, val1, val2, \
+                      abs_error)
 
-#define ASSERT_NEAR(val1, val2, abs_error)\
-  ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \
-                      val1, val2, abs_error)
+#define ASSERT_NEAR(val1, val2, abs_error)                                   \
+  ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, val1, val2, \
+                      abs_error)
 
 // These predicate format functions work on floating-point values, and
 // can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g.
@@ -2177,8 +2001,7 @@
 GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2,
                                     double val1, double val2);
 
-
-#if GTEST_OS_WINDOWS
+#ifdef GTEST_OS_WINDOWS
 
 // Macros that test for HRESULT failure and success, these are only useful
 // on Windows, and rely on Windows SDK macros and APIs to compile.
@@ -2189,17 +2012,17 @@
 // expected result and the actual result with both a human-readable
 // string representation of the error, if available, as well as the
 // hex result code.
-# define EXPECT_HRESULT_SUCCEEDED(expr) \
-    EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
+#define EXPECT_HRESULT_SUCCEEDED(expr) \
+  EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
 
-# define ASSERT_HRESULT_SUCCEEDED(expr) \
-    ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
+#define ASSERT_HRESULT_SUCCEEDED(expr) \
+  ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr))
 
-# define EXPECT_HRESULT_FAILED(expr) \
-    EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
+#define EXPECT_HRESULT_FAILED(expr) \
+  EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
 
-# define ASSERT_HRESULT_FAILED(expr) \
-    ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
+#define ASSERT_HRESULT_FAILED(expr) \
+  ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr))
 
 #endif  // GTEST_OS_WINDOWS
 
@@ -2214,9 +2037,9 @@
 //   ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed";
 //
 #define ASSERT_NO_FATAL_FAILURE(statement) \
-    GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
+  GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_)
 #define EXPECT_NO_FATAL_FAILURE(statement) \
-    GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
+  GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_)
 
 // Causes a trace (including the given source file path and line number,
 // and the given message) to be included in every test failure message generated
@@ -2258,10 +2081,9 @@
  private:
   void PushTrace(const char* file, int line, std::string message);
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace);
-} GTEST_ATTRIBUTE_UNUSED_;  // A ScopedTrace object does its job in its
-                            // c'tor and d'tor.  Therefore it doesn't
-                            // need to be used otherwise.
+  ScopedTrace(const ScopedTrace&) = delete;
+  ScopedTrace& operator=(const ScopedTrace&) = delete;
+};
 
 // Causes a trace (including the source file path, the current line
 // number, and the given message) to be included in every test failure
@@ -2278,9 +2100,9 @@
 // Assuming that each thread maintains its own stack of traces.
 // Therefore, a SCOPED_TRACE() would (correctly) only affect the
 // assertions in its own thread.
-#define SCOPED_TRACE(message) \
-  ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\
-    __FILE__, __LINE__, (message))
+#define SCOPED_TRACE(message)                                               \
+  const ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)( \
+      __FILE__, __LINE__, (message))
 
 // Compile-time assertion for type equality.
 // StaticAssertTypeEq<type1, type2>() compiles if and only if type1 and type2
@@ -2349,7 +2171,7 @@
 
 // Define this macro to 1 to omit the definition of TEST(), which
 // is a generic name and clashes with some other libraries.
-#if !GTEST_DONT_DEFINE_TEST
+#if !(defined(GTEST_DONT_DEFINE_TEST) && GTEST_DONT_DEFINE_TEST)
 #define TEST(test_suite_name, test_name) GTEST_TEST(test_suite_name, test_name)
 #endif
 
@@ -2378,21 +2200,25 @@
 //     EXPECT_EQ(a_.size(), 0);
 //     EXPECT_EQ(b_.size(), 1);
 //   }
-//
-// GOOGLETEST_CM0011 DO NOT DELETE
-#if !GTEST_DONT_DEFINE_TEST
-#define TEST_F(test_fixture, test_name)\
+#define GTEST_TEST_F(test_fixture, test_name)        \
   GTEST_TEST_(test_fixture, test_name, test_fixture, \
               ::testing::internal::GetTypeId<test_fixture>())
-#endif  // !GTEST_DONT_DEFINE_TEST
+#if !(defined(GTEST_DONT_DEFINE_TEST_F) && GTEST_DONT_DEFINE_TEST_F)
+#define TEST_F(test_fixture, test_name) GTEST_TEST_F(test_fixture, test_name)
+#endif
 
-// Returns a path to temporary directory.
-// Tries to determine an appropriate directory for the platform.
+// Returns a path to a temporary directory, which should be writable. It is
+// implementation-dependent whether or not the path is terminated by the
+// directory-separator character.
 GTEST_API_ std::string TempDir();
 
-#ifdef _MSC_VER
-#  pragma warning(pop)
-#endif
+// Returns a path to a directory that contains ancillary data files that might
+// be used by tests. It is implementation dependent whether or not the path is
+// terminated by the directory-separator character. The directory and the files
+// in it should be considered read-only.
+GTEST_API_ std::string SrcDir();
+
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4805 4100
 
 // Dynamically registers a test with the framework.
 //
@@ -2445,6 +2271,7 @@
 // }
 // ...
 // int main(int argc, char** argv) {
+//   ::testing::InitGoogleTest(&argc, argv);
 //   std::vector<int> values_to_test = LoadValuesFromConfig();
 //   RegisterMyTests(values_to_test);
 //   ...
@@ -2486,9 +2313,7 @@
 // namespace and has an all-caps name.
 int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_;
 
-inline int RUN_ALL_TESTS() {
-  return ::testing::UnitTest::GetInstance()->Run();
-}
+inline int RUN_ALL_TESTS() { return ::testing::UnitTest::GetInstance()->Run(); }
 
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
 
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h
index 5029a9b..47a24aa 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_pred_impl.h
@@ -26,17 +26,19 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// This file is AUTOMATICALLY GENERATED on 01/02/2019 by command
-// 'gen_gtest_pred_impl.py 5'.  DO NOT EDIT BY HAND!
 //
 // Implements a family of generic predicate assertion macros.
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
 
-#include "gtest/gtest.h"
+#include "gtest/gtest-assertion-result.h"
+#include "gtest/internal/gtest-internal.h"
+#include "gtest/internal/gtest-port.h"
 
 namespace testing {
 
@@ -72,22 +74,18 @@
 // GTEST_ASSERT_ is the basic statement to which all of the assertions
 // in this file reduce.  Don't use this in your code.
 
-#define GTEST_ASSERT_(expression, on_failure) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
+#define GTEST_ASSERT_(expression, on_failure)                   \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
   if (const ::testing::AssertionResult gtest_ar = (expression)) \
-    ; \
-  else \
+    ;                                                           \
+  else                                                          \
     on_failure(gtest_ar.failure_message())
 
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED1.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1>
-AssertionResult AssertPred1Helper(const char* pred_text,
-                                  const char* e1,
-                                  Pred pred,
-                                  const T1& v1) {
+template <typename Pred, typename T1>
+AssertionResult AssertPred1Helper(const char* pred_text, const char* e1,
+                                  Pred pred, const T1& v1) {
   if (pred(v1)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -98,40 +96,27 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, v1), \
-                on_failure)
+#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED1.  Don't use
 // this in your code.
-#define GTEST_PRED1_(pred, v1, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \
-                                             #v1, \
-                                             pred, \
-                                             v1), on_failure)
+#define GTEST_PRED1_(pred, v1, on_failure) \
+  GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, #v1, pred, v1), on_failure)
 
 // Unary predicate assertion macros.
 #define EXPECT_PRED_FORMAT1(pred_format, v1) \
   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
-#define EXPECT_PRED1(pred, v1) \
-  GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_)
+#define EXPECT_PRED1(pred, v1) GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_)
 #define ASSERT_PRED_FORMAT1(pred_format, v1) \
   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
-#define ASSERT_PRED1(pred, v1) \
-  GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_)
-
-
+#define ASSERT_PRED1(pred, v1) GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_)
 
 // Helper function for implementing {EXPECT|ASSERT}_PRED2.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2>
-AssertionResult AssertPred2Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  Pred pred,
-                                  const T1& v1,
+template <typename Pred, typename T1, typename T2>
+AssertionResult AssertPred2Helper(const char* pred_text, const char* e1,
+                                  const char* e2, Pred pred, const T1& v1,
                                   const T2& v2) {
   if (pred(v1, v2)) return AssertionSuccess();
 
@@ -145,19 +130,14 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \
-                on_failure)
+#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED2.  Don't use
 // this in your code.
-#define GTEST_PRED2_(pred, v1, v2, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             pred, \
-                                             v1, \
-                                             v2), on_failure)
+#define GTEST_PRED2_(pred, v1, v2, on_failure)                               \
+  GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, #v1, #v2, pred, v1, v2), \
+                on_failure)
 
 // Binary predicate assertion macros.
 #define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \
@@ -169,22 +149,12 @@
 #define ASSERT_PRED2(pred, v1, v2) \
   GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_)
 
-
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED3.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2,
-          typename T3>
-AssertionResult AssertPred3Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  const char* e3,
-                                  Pred pred,
-                                  const T1& v1,
-                                  const T2& v2,
-                                  const T3& v3) {
+template <typename Pred, typename T1, typename T2, typename T3>
+AssertionResult AssertPred3Helper(const char* pred_text, const char* e1,
+                                  const char* e2, const char* e3, Pred pred,
+                                  const T1& v1, const T2& v2, const T3& v3) {
   if (pred(v1, v2, v3)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -198,21 +168,15 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \
-                on_failure)
+#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED3.  Don't use
 // this in your code.
-#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             #v3, \
-                                             pred, \
-                                             v1, \
-                                             v2, \
-                                             v3), on_failure)
+#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)                          \
+  GTEST_ASSERT_(                                                            \
+      ::testing::AssertPred3Helper(#pred, #v1, #v2, #v3, pred, v1, v2, v3), \
+      on_failure)
 
 // Ternary predicate assertion macros.
 #define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \
@@ -224,25 +188,13 @@
 #define ASSERT_PRED3(pred, v1, v2, v3) \
   GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_)
 
-
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED4.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2,
-          typename T3,
-          typename T4>
-AssertionResult AssertPred4Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  const char* e3,
-                                  const char* e4,
-                                  Pred pred,
-                                  const T1& v1,
-                                  const T2& v2,
-                                  const T3& v3,
-                                  const T4& v4) {
+template <typename Pred, typename T1, typename T2, typename T3, typename T4>
+AssertionResult AssertPred4Helper(const char* pred_text, const char* e1,
+                                  const char* e2, const char* e3,
+                                  const char* e4, Pred pred, const T1& v1,
+                                  const T2& v2, const T3& v3, const T4& v4) {
   if (pred(v1, v2, v3, v4)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -257,23 +209,15 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\
-  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \
-                on_failure)
+#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure) \
+  GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED4.  Don't use
 // this in your code.
-#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             #v3, \
-                                             #v4, \
-                                             pred, \
-                                             v1, \
-                                             v2, \
-                                             v3, \
-                                             v4), on_failure)
+#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)                        \
+  GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, #v1, #v2, #v3, #v4, pred, \
+                                             v1, v2, v3, v4),                 \
+                on_failure)
 
 // 4-ary predicate assertion macros.
 #define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \
@@ -285,28 +229,15 @@
 #define ASSERT_PRED4(pred, v1, v2, v3, v4) \
   GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_)
 
-
-
 // Helper function for implementing {EXPECT|ASSERT}_PRED5.  Don't use
 // this in your code.
-template <typename Pred,
-          typename T1,
-          typename T2,
-          typename T3,
-          typename T4,
+template <typename Pred, typename T1, typename T2, typename T3, typename T4,
           typename T5>
-AssertionResult AssertPred5Helper(const char* pred_text,
-                                  const char* e1,
-                                  const char* e2,
-                                  const char* e3,
-                                  const char* e4,
-                                  const char* e5,
-                                  Pred pred,
-                                  const T1& v1,
-                                  const T2& v2,
-                                  const T3& v3,
-                                  const T4& v4,
-                                  const T5& v5) {
+AssertionResult AssertPred5Helper(const char* pred_text, const char* e1,
+                                  const char* e2, const char* e3,
+                                  const char* e4, const char* e5, Pred pred,
+                                  const T1& v1, const T2& v2, const T3& v3,
+                                  const T4& v4, const T5& v5) {
   if (pred(v1, v2, v3, v4, v5)) return AssertionSuccess();
 
   return AssertionFailure()
@@ -322,25 +253,16 @@
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5.
 // Don't use this in your code.
-#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\
+#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)  \
   GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \
                 on_failure)
 
 // Internal macro for implementing {EXPECT|ASSERT}_PRED5.  Don't use
 // this in your code.
-#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\
-  GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \
-                                             #v1, \
-                                             #v2, \
-                                             #v3, \
-                                             #v4, \
-                                             #v5, \
-                                             pred, \
-                                             v1, \
-                                             v2, \
-                                             v3, \
-                                             v4, \
-                                             v5), on_failure)
+#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)                   \
+  GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, #v1, #v2, #v3, #v4, #v5, \
+                                             pred, v1, v2, v3, v4, v5),      \
+                on_failure)
 
 // 5-ary predicate assertion macros.
 #define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \
@@ -352,8 +274,6 @@
 #define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \
   GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_)
 
-
-
 }  // namespace testing
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h
index 38b9d85..1f37dc3 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/gtest_prod.h
@@ -27,9 +27,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-//
-// Google C++ Testing and Mocking Framework definitions useful in production code.
-// GOOGLETEST_CM0003 DO NOT DELETE
+// Google C++ Testing and Mocking Framework definitions useful in production
+// code.
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_
 #define GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_
@@ -55,7 +54,7 @@
 // Note: The test class must be in the same namespace as the class being tested.
 // For example, putting MyClassTest in an anonymous namespace will not work.
 
-#define FRIEND_TEST(test_case_name, test_name)\
-friend class test_case_name##_##test_name##_Test
+#define FRIEND_TEST(test_case_name, test_name) \
+  friend class test_case_name##_##test_name##_Test
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_GTEST_PROD_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h
index c4ba098..66bfb48 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/custom/gtest-port.h
@@ -34,6 +34,11 @@
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_
 
+// TODO: b/302409123 - <iomanip> was previously included by GTest internal
+// headers, but was recently removed. Temporarily add it here to unblock
+// upgrades.
+#include <iomanip>
+
 // Suppress warnings for deprecated *_TEST_CASE_* macros.
 #define GTEST_INTERNAL_DEPRECATED(message)
 
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
index 490296d..8e9c988 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
@@ -26,33 +26,38 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines internal utilities needed for implementing
 // death tests.  They are subject to change without notice.
-// GOOGLETEST_CM0001 DO NOT DELETE
+
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_
 
+#include <stdio.h>
+
+#include <memory>
+#include <string>
+
 #include "gtest/gtest-matchers.h"
 #include "gtest/internal/gtest-internal.h"
 
-#include <stdio.h>
-#include <memory>
+GTEST_DECLARE_string_(internal_run_death_test);
 
 namespace testing {
 namespace internal {
 
-GTEST_DECLARE_string_(internal_run_death_test);
-
 // Names of the flags (needed for parsing Google Test flags).
 const char kDeathTestStyleFlag[] = "death_test_style";
 const char kDeathTestUseFork[] = "death_test_use_fork";
 const char kInternalRunDeathTestFlag[] = "internal_run_death_test";
 
-#if GTEST_HAS_DEATH_TEST
+#ifdef GTEST_HAS_DEATH_TEST
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
@@ -83,17 +88,19 @@
   static bool Create(const char* statement, Matcher<const std::string&> matcher,
                      const char* file, int line, DeathTest** test);
   DeathTest();
-  virtual ~DeathTest() { }
+  virtual ~DeathTest() = default;
 
   // A helper class that aborts a death test when it's deleted.
   class ReturnSentinel {
    public:
-    explicit ReturnSentinel(DeathTest* test) : test_(test) { }
+    explicit ReturnSentinel(DeathTest* test) : test_(test) {}
     ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); }
+
    private:
     DeathTest* const test_;
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ReturnSentinel);
-  } GTEST_ATTRIBUTE_UNUSED_;
+    ReturnSentinel(const ReturnSentinel&) = delete;
+    ReturnSentinel& operator=(const ReturnSentinel&) = delete;
+  };
 
   // An enumeration of possible roles that may be taken when a death
   // test is encountered.  EXECUTE means that the death test logic should
@@ -137,7 +144,8 @@
   // A string containing a description of the outcome of the last death test.
   static std::string last_death_test_message_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest);
+  DeathTest(const DeathTest&) = delete;
+  DeathTest& operator=(const DeathTest&) = delete;
 };
 
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
@@ -145,7 +153,7 @@
 // Factory interface for death tests.  May be mocked out for testing.
 class DeathTestFactory {
  public:
-  virtual ~DeathTestFactory() { }
+  virtual ~DeathTestFactory() = default;
   virtual bool Create(const char* statement,
                       Matcher<const std::string&> matcher, const char* file,
                       int line, DeathTest** test) = 0;
@@ -186,28 +194,28 @@
 
 // Traps C++ exceptions escaping statement and reports them as test
 // failures. Note that trapping SEH exceptions is not implemented here.
-# if GTEST_HAS_EXCEPTIONS
-#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
-  try { \
-    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-  } catch (const ::std::exception& gtest_exception) { \
-    fprintf(\
-        stderr, \
-        "\n%s: Caught std::exception-derived exception escaping the " \
-        "death test statement. Exception message: %s\n", \
+#if GTEST_HAS_EXCEPTIONS
+#define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test)           \
+  try {                                                                      \
+    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);               \
+  } catch (const ::std::exception& gtest_exception) {                        \
+    fprintf(                                                                 \
+        stderr,                                                              \
+        "\n%s: Caught std::exception-derived exception escaping the "        \
+        "death test statement. Exception message: %s\n",                     \
         ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \
-        gtest_exception.what()); \
-    fflush(stderr); \
+        gtest_exception.what());                                             \
+    fflush(stderr);                                                          \
     death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
-  } catch (...) { \
+  } catch (...) {                                                            \
     death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
   }
 
-# else
-#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
+#else
+#define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
   GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)
 
-# endif
+#endif
 
 // This macro is for implementing ASSERT_DEATH*, EXPECT_DEATH*,
 // ASSERT_EXIT*, and EXPECT_EXIT*.
@@ -230,14 +238,12 @@
           }                                                                    \
           break;                                                               \
         case ::testing::internal::DeathTest::EXECUTE_TEST: {                   \
-          ::testing::internal::DeathTest::ReturnSentinel gtest_sentinel(       \
+          const ::testing::internal::DeathTest::ReturnSentinel gtest_sentinel( \
               gtest_dt);                                                       \
           GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt);            \
           gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE);   \
           break;                                                               \
         }                                                                      \
-        default:                                                               \
-          break;                                                               \
       }                                                                        \
     }                                                                          \
   } else                                                                       \
@@ -265,16 +271,12 @@
 // RUN_ALL_TESTS was called.
 class InternalRunDeathTestFlag {
  public:
-  InternalRunDeathTestFlag(const std::string& a_file,
-                           int a_line,
-                           int an_index,
+  InternalRunDeathTestFlag(const std::string& a_file, int a_line, int an_index,
                            int a_write_fd)
-      : file_(a_file), line_(a_line), index_(an_index),
-        write_fd_(a_write_fd) {}
+      : file_(a_file), line_(a_line), index_(an_index), write_fd_(a_write_fd) {}
 
   ~InternalRunDeathTestFlag() {
-    if (write_fd_ >= 0)
-      posix::Close(write_fd_);
+    if (write_fd_ >= 0) posix::Close(write_fd_);
   }
 
   const std::string& file() const { return file_; }
@@ -288,7 +290,8 @@
   int index_;
   int write_fd_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(InternalRunDeathTestFlag);
+  InternalRunDeathTestFlag(const InternalRunDeathTestFlag&) = delete;
+  InternalRunDeathTestFlag& operator=(const InternalRunDeathTestFlag&) = delete;
 };
 
 // Returns a newly created InternalRunDeathTestFlag object with fields
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h
index 0c033ab..5189c81 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-filepath.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // Google Test filepath utilities
 //
 // This header file declares classes and functions used internally by
@@ -35,16 +35,23 @@
 // This file is #included in gtest/internal/gtest-internal.h.
 // Do not include this header file separately!
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
 
+#include <string>
+
+#include "gtest/internal/gtest-port.h"
 #include "gtest/internal/gtest-string.h"
 
 GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
 /* class A needs to have dll-interface to be used by clients of class B */)
 
+#if GTEST_HAS_FILE_SYSTEM
+
 namespace testing {
 namespace internal {
 
@@ -61,8 +68,8 @@
 
 class GTEST_API_ FilePath {
  public:
-  FilePath() : pathname_("") { }
-  FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { }
+  FilePath() : pathname_("") {}
+  FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) {}
 
   explicit FilePath(const std::string& pathname) : pathname_(pathname) {
     Normalize();
@@ -73,9 +80,7 @@
     return *this;
   }
 
-  void Set(const FilePath& rhs) {
-    pathname_ = rhs.pathname_;
-  }
+  void Set(const FilePath& rhs) { pathname_ = rhs.pathname_; }
 
   const std::string& string() const { return pathname_; }
   const char* c_str() const { return pathname_.c_str(); }
@@ -88,8 +93,7 @@
   // than zero (e.g., 12), returns "dir/test_12.xml".
   // On Windows platform, uses \ as the separator rather than /.
   static FilePath MakeFileName(const FilePath& directory,
-                               const FilePath& base_name,
-                               int number,
+                               const FilePath& base_name, int number,
                                const char* extension);
 
   // Given directory = "dir", relative_path = "test.xml",
@@ -200,6 +204,16 @@
   // separators. Returns NULL if no path separator was found.
   const char* FindLastPathSeparator() const;
 
+  // Returns the length of the path root, including the directory separator at
+  // the end of the prefix. Returns zero by definition if the path is relative.
+  // Examples:
+  // - [Windows] "..\Sibling" => 0
+  // - [Windows] "\Windows" => 1
+  // - [Windows] "C:/Windows\Notepad.exe" => 3
+  // - [Windows] "\\Host\Share\C$/Windows" => 13
+  // - [UNIX] "/bin" => 1
+  size_t CalculateRootLength() const;
+
   std::string pathname_;
 };  // class FilePath
 
@@ -208,4 +222,6 @@
 
 GTEST_DISABLE_MSC_WARNINGS_POP_()  //  4251
 
+#endif  // GTEST_HAS_FILE_SYSTEM
+
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h
index f8cbdbd..4f077fc 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-internal.h
@@ -26,40 +26,44 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file declares functions and macros used internally by
 // Google Test.  They are subject to change without notice.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
 
 #include "gtest/internal/gtest-port.h"
 
-#if GTEST_OS_LINUX
-# include <stdlib.h>
-# include <sys/types.h>
-# include <sys/wait.h>
-# include <unistd.h>
+#ifdef GTEST_OS_LINUX
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
 #endif  // GTEST_OS_LINUX
 
 #if GTEST_HAS_EXCEPTIONS
-# include <stdexcept>
+#include <stdexcept>
 #endif
 
 #include <ctype.h>
 #include <float.h>
 #include <string.h>
+
 #include <cstdint>
-#include <iomanip>
+#include <functional>
 #include <limits>
 #include <map>
 #include <set>
 #include <string>
 #include <type_traits>
+#include <utility>
 #include <vector>
 
 #include "gtest/gtest-message.h"
@@ -74,9 +78,9 @@
 //
 // will result in the token foo__LINE__, instead of foo followed by
 // the current line number.  For more details, see
-// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6
+// https://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6
 #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
-#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
+#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo##bar
 
 // Stringifies its argument.
 // Work around a bug in visual studio which doesn't accept code like this:
@@ -98,21 +102,21 @@
 
 // Forward declarations.
 
-class AssertionResult;                 // Result of an assertion.
-class Message;                         // Represents a failure message.
-class Test;                            // Represents a test.
-class TestInfo;                        // Information about a test.
-class TestPartResult;                  // Result of a test part.
-class UnitTest;                        // A collection of test suites.
+class AssertionResult;  // Result of an assertion.
+class Message;          // Represents a failure message.
+class Test;             // Represents a test.
+class TestInfo;         // Information about a test.
+class TestPartResult;   // Result of a test part.
+class UnitTest;         // A collection of test suites.
 
 template <typename T>
 ::std::string PrintToString(const T& value);
 
 namespace internal {
 
-struct TraceInfo;                      // Information about a trace point.
-class TestInfoImpl;                    // Opaque implementation of TestInfo
-class UnitTestImpl;                    // Opaque implementation of UnitTest
+struct TraceInfo;    // Information about a trace point.
+class TestInfoImpl;  // Opaque implementation of TestInfo
+class UnitTestImpl;  // Opaque implementation of UnitTest
 
 // The text used in failure messages to indicate the start of the
 // stack trace.
@@ -121,6 +125,7 @@
 // An IgnoredValue object can be implicitly constructed from ANY value.
 class IgnoredValue {
   struct Sink {};
+
  public:
   // This constructor template allows any value to be implicitly
   // converted to IgnoredValue.  The object has no data member and
@@ -136,13 +141,13 @@
 };
 
 // Appends the user-supplied message to the Google-Test-generated message.
-GTEST_API_ std::string AppendUserMessage(
-    const std::string& gtest_msg, const Message& user_msg);
+GTEST_API_ std::string AppendUserMessage(const std::string& gtest_msg,
+                                         const Message& user_msg);
 
 #if GTEST_HAS_EXCEPTIONS
 
-GTEST_DISABLE_MSC_WARNINGS_PUSH_(4275 \
-/* an exported class was derived from a class that was not exported */)
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(
+    4275 /* an exported class was derived from a class that was not exported */)
 
 // This exception is thrown by (and only by) a failed Google Test
 // assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions
@@ -164,7 +169,7 @@
 // All edits cost the same, with replace having lower priority than
 // add/remove.
 // Simple implementation of the Wagner-Fischer algorithm.
-// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
+// See https://en.wikipedia.org/wiki/Wagner-Fischer_algorithm
 enum EditType { kMatch, kAdd, kRemove, kReplace };
 GTEST_API_ std::vector<EditType> CalculateOptimalEdits(
     const std::vector<size_t>& left, const std::vector<size_t>& right);
@@ -181,14 +186,6 @@
 
 }  // namespace edit_distance
 
-// Calculate the diff between 'left' and 'right' and return it in unified diff
-// format.
-// If not null, stores in 'total_line_count' the total number of lines found
-// in left + right.
-GTEST_API_ std::string DiffStrings(const std::string& left,
-                                   const std::string& right,
-                                   size_t* total_line_count);
-
 // Constructs and returns the message for an equality assertion
 // (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure.
 //
@@ -212,10 +209,8 @@
 
 // Constructs a failure message for Boolean assertions such as EXPECT_TRUE.
 GTEST_API_ std::string GetBoolAssertionFailureMessage(
-    const AssertionResult& assertion_result,
-    const char* expression_text,
-    const char* actual_predicate_value,
-    const char* expected_predicate_value);
+    const AssertionResult& assertion_result, const char* expression_text,
+    const char* actual_predicate_value, const char* expected_predicate_value);
 
 // This template class represents an IEEE floating-point number
 // (either single-precision or double-precision, depending on the
@@ -241,7 +236,7 @@
 //   For double, there are 11 exponent bits and 52 fraction bits.
 //
 //   More details can be found at
-//   http://en.wikipedia.org/wiki/IEEE_floating-point_standard.
+//   https://en.wikipedia.org/wiki/IEEE_floating-point_standard.
 //
 // Template parameter:
 //
@@ -256,11 +251,11 @@
   // Constants.
 
   // # of bits in a number.
-  static const size_t kBitCount = 8*sizeof(RawType);
+  static const size_t kBitCount = 8 * sizeof(RawType);
 
   // # of fraction bits in a number.
   static const size_t kFractionBitCount =
-    std::numeric_limits<RawType>::digits - 1;
+      std::numeric_limits<RawType>::digits - 1;
 
   // # of exponent bits in a number.
   static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount;
@@ -269,8 +264,8 @@
   static const Bits kSignBitMask = static_cast<Bits>(1) << (kBitCount - 1);
 
   // The mask for the fraction bits.
-  static const Bits kFractionBitMask =
-    ~static_cast<Bits>(0) >> (kExponentBitCount + 1);
+  static const Bits kFractionBitMask = ~static_cast<Bits>(0) >>
+                                       (kExponentBitCount + 1);
 
   // The mask for the exponent bits.
   static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask);
@@ -286,7 +281,7 @@
   // bits.  Therefore, 4 should be enough for ordinary use.
   //
   // See the following article for more details on ULP:
-  // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
+  // https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
   static const uint32_t kMaxUlps = 4;
 
   // Constructs a FloatingPoint from a raw floating-point number.
@@ -309,17 +304,12 @@
   }
 
   // Returns the floating-point number that represent positive infinity.
-  static RawType Infinity() {
-    return ReinterpretBits(kExponentBitMask);
-  }
-
-  // Returns the maximum representable finite floating-point number.
-  static RawType Max();
+  static RawType Infinity() { return ReinterpretBits(kExponentBitMask); }
 
   // Non-static methods
 
   // Returns the bits that represents this number.
-  const Bits &bits() const { return u_.bits_; }
+  const Bits& bits() const { return u_.bits_; }
 
   // Returns the exponent bits of this number.
   Bits exponent_bits() const { return kExponentBitMask & u_.bits_; }
@@ -348,8 +338,8 @@
     // a NAN must return false.
     if (is_nan() || rhs.is_nan()) return false;
 
-    return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_)
-        <= kMaxUlps;
+    return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) <=
+           kMaxUlps;
   }
 
  private:
@@ -372,9 +362,9 @@
   //   N - 1  (the biggest number representable using
   //          sign-and-magnitude) is represented by 2N - 1.
   //
-  // Read http://en.wikipedia.org/wiki/Signed_number_representations
+  // Read https://en.wikipedia.org/wiki/Signed_number_representations
   // for more details on signed number representations.
-  static Bits SignAndMagnitudeToBiased(const Bits &sam) {
+  static Bits SignAndMagnitudeToBiased(const Bits& sam) {
     if (kSignBitMask & sam) {
       // sam represents a negative number.
       return ~sam + 1;
@@ -386,8 +376,8 @@
 
   // Given two numbers in the sign-and-magnitude representation,
   // returns the distance between them as an unsigned number.
-  static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1,
-                                                     const Bits &sam2) {
+  static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits& sam1,
+                                                     const Bits& sam2) {
     const Bits biased1 = SignAndMagnitudeToBiased(sam1);
     const Bits biased2 = SignAndMagnitudeToBiased(sam2);
     return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1);
@@ -396,13 +386,6 @@
   FloatingPointUnion u_;
 };
 
-// We cannot use std::numeric_limits<T>::max() as it clashes with the max()
-// macro defined by <windows.h>.
-template <>
-inline float FloatingPoint<float>::Max() { return FLT_MAX; }
-template <>
-inline double FloatingPoint<double>::Max() { return DBL_MAX; }
-
 // Typedefs the instances of the FloatingPoint template class that we
 // care to use.
 typedef FloatingPoint<float> Float;
@@ -451,7 +434,7 @@
 // of a Test object.
 class TestFactoryBase {
  public:
-  virtual ~TestFactoryBase() {}
+  virtual ~TestFactoryBase() = default;
 
   // Creates a test instance to run. The instance is both created and destroyed
   // within TestInfoImpl::Run()
@@ -461,10 +444,11 @@
   TestFactoryBase() {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestFactoryBase);
+  TestFactoryBase(const TestFactoryBase&) = delete;
+  TestFactoryBase& operator=(const TestFactoryBase&) = delete;
 };
 
-// This class provides implementation of TeastFactoryBase interface.
+// This class provides implementation of TestFactoryBase interface.
 // It is used in TEST and TEST_F macros.
 template <class TestClass>
 class TestFactoryImpl : public TestFactoryBase {
@@ -472,7 +456,7 @@
   Test* CreateTest() override { return new TestClass; }
 };
 
-#if GTEST_OS_WINDOWS
+#ifdef GTEST_OS_WINDOWS
 
 // Predicate-formatters for implementing the HRESULT checking macros
 // {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}
@@ -510,11 +494,11 @@
 
 template <typename T>
 //  Note that SuiteApiResolver inherits from T because
-//  SetUpTestSuite()/TearDownTestSuite() could be protected. Ths way
+//  SetUpTestSuite()/TearDownTestSuite() could be protected. This way
 //  SuiteApiResolver can access them.
 struct SuiteApiResolver : T {
   // testing::Test is only forward declared at this point. So we make it a
-  // dependend class for the compiler to be OK with it.
+  // dependent class for the compiler to be OK with it.
   using Test =
       typename std::conditional<sizeof(T) != 0, ::testing::Test, void>::type;
 
@@ -634,7 +618,7 @@
                                         const char* registered_tests);
 
  private:
-  typedef ::std::map<std::string, CodeLocation> RegisteredTestsMap;
+  typedef ::std::map<std::string, CodeLocation, std::less<>> RegisteredTestsMap;
 
   bool registered_;
   RegisteredTestsMap registered_tests_;
@@ -654,7 +638,8 @@
   if (comma == nullptr) {
     return nullptr;
   }
-  while (IsSpace(*(++comma))) {}
+  while (IsSpace(*(++comma))) {
+  }
   return comma;
 }
 
@@ -668,7 +653,7 @@
 // Splits a given string on a given delimiter, populating a given
 // vector with the fields.
 void SplitString(const ::std::string& str, char delimiter,
-                 ::std::vector< ::std::string>* dest);
+                 ::std::vector<::std::string>* dest);
 
 // The default argument to the template below for the case when the user does
 // not provide a name generator.
@@ -781,13 +766,13 @@
                        const std::vector<std::string>& type_names =
                            GenerateNames<DefaultNameGenerator, Types>()) {
     RegisterTypeParameterizedTestSuiteInstantiation(case_name);
-    std::string test_name = StripTrailingSpaces(
-        GetPrefixUntilComma(test_names));
+    std::string test_name =
+        StripTrailingSpaces(GetPrefixUntilComma(test_names));
     if (!state->TestExists(test_name)) {
       fprintf(stderr, "Failed to get code location for test %s.%s at %s.",
               case_name, test_name.c_str(),
-              FormatFileLocation(code_location.file.c_str(),
-                                 code_location.line).c_str());
+              FormatFileLocation(code_location.file.c_str(), code_location.line)
+                  .c_str());
       fflush(stderr);
       posix::Abort();
     }
@@ -831,8 +816,7 @@
 // For example, if Foo() calls Bar(), which in turn calls
 // GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in
 // the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't.
-GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(
-    UnitTest* unit_test, int skip_count);
+GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(int skip_count);
 
 // Helpers for suppressing warnings on unreachable code or constant
 // condition.
@@ -881,7 +865,8 @@
 
  private:
   uint32_t state_;
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Random);
+  Random(const Random&) = delete;
+  Random& operator=(const Random&) = delete;
 };
 
 // Turns const U&, U&, const U, and U all into U.
@@ -914,8 +899,10 @@
       HasDebugStringType::value && HasShortDebugStringType::value;
 };
 
+#ifdef GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
 template <typename T>
 constexpr bool HasDebugStringAndShortDebugString<T>::value;
+#endif
 
 // When the compiler sees expression IsContainerTest<C>(0), if C is an
 // STL-style container class, the first overload of IsContainerTest
@@ -954,7 +941,9 @@
 
 typedef char IsNotContainer;
 template <class C>
-IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; }
+IsNotContainer IsContainerTest(long /* dummy */) {
+  return '\0';
+}
 
 // Trait to detect whether a type T is a hash table.
 // The heuristic used is that the type contains an inner type `hasher` and does
@@ -1017,11 +1006,13 @@
 
 // This generic version is used when k is 0.
 template <typename T, typename U>
-inline bool ArrayEq(const T& lhs, const U& rhs) { return lhs == rhs; }
+inline bool ArrayEq(const T& lhs, const U& rhs) {
+  return lhs == rhs;
+}
 
 // This overload is used when k >= 1.
 template <typename T, typename U, size_t N>
-inline bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N]) {
+inline bool ArrayEq(const T (&lhs)[N], const U (&rhs)[N]) {
   return internal::ArrayEq(lhs, N, rhs);
 }
 
@@ -1031,8 +1022,7 @@
 template <typename T, typename U>
 bool ArrayEq(const T* lhs, size_t size, const U* rhs) {
   for (size_t i = 0; i != size; i++) {
-    if (!internal::ArrayEq(lhs[i], rhs[i]))
-      return false;
+    if (!internal::ArrayEq(lhs[i], rhs[i])) return false;
   }
   return true;
 }
@@ -1042,8 +1032,7 @@
 template <typename Iter, typename Element>
 Iter ArrayAwareFind(Iter begin, Iter end, const Element& elem) {
   for (Iter it = begin; it != end; ++it) {
-    if (internal::ArrayEq(*it, elem))
-      return it;
+    if (internal::ArrayEq(*it, elem)) return it;
   }
   return end;
 }
@@ -1057,11 +1046,13 @@
 
 // This generic version is used when k is 0.
 template <typename T, typename U>
-inline void CopyArray(const T& from, U* to) { *to = from; }
+inline void CopyArray(const T& from, U* to) {
+  *to = from;
+}
 
 // This overload is used when k >= 1.
 template <typename T, typename U, size_t N>
-inline void CopyArray(const T(&from)[N], U(*to)[N]) {
+inline void CopyArray(const T (&from)[N], U (*to)[N]) {
   internal::CopyArray(from, N, *to);
 }
 
@@ -1114,8 +1105,7 @@
   }
 
   ~NativeArray() {
-    if (clone_ != &NativeArray::InitRef)
-      delete[] array_;
+    if (clone_ != &NativeArray::InitRef) delete[] array_;
   }
 
   // STL-style container methods.
@@ -1123,8 +1113,7 @@
   const_iterator begin() const { return array_; }
   const_iterator end() const { return array_ + size_; }
   bool operator==(const NativeArray& rhs) const {
-    return size() == rhs.size() &&
-        ArrayEq(begin(), size(), rhs.begin());
+    return size() == rhs.size() && ArrayEq(begin(), size(), rhs.begin());
   }
 
  private:
@@ -1335,9 +1324,9 @@
 #endif
 }  // namespace std
 
-#define GTEST_MESSAGE_AT_(file, line, message, result_type) \
-  ::testing::internal::AssertHelper(result_type, file, line, message) \
-    = ::testing::Message()
+#define GTEST_MESSAGE_AT_(file, line, message, result_type)             \
+  ::testing::internal::AssertHelper(result_type, file, line, message) = \
+      ::testing::Message()
 
 #define GTEST_MESSAGE_(message, result_type) \
   GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type)
@@ -1458,103 +1447,113 @@
 
 #endif  // GTEST_HAS_EXCEPTIONS
 
-#define GTEST_TEST_NO_THROW_(statement, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (::testing::internal::TrueWithString gtest_msg{}) { \
-    try { \
-      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-    } \
-    GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_() \
-    catch (...) { \
-      gtest_msg.value = "it throws."; \
-      goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \
-    } \
-  } else \
-    GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \
-      fail(("Expected: " #statement " doesn't throw an exception.\n" \
-            "  Actual: " + gtest_msg.value).c_str())
+#define GTEST_TEST_NO_THROW_(statement, fail)                            \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                          \
+  if (::testing::internal::TrueWithString gtest_msg{}) {                 \
+    try {                                                                \
+      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);         \
+    }                                                                    \
+    GTEST_TEST_NO_THROW_CATCH_STD_EXCEPTION_()                           \
+    catch (...) {                                                        \
+      gtest_msg.value = "it throws.";                                    \
+      goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__);      \
+    }                                                                    \
+  } else                                                                 \
+    GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__)              \
+        : fail(("Expected: " #statement " doesn't throw an exception.\n" \
+                "  Actual: " +                                           \
+                gtest_msg.value)                                         \
+                   .c_str())
 
-#define GTEST_TEST_ANY_THROW_(statement, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (::testing::internal::AlwaysTrue()) { \
-    bool gtest_caught_any = false; \
-    try { \
-      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-    } \
-    catch (...) { \
-      gtest_caught_any = true; \
-    } \
-    if (!gtest_caught_any) { \
+#define GTEST_TEST_ANY_THROW_(statement, fail)                       \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                      \
+  if (::testing::internal::AlwaysTrue()) {                           \
+    bool gtest_caught_any = false;                                   \
+    try {                                                            \
+      GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);     \
+    } catch (...) {                                                  \
+      gtest_caught_any = true;                                       \
+    }                                                                \
+    if (!gtest_caught_any) {                                         \
       goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \
-    } \
-  } else \
-    GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \
-      fail("Expected: " #statement " throws an exception.\n" \
-           "  Actual: it doesn't.")
-
+    }                                                                \
+  } else                                                             \
+    GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__)         \
+        : fail("Expected: " #statement                               \
+               " throws an exception.\n"                             \
+               "  Actual: it doesn't.")
 
 // Implements Boolean test assertions such as EXPECT_TRUE. expression can be
 // either a boolean expression or an AssertionResult. text is a textual
 // representation of expression as it was passed into the EXPECT_TRUE.
 #define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (const ::testing::AssertionResult gtest_ar_ = \
-      ::testing::AssertionResult(expression)) \
-    ; \
-  else \
-    fail(::testing::internal::GetBoolAssertionFailureMessage(\
-        gtest_ar_, text, #actual, #expected).c_str())
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                       \
+  if (const ::testing::AssertionResult gtest_ar_ =                    \
+          ::testing::AssertionResult(expression))                     \
+    ;                                                                 \
+  else                                                                \
+    fail(::testing::internal::GetBoolAssertionFailureMessage(         \
+             gtest_ar_, text, #actual, #expected)                     \
+             .c_str())
 
-#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \
-  GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-  if (::testing::internal::AlwaysTrue()) { \
-    ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \
-    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
-    if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \
+#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail)               \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_                                     \
+  if (::testing::internal::AlwaysTrue()) {                          \
+    const ::testing::internal::HasNewFatalFailureHelper             \
+        gtest_fatal_failure_checker;                                \
+    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement);      \
+    if (gtest_fatal_failure_checker.has_new_fatal_failure()) {      \
       goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \
-    } \
-  } else \
-    GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \
-      fail("Expected: " #statement " doesn't generate new fatal " \
-           "failures in the current thread.\n" \
-           "  Actual: it does.")
+    }                                                               \
+  } else /* NOLINT */                                               \
+    GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__)         \
+        : fail("Expected: " #statement                              \
+               " doesn't generate new fatal "                       \
+               "failures in the current thread.\n"                  \
+               "  Actual: it does.")
 
 // Expands to the name of the class that implements the given test.
 #define GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \
   test_suite_name##_##test_name##_Test
 
 // Helper macro for defining tests.
-#define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id)      \
-  static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1,                \
-                "test_suite_name must not be empty");                         \
-  static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1,                      \
-                "test_name must not be empty");                               \
-  class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                    \
-      : public parent_class {                                                 \
-   public:                                                                    \
-    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default;           \
-    ~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default; \
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name,   \
-                                                           test_name));       \
-    GTEST_DISALLOW_MOVE_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name,   \
-                                                           test_name));       \
-                                                                              \
-   private:                                                                   \
-    void TestBody() override;                                                 \
-    static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;     \
-  };                                                                          \
-                                                                              \
-  ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name,          \
-                                                    test_name)::test_info_ =  \
-      ::testing::internal::MakeAndRegisterTestInfo(                           \
-          #test_suite_name, #test_name, nullptr, nullptr,                     \
-          ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id), \
-          ::testing::internal::SuiteApiResolver<                              \
-              parent_class>::GetSetUpCaseOrSuite(__FILE__, __LINE__),         \
-          ::testing::internal::SuiteApiResolver<                              \
-              parent_class>::GetTearDownCaseOrSuite(__FILE__, __LINE__),      \
-          new ::testing::internal::TestFactoryImpl<GTEST_TEST_CLASS_NAME_(    \
-              test_suite_name, test_name)>);                                  \
+#define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id)       \
+  static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1,                 \
+                "test_suite_name must not be empty");                          \
+  static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1,                       \
+                "test_name must not be empty");                                \
+  class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                     \
+      : public parent_class {                                                  \
+   public:                                                                     \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() = default;            \
+    ~GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() override = default;  \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                         \
+    (const GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) &) = delete;     \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) & operator=(            \
+        const GTEST_TEST_CLASS_NAME_(test_suite_name,                          \
+                                     test_name) &) = delete; /* NOLINT */      \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)                         \
+    (GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) &&) noexcept = delete; \
+    GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) & operator=(            \
+        GTEST_TEST_CLASS_NAME_(test_suite_name,                                \
+                               test_name) &&) noexcept = delete; /* NOLINT */  \
+                                                                               \
+   private:                                                                    \
+    void TestBody() override;                                                  \
+    static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_;      \
+  };                                                                           \
+                                                                               \
+  ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name,           \
+                                                    test_name)::test_info_ =   \
+      ::testing::internal::MakeAndRegisterTestInfo(                            \
+          #test_suite_name, #test_name, nullptr, nullptr,                      \
+          ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id),  \
+          ::testing::internal::SuiteApiResolver<                               \
+              parent_class>::GetSetUpCaseOrSuite(__FILE__, __LINE__),          \
+          ::testing::internal::SuiteApiResolver<                               \
+              parent_class>::GetTearDownCaseOrSuite(__FILE__, __LINE__),       \
+          new ::testing::internal::TestFactoryImpl<GTEST_TEST_CLASS_NAME_(     \
+              test_suite_name, test_name)>);                                   \
   void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody()
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h
index 3e49a6b..dd39e98 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-param-util.h
@@ -27,10 +27,11 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-
 // Type and function utilities for implementing parameterized tests.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
@@ -39,26 +40,28 @@
 
 #include <cassert>
 #include <iterator>
+#include <map>
 #include <memory>
+#include <ostream>
 #include <set>
+#include <string>
 #include <tuple>
 #include <type_traits>
 #include <utility>
 #include <vector>
 
-#include "gtest/internal/gtest-internal.h"
-#include "gtest/internal/gtest-port.h"
 #include "gtest/gtest-printers.h"
 #include "gtest/gtest-test-part.h"
+#include "gtest/internal/gtest-internal.h"
+#include "gtest/internal/gtest-port.h"
 
 namespace testing {
 // Input to a parameterized test name generator, describing a test parameter.
 // Consists of the parameter value and the integer parameter index.
 template <class ParamType>
 struct TestParamInfo {
-  TestParamInfo(const ParamType& a_param, size_t an_index) :
-    param(a_param),
-    index(an_index) {}
+  TestParamInfo(const ParamType& a_param, size_t an_index)
+      : param(a_param), index(an_index) {}
   ParamType param;
   size_t index;
 };
@@ -84,15 +87,17 @@
 GTEST_API_ void ReportInvalidTestSuiteType(const char* test_suite_name,
                                            CodeLocation code_location);
 
-template <typename> class ParamGeneratorInterface;
-template <typename> class ParamGenerator;
+template <typename>
+class ParamGeneratorInterface;
+template <typename>
+class ParamGenerator;
 
 // Interface for iterating over elements provided by an implementation
 // of ParamGeneratorInterface<T>.
 template <typename T>
 class ParamIteratorInterface {
  public:
-  virtual ~ParamIteratorInterface() {}
+  virtual ~ParamIteratorInterface() = default;
   // A pointer to the base generator instance.
   // Used only for the purposes of iterator comparison
   // to make sure that two iterators belong to the same generator.
@@ -129,8 +134,7 @@
   // ParamIterator assumes ownership of the impl_ pointer.
   ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {}
   ParamIterator& operator=(const ParamIterator& other) {
-    if (this != &other)
-      impl_.reset(other.impl_->Clone());
+    if (this != &other) impl_.reset(other.impl_->Clone());
     return *this;
   }
 
@@ -157,7 +161,7 @@
  private:
   friend class ParamGenerator<T>;
   explicit ParamIterator(ParamIteratorInterface<T>* impl) : impl_(impl) {}
-  std::unique_ptr<ParamIteratorInterface<T> > impl_;
+  std::unique_ptr<ParamIteratorInterface<T>> impl_;
 };
 
 // ParamGeneratorInterface<T> is the binary interface to access generators
@@ -167,7 +171,7 @@
  public:
   typedef T ParamType;
 
-  virtual ~ParamGeneratorInterface() {}
+  virtual ~ParamGeneratorInterface() = default;
 
   // Generator interface definition
   virtual ParamIteratorInterface<T>* Begin() const = 0;
@@ -179,7 +183,7 @@
 // This class implements copy initialization semantics and the contained
 // ParamGeneratorInterface<T> instance is shared among all copies
 // of the original object. This is possible because that instance is immutable.
-template<typename T>
+template <typename T>
 class ParamGenerator {
  public:
   typedef ParamIterator<T> iterator;
@@ -196,7 +200,7 @@
   iterator end() const { return iterator(impl_->End()); }
 
  private:
-  std::shared_ptr<const ParamGeneratorInterface<T> > impl_;
+  std::shared_ptr<const ParamGeneratorInterface<T>> impl_;
 };
 
 // Generates values from a range of two comparable values. Can be used to
@@ -207,9 +211,11 @@
 class RangeGenerator : public ParamGeneratorInterface<T> {
  public:
   RangeGenerator(T begin, T end, IncrementT step)
-      : begin_(begin), end_(end),
-        step_(step), end_index_(CalculateEndIndex(begin, end, step)) {}
-  ~RangeGenerator() override {}
+      : begin_(begin),
+        end_(end),
+        step_(step),
+        end_index_(CalculateEndIndex(begin, end, step)) {}
+  ~RangeGenerator() override = default;
 
   ParamIteratorInterface<T>* Begin() const override {
     return new Iterator(this, begin_, 0, step_);
@@ -224,7 +230,7 @@
     Iterator(const ParamGeneratorInterface<T>* base, T value, int index,
              IncrementT step)
         : base_(base), value_(value), index_(index), step_(step) {}
-    ~Iterator() override {}
+    ~Iterator() override = default;
 
     const ParamGeneratorInterface<T>* BaseGenerator() const override {
       return base_;
@@ -251,7 +257,9 @@
    private:
     Iterator(const Iterator& other)
         : ParamIteratorInterface<T>(),
-          base_(other.base_), value_(other.value_), index_(other.index_),
+          base_(other.base_),
+          value_(other.value_),
+          index_(other.index_),
           step_(other.step_) {}
 
     // No implementation - assignment is unsupported.
@@ -263,12 +271,10 @@
     const IncrementT step_;
   };  // class RangeGenerator::Iterator
 
-  static int CalculateEndIndex(const T& begin,
-                               const T& end,
+  static int CalculateEndIndex(const T& begin, const T& end,
                                const IncrementT& step) {
     int end_index = 0;
-    for (T i = begin; i < end; i = static_cast<T>(i + step))
-      end_index++;
+    for (T i = begin; i < end; i = static_cast<T>(i + step)) end_index++;
     return end_index;
   }
 
@@ -283,7 +289,6 @@
   const int end_index_;
 };  // class RangeGenerator
 
-
 // Generates values from a pair of STL-style iterators. Used in the
 // ValuesIn() function. The elements are copied from the source range
 // since the source can be located on the stack, and the generator
@@ -294,7 +299,7 @@
   template <typename ForwardIterator>
   ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end)
       : container_(begin, end) {}
-  ~ValuesInIteratorRangeGenerator() override {}
+  ~ValuesInIteratorRangeGenerator() override = default;
 
   ParamIteratorInterface<T>* Begin() const override {
     return new Iterator(this, container_.begin());
@@ -311,7 +316,7 @@
     Iterator(const ParamGeneratorInterface<T>* base,
              typename ContainerType::const_iterator iterator)
         : base_(base), iterator_(iterator) {}
-    ~Iterator() override {}
+    ~Iterator() override = default;
 
     const ParamGeneratorInterface<T>* BaseGenerator() const override {
       return base_;
@@ -341,13 +346,13 @@
           << "The program attempted to compare iterators "
           << "from different generators." << std::endl;
       return iterator_ ==
-          CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
+             CheckedDowncastToActualType<const Iterator>(&other)->iterator_;
     }
 
    private:
     Iterator(const Iterator& other)
-          // The explicit constructor call suppresses a false warning
-          // emitted by gcc when supplied with the -Wextra option.
+        // The explicit constructor call suppresses a false warning
+        // emitted by gcc when supplied with the -Wextra option.
         : ParamIteratorInterface<T>(),
           base_(other.base_),
           iterator_(other.iterator_) {}
@@ -394,8 +399,8 @@
 class ParameterizedTestFactory : public TestFactoryBase {
  public:
   typedef typename TestClass::ParamType ParamType;
-  explicit ParameterizedTestFactory(ParamType parameter) :
-      parameter_(parameter) {}
+  explicit ParameterizedTestFactory(ParamType parameter)
+      : parameter_(parameter) {}
   Test* CreateTest() override {
     TestClass::SetParam(&parameter_);
     return new TestClass();
@@ -404,7 +409,8 @@
  private:
   const ParamType parameter_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestFactory);
+  ParameterizedTestFactory(const ParameterizedTestFactory&) = delete;
+  ParameterizedTestFactory& operator=(const ParameterizedTestFactory&) = delete;
 };
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
@@ -414,7 +420,7 @@
 template <class ParamType>
 class TestMetaFactoryBase {
  public:
-  virtual ~TestMetaFactoryBase() {}
+  virtual ~TestMetaFactoryBase() = default;
 
   virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0;
 };
@@ -433,14 +439,15 @@
  public:
   using ParamType = typename TestSuite::ParamType;
 
-  TestMetaFactory() {}
+  TestMetaFactory() = default;
 
   TestFactoryBase* CreateTestFactory(ParamType parameter) override {
     return new ParameterizedTestFactory<TestSuite>(parameter);
   }
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(TestMetaFactory);
+  TestMetaFactory(const TestMetaFactory&) = delete;
+  TestMetaFactory& operator=(const TestMetaFactory&) = delete;
 };
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
@@ -455,7 +462,7 @@
 // and calls RegisterTests() on each of them when asked.
 class ParameterizedTestSuiteInfoBase {
  public:
-  virtual ~ParameterizedTestSuiteInfoBase() {}
+  virtual ~ParameterizedTestSuiteInfoBase() = default;
 
   // Base part of test suite name for display purposes.
   virtual const std::string& GetTestSuiteName() const = 0;
@@ -471,14 +478,17 @@
   ParameterizedTestSuiteInfoBase() {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfoBase);
+  ParameterizedTestSuiteInfoBase(const ParameterizedTestSuiteInfoBase&) =
+      delete;
+  ParameterizedTestSuiteInfoBase& operator=(
+      const ParameterizedTestSuiteInfoBase&) = delete;
 };
 
 // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
 //
 // Report a the name of a test_suit as safe to ignore
 // as the side effect of construction of this type.
-struct MarkAsIgnored {
+struct GTEST_API_ MarkAsIgnored {
   explicit MarkAsIgnored(const char* test_suite);
 };
 
@@ -547,8 +557,8 @@
          test_it != tests_.end(); ++test_it) {
       std::shared_ptr<TestInfo> test_info = *test_it;
       for (typename InstantiationContainer::iterator gen_it =
-               instantiations_.begin(); gen_it != instantiations_.end();
-               ++gen_it) {
+               instantiations_.begin();
+           gen_it != instantiations_.end(); ++gen_it) {
         const std::string& instantiation_name = gen_it->name;
         ParamGenerator<ParamType> generator((*gen_it->generator)());
         ParamNameGeneratorFunc* name_func = gen_it->name_func;
@@ -556,7 +566,7 @@
         int line = gen_it->line;
 
         std::string test_suite_name;
-        if ( !instantiation_name.empty() )
+        if (!instantiation_name.empty())
           test_suite_name = instantiation_name + "/";
         test_suite_name += test_info->test_suite_base_name;
 
@@ -569,17 +579,18 @@
 
           Message test_name_stream;
 
-          std::string param_name = name_func(
-              TestParamInfo<ParamType>(*param_it, i));
+          std::string param_name =
+              name_func(TestParamInfo<ParamType>(*param_it, i));
 
           GTEST_CHECK_(IsValidParamName(param_name))
               << "Parameterized test name '" << param_name
-              << "' is invalid, in " << file
-              << " line " << line << std::endl;
+              << "' is invalid (contains spaces, dashes, underscores, or "
+                 "non-alphanumeric characters), in "
+              << file << " line " << line << "" << std::endl;
 
           GTEST_CHECK_(test_param_names.count(param_name) == 0)
-              << "Duplicate parameterized test name '" << param_name
-              << "', in " << file << " line " << line << std::endl;
+              << "Duplicate parameterized test name '" << param_name << "', in "
+              << file << " line " << line << std::endl;
 
           test_param_names.insert(param_name);
 
@@ -596,15 +607,15 @@
               SuiteApiResolver<TestSuite>::GetTearDownCaseOrSuite(file, line),
               test_info->test_meta_factory->CreateTestFactory(*param_it));
         }  // for param_it
-      }  // for gen_it
-    }  // for test_it
+      }    // for gen_it
+    }      // for test_it
 
     if (!generated_instantiations) {
       // There are no generaotrs, or they all generate nothing ...
       InsertSyntheticTestCase(GetTestSuiteName(), code_location_,
                               !tests_.empty());
     }
-  }    // RegisterTests
+  }  // RegisterTests
 
  private:
   // LocalTestInfo structure keeps information about a single test registered
@@ -620,42 +631,39 @@
 
     const std::string test_suite_base_name;
     const std::string test_base_name;
-    const std::unique_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
+    const std::unique_ptr<TestMetaFactoryBase<ParamType>> test_meta_factory;
     const CodeLocation code_location;
   };
-  using TestInfoContainer = ::std::vector<std::shared_ptr<TestInfo> >;
+  using TestInfoContainer = ::std::vector<std::shared_ptr<TestInfo>>;
   // Records data received from INSTANTIATE_TEST_SUITE_P macros:
   //  <Instantiation name, Sequence generator creation function,
   //     Name generator function, Source file, Source line>
   struct InstantiationInfo {
-      InstantiationInfo(const std::string &name_in,
-                        GeneratorCreationFunc* generator_in,
-                        ParamNameGeneratorFunc* name_func_in,
-                        const char* file_in,
-                        int line_in)
-          : name(name_in),
-            generator(generator_in),
-            name_func(name_func_in),
-            file(file_in),
-            line(line_in) {}
+    InstantiationInfo(const std::string& name_in,
+                      GeneratorCreationFunc* generator_in,
+                      ParamNameGeneratorFunc* name_func_in, const char* file_in,
+                      int line_in)
+        : name(name_in),
+          generator(generator_in),
+          name_func(name_func_in),
+          file(file_in),
+          line(line_in) {}
 
-      std::string name;
-      GeneratorCreationFunc* generator;
-      ParamNameGeneratorFunc* name_func;
-      const char* file;
-      int line;
+    std::string name;
+    GeneratorCreationFunc* generator;
+    ParamNameGeneratorFunc* name_func;
+    const char* file;
+    int line;
   };
   typedef ::std::vector<InstantiationInfo> InstantiationContainer;
 
   static bool IsValidParamName(const std::string& name) {
     // Check for empty string
-    if (name.empty())
-      return false;
+    if (name.empty()) return false;
 
     // Check for invalid characters
     for (std::string::size_type index = 0; index < name.size(); ++index) {
-      if (!isalnum(name[index]) && name[index] != '_')
-        return false;
+      if (!IsAlNum(name[index]) && name[index] != '_') return false;
     }
 
     return true;
@@ -666,7 +674,9 @@
   TestInfoContainer tests_;
   InstantiationContainer instantiations_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfo);
+  ParameterizedTestSuiteInfo(const ParameterizedTestSuiteInfo&) = delete;
+  ParameterizedTestSuiteInfo& operator=(const ParameterizedTestSuiteInfo&) =
+      delete;
 };  // class ParameterizedTestSuiteInfo
 
 //  Legacy API is deprecated but still available
@@ -683,7 +693,7 @@
 // ParameterizedTestSuiteInfo descriptors.
 class ParameterizedTestSuiteRegistry {
  public:
-  ParameterizedTestSuiteRegistry() {}
+  ParameterizedTestSuiteRegistry() = default;
   ~ParameterizedTestSuiteRegistry() {
     for (auto& test_suite_info : test_suite_infos_) {
       delete test_suite_info;
@@ -709,7 +719,7 @@
           // type we are looking for, so we downcast it to that type
           // without further checks.
           typed_test_info = CheckedDowncastToActualType<
-              ParameterizedTestSuiteInfo<TestSuite> >(test_suite_info);
+              ParameterizedTestSuiteInfo<TestSuite>>(test_suite_info);
         }
         break;
       }
@@ -741,7 +751,10 @@
 
   TestSuiteInfoContainer test_suite_infos_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteRegistry);
+  ParameterizedTestSuiteRegistry(const ParameterizedTestSuiteRegistry&) =
+      delete;
+  ParameterizedTestSuiteRegistry& operator=(
+      const ParameterizedTestSuiteRegistry&) = delete;
 };
 
 // Keep track of what type-parameterized test suite are defined and
@@ -783,10 +796,7 @@
 namespace internal {
 // Used in the Values() function to provide polymorphic capabilities.
 
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable : 4100)
-#endif
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4100)
 
 template <typename... Ts>
 class ValueArray {
@@ -807,9 +817,7 @@
   FlatTuple<Ts...> v_;
 };
 
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4100
 
 template <typename... T>
 class CartesianProductGenerator
@@ -819,7 +827,7 @@
 
   CartesianProductGenerator(const std::tuple<ParamGenerator<T>...>& g)
       : generators_(g) {}
-  ~CartesianProductGenerator() override {}
+  ~CartesianProductGenerator() override = default;
 
   ParamIteratorInterface<ParamType>* Begin() const override {
     return new Iterator(this, generators_, false);
@@ -836,14 +844,15 @@
       : public ParamIteratorInterface<ParamType> {
    public:
     IteratorImpl(const ParamGeneratorInterface<ParamType>* base,
-             const std::tuple<ParamGenerator<T>...>& generators, bool is_end)
+                 const std::tuple<ParamGenerator<T>...>& generators,
+                 bool is_end)
         : base_(base),
           begin_(std::get<I>(generators).begin()...),
           end_(std::get<I>(generators).end()...),
           current_(is_end ? end_ : begin_) {
       ComputeCurrentValue();
     }
-    ~IteratorImpl() override {}
+    ~IteratorImpl() override = default;
 
     const ParamGeneratorInterface<ParamType>* BaseGenerator() const override {
       return base_;
@@ -941,6 +950,78 @@
   std::tuple<Gen...> generators_;
 };
 
+template <typename From, typename To>
+class ParamGeneratorConverter : public ParamGeneratorInterface<To> {
+ public:
+  ParamGeneratorConverter(ParamGenerator<From> gen)  // NOLINT
+      : generator_(std::move(gen)) {}
+
+  ParamIteratorInterface<To>* Begin() const override {
+    return new Iterator(this, generator_.begin(), generator_.end());
+  }
+  ParamIteratorInterface<To>* End() const override {
+    return new Iterator(this, generator_.end(), generator_.end());
+  }
+
+ private:
+  class Iterator : public ParamIteratorInterface<To> {
+   public:
+    Iterator(const ParamGeneratorInterface<To>* base, ParamIterator<From> it,
+             ParamIterator<From> end)
+        : base_(base), it_(it), end_(end) {
+      if (it_ != end_) value_ = std::make_shared<To>(static_cast<To>(*it_));
+    }
+    ~Iterator() override = default;
+
+    const ParamGeneratorInterface<To>* BaseGenerator() const override {
+      return base_;
+    }
+    void Advance() override {
+      ++it_;
+      if (it_ != end_) value_ = std::make_shared<To>(static_cast<To>(*it_));
+    }
+    ParamIteratorInterface<To>* Clone() const override {
+      return new Iterator(*this);
+    }
+    const To* Current() const override { return value_.get(); }
+    bool Equals(const ParamIteratorInterface<To>& other) const override {
+      // Having the same base generator guarantees that the other
+      // iterator is of the same type and we can downcast.
+      GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
+          << "The program attempted to compare iterators "
+          << "from different generators." << std::endl;
+      const ParamIterator<From> other_it =
+          CheckedDowncastToActualType<const Iterator>(&other)->it_;
+      return it_ == other_it;
+    }
+
+   private:
+    Iterator(const Iterator& other) = default;
+
+    const ParamGeneratorInterface<To>* const base_;
+    ParamIterator<From> it_;
+    ParamIterator<From> end_;
+    std::shared_ptr<To> value_;
+  };  // class ParamGeneratorConverter::Iterator
+
+  ParamGenerator<From> generator_;
+};  // class ParamGeneratorConverter
+
+template <class Gen>
+class ParamConverterGenerator {
+ public:
+  ParamConverterGenerator(ParamGenerator<Gen> g)  // NOLINT
+      : generator_(std::move(g)) {}
+
+  template <typename T>
+  operator ParamGenerator<T>() const {  // NOLINT
+    return ParamGenerator<T>(new ParamGeneratorConverter<Gen, T>(generator_));
+  }
+
+ private:
+  ParamGenerator<Gen> generator_;
+};
+
 }  // namespace internal
 }  // namespace testing
 
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h
index dd84591..3162f2b 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port-arch.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file defines the GTEST_OS_* macro.
@@ -37,70 +37,72 @@
 
 // Determines the platform on which Google Test is compiled.
 #ifdef __CYGWIN__
-# define GTEST_OS_CYGWIN 1
-# elif defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__)
-#  define GTEST_OS_WINDOWS_MINGW 1
-#  define GTEST_OS_WINDOWS 1
+#define GTEST_OS_CYGWIN 1
+#elif defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__)
+#define GTEST_OS_WINDOWS_MINGW 1
+#define GTEST_OS_WINDOWS 1
 #elif defined _WIN32
-# define GTEST_OS_WINDOWS 1
-# ifdef _WIN32_WCE
-#  define GTEST_OS_WINDOWS_MOBILE 1
-# elif defined(WINAPI_FAMILY)
-#  include <winapifamily.h>
-#  if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
-#   define GTEST_OS_WINDOWS_DESKTOP 1
-#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
-#   define GTEST_OS_WINDOWS_PHONE 1
-#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-#   define GTEST_OS_WINDOWS_RT 1
-#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE)
-#   define GTEST_OS_WINDOWS_PHONE 1
-#   define GTEST_OS_WINDOWS_TV_TITLE 1
-#  else
-    // WINAPI_FAMILY defined but no known partition matched.
-    // Default to desktop.
-#   define GTEST_OS_WINDOWS_DESKTOP 1
-#  endif
-# else
-#  define GTEST_OS_WINDOWS_DESKTOP 1
-# endif  // _WIN32_WCE
+#define GTEST_OS_WINDOWS 1
+#ifdef _WIN32_WCE
+#define GTEST_OS_WINDOWS_MOBILE 1
+#elif defined(WINAPI_FAMILY)
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#define GTEST_OS_WINDOWS_DESKTOP 1
+#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
+#define GTEST_OS_WINDOWS_PHONE 1
+#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#define GTEST_OS_WINDOWS_RT 1
+#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE)
+#define GTEST_OS_WINDOWS_PHONE 1
+#define GTEST_OS_WINDOWS_TV_TITLE 1
+#else
+// WINAPI_FAMILY defined but no known partition matched.
+// Default to desktop.
+#define GTEST_OS_WINDOWS_DESKTOP 1
+#endif
+#else
+#define GTEST_OS_WINDOWS_DESKTOP 1
+#endif  // _WIN32_WCE
 #elif defined __OS2__
-# define GTEST_OS_OS2 1
+#define GTEST_OS_OS2 1
 #elif defined __APPLE__
-# define GTEST_OS_MAC 1
-# include <TargetConditionals.h>
-# if TARGET_OS_IPHONE
-#  define GTEST_OS_IOS 1
-# endif
+#define GTEST_OS_MAC 1
+#include <TargetConditionals.h>
+#if TARGET_OS_IPHONE
+#define GTEST_OS_IOS 1
+#endif
 #elif defined __DragonFly__
-# define GTEST_OS_DRAGONFLY 1
+#define GTEST_OS_DRAGONFLY 1
 #elif defined __FreeBSD__
-# define GTEST_OS_FREEBSD 1
+#define GTEST_OS_FREEBSD 1
 #elif defined __Fuchsia__
-# define GTEST_OS_FUCHSIA 1
+#define GTEST_OS_FUCHSIA 1
+#elif defined(__GNU__)
+#define GTEST_OS_GNU_HURD 1
 #elif defined(__GLIBC__) && defined(__FreeBSD_kernel__)
-# define GTEST_OS_GNU_KFREEBSD 1
+#define GTEST_OS_GNU_KFREEBSD 1
 #elif defined __linux__
-# define GTEST_OS_LINUX 1
-# if defined __ANDROID__
-#  define GTEST_OS_LINUX_ANDROID 1
-# endif
+#define GTEST_OS_LINUX 1
+#if defined __ANDROID__
+#define GTEST_OS_LINUX_ANDROID 1
+#endif
 #elif defined __MVS__
-# define GTEST_OS_ZOS 1
+#define GTEST_OS_ZOS 1
 #elif defined(__sun) && defined(__SVR4)
-# define GTEST_OS_SOLARIS 1
+#define GTEST_OS_SOLARIS 1
 #elif defined(_AIX)
-# define GTEST_OS_AIX 1
+#define GTEST_OS_AIX 1
 #elif defined(__hpux)
-# define GTEST_OS_HPUX 1
+#define GTEST_OS_HPUX 1
 #elif defined __native_client__
-# define GTEST_OS_NACL 1
+#define GTEST_OS_NACL 1
 #elif defined __NetBSD__
-# define GTEST_OS_NETBSD 1
+#define GTEST_OS_NETBSD 1
 #elif defined __OpenBSD__
-# define GTEST_OS_OPENBSD 1
+#define GTEST_OS_OPENBSD 1
 #elif defined __QNX__
-# define GTEST_OS_QNX 1
+#define GTEST_OS_QNX 1
 #elif defined(__HAIKU__)
 #define GTEST_OS_HAIKU 1
 #elif defined ESP8266
@@ -109,6 +111,12 @@
 #define GTEST_OS_ESP32 1
 #elif defined(__XTENSA__)
 #define GTEST_OS_XTENSA 1
+#elif defined(__hexagon__)
+#define GTEST_OS_QURT 1
+#elif defined(CPU_QN9090) || defined(CPU_QN9090HN)
+#define GTEST_OS_NXP_QN9090 1
+#elif defined(NRF52)
+#define GTEST_OS_NRF52 1
 #endif  // __CYGWIN__
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h
index 0953a78..daaaa74 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-port.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // Low-level types and utilities for porting Google Test to various
 // platforms.  All macros ending with _ and symbols defined in an
 // internal namespace are subject to change without notice.  Code
@@ -38,7 +38,9 @@
 // files are expected to #include this.  Therefore, it cannot #include
 // any other Google Test header.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
@@ -81,6 +83,8 @@
 //   GTEST_HAS_STD_WSTRING    - Define it to 1/0 to indicate that
 //                              std::wstring does/doesn't work (Google Test can
 //                              be used where std::wstring is unavailable).
+//   GTEST_HAS_FILE_SYSTEM    - Define it to 1/0 to indicate whether or not a
+//                              file system is/isn't available.
 //   GTEST_HAS_SEH            - Define it to 1/0 to indicate whether the
 //                              compiler supports Microsoft's "Structured
 //                              Exception Handling".
@@ -116,6 +120,7 @@
 //   GTEST_OS_DRAGONFLY - DragonFlyBSD
 //   GTEST_OS_FREEBSD  - FreeBSD
 //   GTEST_OS_FUCHSIA  - Fuchsia
+//   GTEST_OS_GNU_HURD - GNU/Hurd
 //   GTEST_OS_GNU_KFREEBSD - GNU/kFreeBSD
 //   GTEST_OS_HAIKU    - Haiku
 //   GTEST_OS_HPUX     - HP-UX
@@ -156,10 +161,10 @@
 // NOT define them.
 //
 // These macros are public so that portable tests can be written.
-// Such tests typically surround code using a feature with an #if
+// Such tests typically surround code using a feature with an #ifdef
 // which controls that code.  For example:
 //
-// #if GTEST_HAS_DEATH_TEST
+// #ifdef GTEST_HAS_DEATH_TEST
 //   EXPECT_DEATH(DoSomethingDeadly());
 // #endif
 //
@@ -167,12 +172,13 @@
 //   GTEST_HAS_TYPED_TEST   - typed tests
 //   GTEST_HAS_TYPED_TEST_P - type-parameterized tests
 //   GTEST_IS_THREADSAFE    - Google Test is thread-safe.
-//   GOOGLETEST_CM0007 DO NOT DELETE
+//   GTEST_USES_RE2         - the RE2 regular expression library is used
 //   GTEST_USES_POSIX_RE    - enhanced POSIX regex is used. Do not confuse with
 //                            GTEST_HAS_POSIX_RE (see above) which users can
 //                            define themselves.
 //   GTEST_USES_SIMPLE_RE   - our own simple regex is used;
 //                            the above RE\b(s) are mutually exclusive.
+//   GTEST_HAS_ABSL         - Google Test is compiled with Abseil.
 
 // Misc public macros
 // ------------------
@@ -190,10 +196,6 @@
 //   GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning.
 //   GTEST_ATTRIBUTE_UNUSED_  - declares that a class' instances or a
 //                              variable don't have to be used.
-//   GTEST_DISALLOW_ASSIGN_   - disables copy operator=.
-//   GTEST_DISALLOW_COPY_AND_ASSIGN_ - disables copy ctor and operator=.
-//   GTEST_DISALLOW_MOVE_ASSIGN_   - disables move operator=.
-//   GTEST_DISALLOW_MOVE_AND_ASSIGN_ - disables move ctor and operator=.
 //   GTEST_MUST_USE_RESULT_   - declares that a function's result must be used.
 //   GTEST_INTENTIONAL_CONST_COND_PUSH_ - start code section where MSVC C4127 is
 //                                        suppressed (constant conditional).
@@ -201,27 +203,39 @@
 //                                        is suppressed.
 //   GTEST_INTERNAL_HAS_ANY - for enabling UniversalPrinter<std::any> or
 //                            UniversalPrinter<absl::any> specializations.
+//                            Always defined to 0 or 1.
 //   GTEST_INTERNAL_HAS_OPTIONAL - for enabling UniversalPrinter<std::optional>
 //   or
 //                                 UniversalPrinter<absl::optional>
-//                                 specializations.
+//                                 specializations. Always defined to 0 or 1.
+//   GTEST_INTERNAL_HAS_STD_SPAN - for enabling UniversalPrinter<std::span>
+//                                 specializations. Always defined to 0 or 1
 //   GTEST_INTERNAL_HAS_STRING_VIEW - for enabling Matcher<std::string_view> or
 //                                    Matcher<absl::string_view>
-//                                    specializations.
+//                                    specializations. Always defined to 0 or 1.
 //   GTEST_INTERNAL_HAS_VARIANT - for enabling UniversalPrinter<std::variant> or
 //                                UniversalPrinter<absl::variant>
-//                                specializations.
+//                                specializations. Always defined to 0 or 1.
+//   GTEST_USE_OWN_FLAGFILE_FLAG_ - Always defined to 0 or 1.
+//   GTEST_HAS_CXXABI_H_ - Always defined to 0 or 1.
+//   GTEST_CAN_STREAM_RESULTS_ - Always defined to 0 or 1.
+//   GTEST_HAS_ALT_PATH_SEP_ - Always defined to 0 or 1.
+//   GTEST_WIDE_STRING_USES_UTF16_ - Always defined to 0 or 1.
+//   GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - Always defined to 0 or 1.
+//   GTEST_HAS_NOTIFICATION_- Always defined to 0 or 1.
 //
 // Synchronization:
 //   Mutex, MutexLock, ThreadLocal, GetThreadCount()
 //                            - synchronization primitives.
 //
 // Regular expressions:
-//   RE             - a simple regular expression class using the POSIX
-//                    Extended Regular Expression syntax on UNIX-like platforms
-//                    GOOGLETEST_CM0008 DO NOT DELETE
-//                    or a reduced regular exception syntax on other
-//                    platforms, including Windows.
+//   RE             - a simple regular expression class using
+//                     1) the RE2 syntax on all platforms when built with RE2
+//                        and Abseil as dependencies
+//                     2) the POSIX Extended Regular Expression syntax on
+//                        UNIX-like platforms,
+//                     3) A reduced regular exception syntax on other platforms,
+//                        including Windows.
 // Logging:
 //   GTEST_LOG_()   - logs messages at the specified severity level.
 //   LogToStderr()  - directs all log messages to stderr.
@@ -241,8 +255,6 @@
 //   BiggestInt     - the biggest signed integer type.
 //
 // Command-line utilities:
-//   GTEST_DECLARE_*()  - declares a flag.
-//   GTEST_DEFINE_*()   - defines a flag.
 //   GetInjectableArgvs() - returns the command line as a vector of strings.
 //
 // Environment variable utilities:
@@ -256,6 +268,35 @@
 //                                        deprecated; calling a marked function
 //                                        should generate a compiler warning
 
+// The definition of GTEST_INTERNAL_CPLUSPLUS_LANG comes first because it can
+// potentially be used as an #include guard.
+#if defined(_MSVC_LANG)
+#define GTEST_INTERNAL_CPLUSPLUS_LANG _MSVC_LANG
+#elif defined(__cplusplus)
+#define GTEST_INTERNAL_CPLUSPLUS_LANG __cplusplus
+#endif
+
+#if !defined(GTEST_INTERNAL_CPLUSPLUS_LANG) || \
+    GTEST_INTERNAL_CPLUSPLUS_LANG < 201402L
+#error C++ versions less than C++14 are not supported.
+#endif
+
+// MSVC >= 19.11 (VS 2017 Update 3) supports __has_include.
+#ifdef __has_include
+#define GTEST_INTERNAL_HAS_INCLUDE __has_include
+#else
+#define GTEST_INTERNAL_HAS_INCLUDE(...) 0
+#endif
+
+// Detect C++ feature test macros as gracefully as possible.
+// MSVC >= 19.15, Clang >= 3.4.1, and GCC >= 4.1.2 support feature test macros.
+#if GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L && \
+    (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE(<version>))
+#include <version>  // C++20 and later
+#elif (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE(<ciso646>))
+#include <ciso646>  // Pre-C++20
+#endif
+
 #include <ctype.h>   // for isspace, etc
 #include <stddef.h>  // for ptrdiff_t
 #include <stdio.h>
@@ -263,48 +304,64 @@
 #include <string.h>
 
 #include <cerrno>
+// #include <condition_variable>  // Guarded by GTEST_IS_THREADSAFE below
 #include <cstdint>
+#include <iostream>
 #include <limits>
+#include <locale>
+#include <memory>
+#include <ostream>
+#include <string>
+// #include <mutex>  // Guarded by GTEST_IS_THREADSAFE below
+#include <tuple>
 #include <type_traits>
+#include <vector>
 
 #ifndef _WIN32_WCE
-# include <sys/types.h>
-# include <sys/stat.h>
+#include <sys/stat.h>
+#include <sys/types.h>
 #endif  // !_WIN32_WCE
 
 #if defined __APPLE__
-# include <AvailabilityMacros.h>
-# include <TargetConditionals.h>
+#include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
 #endif
 
-#include <iostream>  // NOLINT
-#include <locale>
-#include <memory>
-#include <string>  // NOLINT
-#include <tuple>
-#include <vector>  // NOLINT
-
 #include "gtest/internal/custom/gtest-port.h"
 #include "gtest/internal/gtest-port-arch.h"
 
+#ifndef GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#define GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ 0
+#endif
+
+#ifndef GTEST_HAS_NOTIFICATION_
+#define GTEST_HAS_NOTIFICATION_ 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
+#include "absl/flags/declare.h"
+#include "absl/flags/flag.h"
+#include "absl/flags/reflection.h"
+#endif
+
 #if !defined(GTEST_DEV_EMAIL_)
-# define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
-# define GTEST_FLAG_PREFIX_ "gtest_"
-# define GTEST_FLAG_PREFIX_DASH_ "gtest-"
-# define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
-# define GTEST_NAME_ "Google Test"
-# define GTEST_PROJECT_URL_ "https://github.com/google/googletest/"
+#define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com"
+#define GTEST_FLAG_PREFIX_ "gtest_"
+#define GTEST_FLAG_PREFIX_DASH_ "gtest-"
+#define GTEST_FLAG_PREFIX_UPPER_ "GTEST_"
+#define GTEST_NAME_ "Google Test"
+#define GTEST_PROJECT_URL_ "https://github.com/google/googletest/"
 #endif  // !defined(GTEST_DEV_EMAIL_)
 
 #if !defined(GTEST_INIT_GOOGLE_TEST_NAME_)
-# define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest"
+#define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest"
 #endif  // !defined(GTEST_INIT_GOOGLE_TEST_NAME_)
 
 // Determines the version of gcc that is used to compile this.
 #ifdef __GNUC__
 // 40302 means version 4.3.2.
-# define GTEST_GCC_VER_ \
-    (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__)
+#define GTEST_GCC_VER_ \
+  (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 #endif  // __GNUC__
 
 // Macros for disabling Microsoft Visual C++ warnings.
@@ -313,43 +370,39 @@
 //   /* code that triggers warnings C4800 and C4385 */
 //   GTEST_DISABLE_MSC_WARNINGS_POP_()
 #if defined(_MSC_VER)
-# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \
-    __pragma(warning(push))                        \
-    __pragma(warning(disable: warnings))
-# define GTEST_DISABLE_MSC_WARNINGS_POP_()          \
-    __pragma(warning(pop))
+#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \
+  __pragma(warning(push)) __pragma(warning(disable : warnings))
+#define GTEST_DISABLE_MSC_WARNINGS_POP_() __pragma(warning(pop))
 #else
 // Not all compilers are MSVC
-# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
-# define GTEST_DISABLE_MSC_WARNINGS_POP_()
+#define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings)
+#define GTEST_DISABLE_MSC_WARNINGS_POP_()
 #endif
 
 // Clang on Windows does not understand MSVC's pragma warning.
 // We need clang-specific way to disable function deprecation warning.
 #ifdef __clang__
-# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_()                         \
-    _Pragma("clang diagnostic push")                                  \
-    _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
-    _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"")
-#define GTEST_DISABLE_MSC_DEPRECATED_POP_() \
-    _Pragma("clang diagnostic pop")
+#define GTEST_DISABLE_MSC_DEPRECATED_PUSH_()                            \
+  _Pragma("clang diagnostic push")                                      \
+      _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
+          _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"")
+#define GTEST_DISABLE_MSC_DEPRECATED_POP_() _Pragma("clang diagnostic pop")
 #else
-# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \
-    GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
-# define GTEST_DISABLE_MSC_DEPRECATED_POP_() \
-    GTEST_DISABLE_MSC_WARNINGS_POP_()
+#define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \
+  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996)
+#define GTEST_DISABLE_MSC_DEPRECATED_POP_() GTEST_DISABLE_MSC_WARNINGS_POP_()
 #endif
 
 // Brings in definitions for functions used in the testing::internal::posix
 // namespace (read, write, close, chdir, isatty, stat). We do not currently
 // use them on Windows Mobile.
-#if GTEST_OS_WINDOWS
-# if !GTEST_OS_WINDOWS_MOBILE
-#  include <direct.h>
-#  include <io.h>
-# endif
+#ifdef GTEST_OS_WINDOWS
+#ifndef GTEST_OS_WINDOWS_MOBILE
+#include <direct.h>
+#include <io.h>
+#endif
 // In order to avoid having to include <windows.h>, use forward declaration
-#if GTEST_OS_WINDOWS_MINGW && !defined(__MINGW64_VERSION_MAJOR)
+#if defined(GTEST_OS_WINDOWS_MINGW) && !defined(__MINGW64_VERSION_MAJOR)
 // MinGW defined _CRITICAL_SECTION and _RTL_CRITICAL_SECTION as two
 // separate (equivalent) structs, instead of using typedef
 typedef struct _CRITICAL_SECTION GTEST_CRITICAL_SECTION;
@@ -359,7 +412,7 @@
 // WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION.
 typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
 #endif
-#elif GTEST_OS_XTENSA
+#elif defined(GTEST_OS_XTENSA)
 #include <unistd.h>
 // Xtensa toolchains define strcasecmp in the string.h header instead of
 // strings.h. string.h is already included.
@@ -367,68 +420,60 @@
 // This assumes that non-Windows OSes provide unistd.h. For OSes where this
 // is not the case, we need to include headers that provide the functions
 // mentioned above.
-# include <unistd.h>
-# include <strings.h>
+#include <strings.h>
+#include <unistd.h>
 #endif  // GTEST_OS_WINDOWS
 
-#if GTEST_OS_LINUX_ANDROID
+#ifdef GTEST_OS_LINUX_ANDROID
 // Used to define __ANDROID_API__ matching the target NDK API level.
-#  include <android/api-level.h>  // NOLINT
+#include <android/api-level.h>  // NOLINT
 #endif
 
 // Defines this to true if and only if Google Test can use POSIX regular
 // expressions.
 #ifndef GTEST_HAS_POSIX_RE
-# if GTEST_OS_LINUX_ANDROID
+#ifdef GTEST_OS_LINUX_ANDROID
 // On Android, <regex.h> is only available starting with Gingerbread.
-#  define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9)
-# else
-#define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS && !GTEST_OS_XTENSA)
-# endif
+#define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9)
+#else
+#if !(defined(GTEST_OS_WINDOWS) || defined(GTEST_OS_XTENSA) || \
+      defined(GTEST_OS_QURT))
+#define GTEST_HAS_POSIX_RE 1
+#else
+#define GTEST_HAS_POSIX_RE 0
+#endif
+#endif  // GTEST_OS_LINUX_ANDROID
 #endif
 
-#if GTEST_USES_PCRE
-// The appropriate headers have already been included.
-
+// Select the regular expression implementation.
+#ifdef GTEST_HAS_ABSL
+// When using Abseil, RE2 is required.
+#include "absl/strings/string_view.h"
+#include "re2/re2.h"
+#define GTEST_USES_RE2 1
 #elif GTEST_HAS_POSIX_RE
-
-// On some platforms, <regex.h> needs someone to define size_t, and
-// won't compile otherwise.  We can #include it here as we already
-// included <stdlib.h>, which is guaranteed to define size_t through
-// <stddef.h>.
-# include <regex.h>  // NOLINT
-
-# define GTEST_USES_POSIX_RE 1
-
-#elif GTEST_OS_WINDOWS
-
-// <regex.h> is not available on Windows.  Use our own simple regex
-// implementation instead.
-# define GTEST_USES_SIMPLE_RE 1
-
+#include <regex.h>  // NOLINT
+#define GTEST_USES_POSIX_RE 1
 #else
-
-// <regex.h> may not be available on this platform.  Use our own
-// simple regex implementation instead.
-# define GTEST_USES_SIMPLE_RE 1
-
-#endif  // GTEST_USES_PCRE
+// Use our own simple regex implementation.
+#define GTEST_USES_SIMPLE_RE 1
+#endif
 
 #ifndef GTEST_HAS_EXCEPTIONS
 // The user didn't tell us whether exceptions are enabled, so we need
 // to figure it out.
-# if defined(_MSC_VER) && defined(_CPPUNWIND)
+#if defined(_MSC_VER) && defined(_CPPUNWIND)
 // MSVC defines _CPPUNWIND to 1 if and only if exceptions are enabled.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__BORLANDC__)
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__BORLANDC__)
 // C++Builder's implementation of the STL uses the _HAS_EXCEPTIONS
 // macro to enable exceptions, so we'll do the same.
 // Assumes that exceptions are enabled by default.
-#  ifndef _HAS_EXCEPTIONS
-#   define _HAS_EXCEPTIONS 1
-#  endif  // _HAS_EXCEPTIONS
-#  define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
-# elif defined(__clang__)
+#ifndef _HAS_EXCEPTIONS
+#define _HAS_EXCEPTIONS 1
+#endif  // _HAS_EXCEPTIONS
+#define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
+#elif defined(__clang__)
 // clang defines __EXCEPTIONS if and only if exceptions are enabled before clang
 // 220714, but if and only if cleanups are enabled after that. In Obj-C++ files,
 // there can be cleanups for ObjC exceptions which also need cleanups, even if
@@ -437,27 +482,31 @@
 // cleanups prior to that. To reliably check for C++ exception availability with
 // clang, check for
 // __EXCEPTIONS && __has_feature(cxx_exceptions).
-#  define GTEST_HAS_EXCEPTIONS (__EXCEPTIONS && __has_feature(cxx_exceptions))
-# elif defined(__GNUC__) && __EXCEPTIONS
+#if defined(__EXCEPTIONS) && __EXCEPTIONS && __has_feature(cxx_exceptions)
+#define GTEST_HAS_EXCEPTIONS 1
+#else
+#define GTEST_HAS_EXCEPTIONS 0
+#endif
+#elif defined(__GNUC__) && defined(__EXCEPTIONS) && __EXCEPTIONS
 // gcc defines __EXCEPTIONS to 1 if and only if exceptions are enabled.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__SUNPRO_CC)
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__SUNPRO_CC)
 // Sun Pro CC supports exceptions.  However, there is no compile-time way of
 // detecting whether they are enabled or not.  Therefore, we assume that
 // they are enabled unless the user tells us otherwise.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__IBMCPP__) && __EXCEPTIONS
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__IBMCPP__) && defined(__EXCEPTIONS) && __EXCEPTIONS
 // xlC defines __EXCEPTIONS to 1 if and only if exceptions are enabled.
-#  define GTEST_HAS_EXCEPTIONS 1
-# elif defined(__HP_aCC)
+#define GTEST_HAS_EXCEPTIONS 1
+#elif defined(__HP_aCC)
 // Exception handling is in effect by default in HP aCC compiler. It has to
 // be turned of by +noeh compiler option if desired.
-#  define GTEST_HAS_EXCEPTIONS 1
-# else
+#define GTEST_HAS_EXCEPTIONS 1
+#else
 // For other compilers, we assume exceptions are disabled to be
 // conservative.
-#  define GTEST_HAS_EXCEPTIONS 0
-# endif  // defined(_MSC_VER) || defined(__BORLANDC__)
+#define GTEST_HAS_EXCEPTIONS 0
+#endif  // defined(_MSC_VER) || defined(__BORLANDC__)
 #endif  // GTEST_HAS_EXCEPTIONS
 
 #ifndef GTEST_HAS_STD_WSTRING
@@ -466,74 +515,84 @@
 // Cygwin 1.7 and below doesn't support ::std::wstring.
 // Solaris' libc++ doesn't support it either.  Android has
 // no support for it at least as recent as Froyo (2.2).
-#define GTEST_HAS_STD_WSTRING                                         \
-  (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \
-     GTEST_OS_HAIKU || GTEST_OS_ESP32 || GTEST_OS_ESP8266 || GTEST_OS_XTENSA))
-
+#if (!(defined(GTEST_OS_LINUX_ANDROID) || defined(GTEST_OS_CYGWIN) || \
+       defined(GTEST_OS_SOLARIS) || defined(GTEST_OS_HAIKU) ||        \
+       defined(GTEST_OS_ESP32) || defined(GTEST_OS_ESP8266) ||        \
+       defined(GTEST_OS_XTENSA) || defined(GTEST_OS_QURT) ||          \
+       defined(GTEST_OS_NXP_QN9090) || defined(GTEST_OS_NRF52)))
+#define GTEST_HAS_STD_WSTRING 1
+#else
+#define GTEST_HAS_STD_WSTRING 0
+#endif
 #endif  // GTEST_HAS_STD_WSTRING
 
+#ifndef GTEST_HAS_FILE_SYSTEM
+// Most platforms support a file system.
+#define GTEST_HAS_FILE_SYSTEM 1
+#endif  // GTEST_HAS_FILE_SYSTEM
+
 // Determines whether RTTI is available.
 #ifndef GTEST_HAS_RTTI
 // The user didn't tell us whether RTTI is enabled, so we need to
 // figure it out.
 
-# ifdef _MSC_VER
+#ifdef _MSC_VER
 
 #ifdef _CPPRTTI  // MSVC defines this macro if and only if RTTI is enabled.
-#   define GTEST_HAS_RTTI 1
-#  else
-#   define GTEST_HAS_RTTI 0
-#  endif
+#define GTEST_HAS_RTTI 1
+#else
+#define GTEST_HAS_RTTI 0
+#endif
 
 // Starting with version 4.3.2, gcc defines __GXX_RTTI if and only if RTTI is
 // enabled.
-# elif defined(__GNUC__)
+#elif defined(__GNUC__)
 
-#  ifdef __GXX_RTTI
+#ifdef __GXX_RTTI
 // When building against STLport with the Android NDK and with
 // -frtti -fno-exceptions, the build fails at link time with undefined
 // references to __cxa_bad_typeid. Note sure if STL or toolchain bug,
 // so disable RTTI when detected.
-#   if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \
-       !defined(__EXCEPTIONS)
-#    define GTEST_HAS_RTTI 0
-#   else
-#    define GTEST_HAS_RTTI 1
-#   endif  // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS
-#  else
-#   define GTEST_HAS_RTTI 0
-#  endif  // __GXX_RTTI
+#if defined(GTEST_OS_LINUX_ANDROID) && defined(_STLPORT_MAJOR) && \
+    !defined(__EXCEPTIONS)
+#define GTEST_HAS_RTTI 0
+#else
+#define GTEST_HAS_RTTI 1
+#endif  // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS
+#else
+#define GTEST_HAS_RTTI 0
+#endif  // __GXX_RTTI
 
 // Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends
 // using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the
 // first version with C++ support.
-# elif defined(__clang__)
+#elif defined(__clang__)
 
-#  define GTEST_HAS_RTTI __has_feature(cxx_rtti)
+#define GTEST_HAS_RTTI __has_feature(cxx_rtti)
 
 // Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if
 // both the typeid and dynamic_cast features are present.
-# elif defined(__IBMCPP__) && (__IBMCPP__ >= 900)
+#elif defined(__IBMCPP__) && (__IBMCPP__ >= 900)
 
-#  ifdef __RTTI_ALL__
-#   define GTEST_HAS_RTTI 1
-#  else
-#   define GTEST_HAS_RTTI 0
-#  endif
+#ifdef __RTTI_ALL__
+#define GTEST_HAS_RTTI 1
+#else
+#define GTEST_HAS_RTTI 0
+#endif
 
-# else
+#else
 
 // For all other compilers, we assume RTTI is enabled.
-#  define GTEST_HAS_RTTI 1
+#define GTEST_HAS_RTTI 1
 
-# endif  // _MSC_VER
+#endif  // _MSC_VER
 
 #endif  // GTEST_HAS_RTTI
 
 // It's this header's responsibility to #include <typeinfo> when RTTI
 // is enabled.
 #if GTEST_HAS_RTTI
-# include <typeinfo>
+#include <typeinfo>
 #endif
 
 // Determines whether Google Test can use the pthreads library.
@@ -543,47 +602,52 @@
 //
 // To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0
 // to your compiler flags.
-#define GTEST_HAS_PTHREAD                                                      \
-  (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX || GTEST_OS_QNX ||          \
-   GTEST_OS_FREEBSD || GTEST_OS_NACL || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \
-   GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_OPENBSD ||          \
-   GTEST_OS_HAIKU)
+#if (defined(GTEST_OS_LINUX) || defined(GTEST_OS_MAC) ||              \
+     defined(GTEST_OS_HPUX) || defined(GTEST_OS_QNX) ||               \
+     defined(GTEST_OS_FREEBSD) || defined(GTEST_OS_NACL) ||           \
+     defined(GTEST_OS_NETBSD) || defined(GTEST_OS_FUCHSIA) ||         \
+     defined(GTEST_OS_DRAGONFLY) || defined(GTEST_OS_GNU_KFREEBSD) || \
+     defined(GTEST_OS_OPENBSD) || defined(GTEST_OS_HAIKU) ||          \
+     defined(GTEST_OS_GNU_HURD))
+#define GTEST_HAS_PTHREAD 1
+#else
+#define GTEST_HAS_PTHREAD 0
+#endif
 #endif  // GTEST_HAS_PTHREAD
 
 #if GTEST_HAS_PTHREAD
 // gtest-port.h guarantees to #include <pthread.h> when GTEST_HAS_PTHREAD is
 // true.
-# include <pthread.h>  // NOLINT
+#include <pthread.h>  // NOLINT
 
 // For timespec and nanosleep, used below.
-# include <time.h>  // NOLINT
+#include <time.h>  // NOLINT
 #endif
 
 // Determines whether clone(2) is supported.
 // Usually it will only be available on Linux, excluding
 // Linux on the Itanium architecture.
-// Also see http://linux.die.net/man/2/clone.
+// Also see https://linux.die.net/man/2/clone.
 #ifndef GTEST_HAS_CLONE
 // The user didn't tell us, so we need to figure it out.
 
-# if GTEST_OS_LINUX && !defined(__ia64__)
-#  if GTEST_OS_LINUX_ANDROID
+#if defined(GTEST_OS_LINUX) && !defined(__ia64__)
+#if defined(GTEST_OS_LINUX_ANDROID)
 // On Android, clone() became available at different API levels for each 32-bit
 // architecture.
-#    if defined(__LP64__) || \
-        (defined(__arm__) && __ANDROID_API__ >= 9) || \
-        (defined(__mips__) && __ANDROID_API__ >= 12) || \
-        (defined(__i386__) && __ANDROID_API__ >= 17)
-#     define GTEST_HAS_CLONE 1
-#    else
-#     define GTEST_HAS_CLONE 0
-#    endif
-#  else
-#   define GTEST_HAS_CLONE 1
-#  endif
-# else
-#  define GTEST_HAS_CLONE 0
-# endif  // GTEST_OS_LINUX && !defined(__ia64__)
+#if defined(__LP64__) || (defined(__arm__) && __ANDROID_API__ >= 9) || \
+    (defined(__mips__) && __ANDROID_API__ >= 12) ||                    \
+    (defined(__i386__) && __ANDROID_API__ >= 17)
+#define GTEST_HAS_CLONE 1
+#else
+#define GTEST_HAS_CLONE 0
+#endif
+#else
+#define GTEST_HAS_CLONE 1
+#endif
+#else
+#define GTEST_HAS_CLONE 0
+#endif  // GTEST_OS_LINUX && !defined(__ia64__)
 
 #endif  // GTEST_HAS_CLONE
 
@@ -591,24 +655,36 @@
 // output correctness and to implement death tests.
 #ifndef GTEST_HAS_STREAM_REDIRECTION
 // By default, we assume that stream redirection is supported on all
-// platforms except known mobile ones.
-#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \
-    GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_XTENSA
-#  define GTEST_HAS_STREAM_REDIRECTION 0
-# else
-#  define GTEST_HAS_STREAM_REDIRECTION 1
-# endif  // !GTEST_OS_WINDOWS_MOBILE
+// platforms except known mobile / embedded ones. Also, if the port doesn't have
+// a file system, stream redirection is not supported.
+#if defined(GTEST_OS_WINDOWS_MOBILE) || defined(GTEST_OS_WINDOWS_PHONE) || \
+    defined(GTEST_OS_WINDOWS_RT) || defined(GTEST_OS_ESP8266) ||           \
+    defined(GTEST_OS_XTENSA) || defined(GTEST_OS_QURT) ||                  \
+    !GTEST_HAS_FILE_SYSTEM
+#define GTEST_HAS_STREAM_REDIRECTION 0
+#else
+#define GTEST_HAS_STREAM_REDIRECTION 1
+#endif  // !GTEST_OS_WINDOWS_MOBILE
 #endif  // GTEST_HAS_STREAM_REDIRECTION
 
 // Determines whether to support death tests.
 // pops up a dialog window that cannot be suppressed programmatically.
-#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS ||             \
-     (GTEST_OS_MAC && !GTEST_OS_IOS) ||                                   \
-     (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER) || GTEST_OS_WINDOWS_MINGW ||  \
-     GTEST_OS_AIX || GTEST_OS_HPUX || GTEST_OS_OPENBSD || GTEST_OS_QNX || \
-     GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA ||           \
-     GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_HAIKU)
-# define GTEST_HAS_DEATH_TEST 1
+#if (defined(GTEST_OS_LINUX) || defined(GTEST_OS_CYGWIN) ||           \
+     defined(GTEST_OS_SOLARIS) ||                                     \
+     (defined(GTEST_OS_MAC) && !defined(GTEST_OS_IOS)) ||             \
+     (defined(GTEST_OS_WINDOWS_DESKTOP) && _MSC_VER) ||               \
+     defined(GTEST_OS_WINDOWS_MINGW) || defined(GTEST_OS_AIX) ||      \
+     defined(GTEST_OS_HPUX) || defined(GTEST_OS_OPENBSD) ||           \
+     defined(GTEST_OS_QNX) || defined(GTEST_OS_FREEBSD) ||            \
+     defined(GTEST_OS_NETBSD) || defined(GTEST_OS_FUCHSIA) ||         \
+     defined(GTEST_OS_DRAGONFLY) || defined(GTEST_OS_GNU_KFREEBSD) || \
+     defined(GTEST_OS_HAIKU) || defined(GTEST_OS_GNU_HURD))
+// Death tests require a file system to work properly.
+// Android local change: Trusty force-disables stream redirection, which is also
+// required for death tests.
+#if GTEST_HAS_FILE_SYSTEM && GTEST_HAS_STREAM_REDIRECTION
+#define GTEST_HAS_DEATH_TEST 1
+#endif  // GTEST_HAS_FILE_SYSTEM
 #endif
 
 // Determines whether to support type-driven tests.
@@ -617,18 +693,26 @@
 // Sun Pro CC, IBM Visual Age, and HP aCC support.
 #if defined(__GNUC__) || defined(_MSC_VER) || defined(__SUNPRO_CC) || \
     defined(__IBMCPP__) || defined(__HP_aCC)
-# define GTEST_HAS_TYPED_TEST 1
-# define GTEST_HAS_TYPED_TEST_P 1
+#define GTEST_HAS_TYPED_TEST 1
+#define GTEST_HAS_TYPED_TEST_P 1
 #endif
 
 // Determines whether the system compiler uses UTF-16 for encoding wide strings.
-#define GTEST_WIDE_STRING_USES_UTF16_ \
-  (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_AIX || GTEST_OS_OS2)
+#if defined(GTEST_OS_WINDOWS) || defined(GTEST_OS_CYGWIN) || \
+    defined(GTEST_OS_AIX) || defined(GTEST_OS_OS2)
+#define GTEST_WIDE_STRING_USES_UTF16_ 1
+#else
+#define GTEST_WIDE_STRING_USES_UTF16_ 0
+#endif
 
 // Determines whether test results can be streamed to a socket.
-#if GTEST_OS_LINUX || GTEST_OS_GNU_KFREEBSD || GTEST_OS_DRAGONFLY || \
-    GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_OPENBSD
-# define GTEST_CAN_STREAM_RESULTS_ 1
+#if defined(GTEST_OS_LINUX) || defined(GTEST_OS_GNU_KFREEBSD) || \
+    defined(GTEST_OS_DRAGONFLY) || defined(GTEST_OS_FREEBSD) ||  \
+    defined(GTEST_OS_NETBSD) || defined(GTEST_OS_OPENBSD) ||     \
+    defined(GTEST_OS_GNU_HURD) || defined(GTEST_OS_MAC)
+#define GTEST_CAN_STREAM_RESULTS_ 1
+#else
+#define GTEST_CAN_STREAM_RESULTS_ 0
 #endif
 
 // Defines some utility macros.
@@ -642,83 +726,75 @@
 //
 // The "switch (0) case 0:" idiom is used to suppress this.
 #ifdef __INTEL_COMPILER
-# define GTEST_AMBIGUOUS_ELSE_BLOCKER_
+#define GTEST_AMBIGUOUS_ELSE_BLOCKER_
 #else
-# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default:  // NOLINT
+#define GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
+  switch (0)                          \
+  case 0:                             \
+  default:  // NOLINT
 #endif
 
-// Use this annotation at the end of a struct/class definition to
-// prevent the compiler from optimizing away instances that are never
-// used.  This is useful when all interesting logic happens inside the
-// c'tor and / or d'tor.  Example:
+// GTEST_HAVE_ATTRIBUTE_
 //
-//   struct Foo {
-//     Foo() { ... }
-//   } GTEST_ATTRIBUTE_UNUSED_;
+// A function-like feature checking macro that is a wrapper around
+// `__has_attribute`, which is defined by GCC 5+ and Clang and evaluates to a
+// nonzero constant integer if the attribute is supported or 0 if not.
 //
-// Also use it after a variable or parameter declaration to tell the
-// compiler the variable/parameter does not have to be used.
-#if defined(__GNUC__) && !defined(COMPILER_ICC)
-# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused))
-#elif defined(__clang__)
-# if __has_attribute(unused)
-#  define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused))
-# endif
+// It evaluates to zero if `__has_attribute` is not defined by the compiler.
+//
+// GCC: https://gcc.gnu.org/gcc-5/changes.html
+// Clang: https://clang.llvm.org/docs/LanguageExtensions.html
+#ifdef __has_attribute
+#define GTEST_HAVE_ATTRIBUTE_(x) __has_attribute(x)
+#else
+#define GTEST_HAVE_ATTRIBUTE_(x) 0
 #endif
-#ifndef GTEST_ATTRIBUTE_UNUSED_
-# define GTEST_ATTRIBUTE_UNUSED_
+
+// GTEST_HAVE_FEATURE_
+//
+// A function-like feature checking macro that is a wrapper around
+// `__has_feature`.
+#ifdef __has_feature
+#define GTEST_HAVE_FEATURE_(x) __has_feature(x)
+#else
+#define GTEST_HAVE_FEATURE_(x) 0
+#endif
+
+// Use this annotation after a variable or parameter declaration to tell the
+// compiler the variable/parameter does not have to be used.
+// Example:
+//
+//   GTEST_ATTRIBUTE_UNUSED_ int foo = bar();
+#if GTEST_HAVE_ATTRIBUTE_(unused)
+#define GTEST_ATTRIBUTE_UNUSED_ __attribute__((unused))
+#else
+#define GTEST_ATTRIBUTE_UNUSED_
 #endif
 
 // Use this annotation before a function that takes a printf format string.
-#if (defined(__GNUC__) || defined(__clang__)) && !defined(COMPILER_ICC)
-# if defined(__MINGW_PRINTF_FORMAT)
+#if GTEST_HAVE_ATTRIBUTE_(format) && defined(__MINGW_PRINTF_FORMAT)
 // MinGW has two different printf implementations. Ensure the format macro
 // matches the selected implementation. See
 // https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/.
-#  define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
-       __attribute__((__format__(__MINGW_PRINTF_FORMAT, string_index, \
-                                 first_to_check)))
-# else
-#  define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
-       __attribute__((__format__(__printf__, string_index, first_to_check)))
-# endif
+#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
+  __attribute__((format(__MINGW_PRINTF_FORMAT, string_index, first_to_check)))
+#elif GTEST_HAVE_ATTRIBUTE_(format)
+#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \
+  __attribute__((format(printf, string_index, first_to_check)))
 #else
-# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check)
+#define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check)
 #endif
 
-
-// A macro to disallow copy operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_ASSIGN_(type) \
-  type& operator=(type const &) = delete
-
-// A macro to disallow copy constructor and operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
-  type(type const&) = delete;                 \
-  type& operator=(type const&) = delete
-
-// A macro to disallow move operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_MOVE_ASSIGN_(type) \
-  type& operator=(type &&) noexcept = delete
-
-// A macro to disallow move constructor and operator=
-// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_MOVE_AND_ASSIGN_(type) \
-  type(type&&) noexcept = delete;             \
-  type& operator=(type&&) noexcept = delete
-
 // Tell the compiler to warn about unused return values for functions declared
 // with this macro.  The macro should be used on function declarations
 // following the argument list:
 //
 //   Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT_;
-#if defined(__GNUC__) && !defined(COMPILER_ICC)
-# define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result))
+#if GTEST_HAVE_ATTRIBUTE_(warn_unused_result)
+#define GTEST_MUST_USE_RESULT_ __attribute__((warn_unused_result))
 #else
-# define GTEST_MUST_USE_RESULT_
-#endif  // __GNUC__ && !COMPILER_ICC
+#define GTEST_MUST_USE_RESULT_
+#endif
 
 // MS C++ compiler emits warning when a conditional expression is compile time
 // constant. In some contexts this warning is false positive and needs to be
@@ -728,10 +804,9 @@
 // while (true) {
 // GTEST_INTENTIONAL_CONST_COND_POP_()
 // }
-# define GTEST_INTENTIONAL_CONST_COND_PUSH_() \
-    GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127)
-# define GTEST_INTENTIONAL_CONST_COND_POP_() \
-    GTEST_DISABLE_MSC_WARNINGS_POP_()
+#define GTEST_INTENTIONAL_CONST_COND_PUSH_() \
+  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127)
+#define GTEST_INTENTIONAL_CONST_COND_POP_() GTEST_DISABLE_MSC_WARNINGS_POP_()
 
 // Determine whether the compiler supports Microsoft's Structured Exception
 // Handling.  This is supported by several Windows compilers but generally
@@ -739,114 +814,116 @@
 #ifndef GTEST_HAS_SEH
 // The user didn't tell us, so we need to figure it out.
 
-# if defined(_MSC_VER) || defined(__BORLANDC__)
+#if defined(_MSC_VER) || defined(__BORLANDC__)
 // These two compilers are known to support SEH.
-#  define GTEST_HAS_SEH 1
-# else
+#define GTEST_HAS_SEH 1
+#else
 // Assume no SEH.
-#  define GTEST_HAS_SEH 0
-# endif
+#define GTEST_HAS_SEH 0
+#endif
 
 #endif  // GTEST_HAS_SEH
 
 #ifndef GTEST_IS_THREADSAFE
 
-#define GTEST_IS_THREADSAFE                                                 \
-  (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ ||                                     \
-   (GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT) || \
-   GTEST_HAS_PTHREAD)
+#if (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ ||                              \
+     (defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_WINDOWS_PHONE) && \
+      !defined(GTEST_OS_WINDOWS_RT)) ||                                \
+     GTEST_HAS_PTHREAD)
+#define GTEST_IS_THREADSAFE 1
+#endif
 
 #endif  // GTEST_IS_THREADSAFE
 
+#ifdef GTEST_IS_THREADSAFE
+// Some platforms don't support including these threading related headers.
+#include <condition_variable>  // NOLINT
+#include <mutex>               // NOLINT
+#endif                         // GTEST_IS_THREADSAFE
+
 // GTEST_API_ qualifies all symbols that must be exported. The definitions below
 // are guarded by #ifndef to give embedders a chance to define GTEST_API_ in
 // gtest/internal/custom/gtest-port.h
 #ifndef GTEST_API_
 
 #ifdef _MSC_VER
-# if GTEST_LINKED_AS_SHARED_LIBRARY
-#  define GTEST_API_ __declspec(dllimport)
-# elif GTEST_CREATE_SHARED_LIBRARY
-#  define GTEST_API_ __declspec(dllexport)
-# endif
-#elif __GNUC__ >= 4 || defined(__clang__)
-# define GTEST_API_ __attribute__((visibility ("default")))
+#if defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY
+#define GTEST_API_ __declspec(dllimport)
+#elif defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY
+#define GTEST_API_ __declspec(dllexport)
+#endif
+#elif GTEST_HAVE_ATTRIBUTE_(visibility)
+#define GTEST_API_ __attribute__((visibility("default")))
 #endif  // _MSC_VER
 
 #endif  // GTEST_API_
 
 #ifndef GTEST_API_
-# define GTEST_API_
+#define GTEST_API_
 #endif  // GTEST_API_
 
 #ifndef GTEST_DEFAULT_DEATH_TEST_STYLE
-# define GTEST_DEFAULT_DEATH_TEST_STYLE  "fast"
+#define GTEST_DEFAULT_DEATH_TEST_STYLE "fast"
 #endif  // GTEST_DEFAULT_DEATH_TEST_STYLE
 
-#ifdef __GNUC__
+#if GTEST_HAVE_ATTRIBUTE_(noinline)
 // Ask the compiler to never inline a given function.
-# define GTEST_NO_INLINE_ __attribute__((noinline))
+#define GTEST_NO_INLINE_ __attribute__((noinline))
 #else
-# define GTEST_NO_INLINE_
+#define GTEST_NO_INLINE_
+#endif
+
+#if GTEST_HAVE_ATTRIBUTE_(disable_tail_calls)
+// Ask the compiler not to perform tail call optimization inside
+// the marked function.
+#define GTEST_NO_TAIL_CALL_ __attribute__((disable_tail_calls))
+#elif defined(__GNUC__) && !defined(__NVCOMPILER)
+#define GTEST_NO_TAIL_CALL_ \
+  __attribute__((optimize("no-optimize-sibling-calls")))
+#else
+#define GTEST_NO_TAIL_CALL_
 #endif
 
 // _LIBCPP_VERSION is defined by the libc++ library from the LLVM project.
 #if !defined(GTEST_HAS_CXXABI_H_)
-# if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER))
-#  define GTEST_HAS_CXXABI_H_ 1
-# else
-#  define GTEST_HAS_CXXABI_H_ 0
-# endif
+#if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER))
+#define GTEST_HAS_CXXABI_H_ 1
+#else
+#define GTEST_HAS_CXXABI_H_ 0
+#endif
 #endif
 
 // A function level attribute to disable checking for use of uninitialized
 // memory when built with MemorySanitizer.
-#if defined(__clang__)
-# if __has_feature(memory_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ \
-       __attribute__((no_sanitize_memory))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
-# endif  // __has_feature(memory_sanitizer)
+#if GTEST_HAVE_ATTRIBUTE_(no_sanitize_memory)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ __attribute__((no_sanitize_memory))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_
+#endif
 
 // A function level attribute to disable AddressSanitizer instrumentation.
-#if defined(__clang__)
-# if __has_feature(address_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \
-       __attribute__((no_sanitize_address))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
-# endif  // __has_feature(address_sanitizer)
+#if GTEST_HAVE_ATTRIBUTE_(no_sanitize_address)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \
+  __attribute__((no_sanitize_address))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
+#endif
 
 // A function level attribute to disable HWAddressSanitizer instrumentation.
-#if defined(__clang__)
-# if __has_feature(hwaddress_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ \
-       __attribute__((no_sanitize("hwaddress")))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
-# endif  // __has_feature(hwaddress_sanitizer)
+#if GTEST_HAVE_FEATURE_(hwaddress_sanitizer) && \
+    GTEST_HAVE_ATTRIBUTE_(no_sanitize)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ \
+  __attribute__((no_sanitize("hwaddress")))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
+#endif
 
 // A function level attribute to disable ThreadSanitizer instrumentation.
-#if defined(__clang__)
-# if __has_feature(thread_sanitizer)
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ \
-       __attribute__((no_sanitize_thread))
-# else
-#  define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
-# endif  // __has_feature(thread_sanitizer)
+#if GTEST_HAVE_ATTRIBUTE_(no_sanitize_thread)
+#define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ __attribute((no_sanitize_thread))
 #else
-# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
-#endif  // __clang__
+#define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_
+#endif
 
 namespace testing {
 
@@ -863,20 +940,11 @@
 namespace internal {
 
 // A secret type that Google Test users don't know about.  It has no
-// definition on purpose.  Therefore it's impossible to create a
+// accessible constructors on purpose.  Therefore it's impossible to create a
 // Secret object, which is what we want.
-class Secret;
-
-// The GTEST_COMPILE_ASSERT_ is a legacy macro used to verify that a compile
-// time expression is true (in new code, use static_assert instead). For
-// example, you could use it to verify the size of a static array:
-//
-//   GTEST_COMPILE_ASSERT_(GTEST_ARRAY_SIZE_(names) == NUM_NAMES,
-//                         names_incorrect_size);
-//
-// The second argument to the macro must be a valid C++ identifier. If the
-// expression is false, compiler will issue an error containing this identifier.
-#define GTEST_COMPILE_ASSERT_(expr, msg) static_assert(expr, #msg)
+class Secret {
+  Secret(const Secret&) = delete;
+};
 
 // A helper for suppressing warnings on constant condition.  It just
 // returns 'condition'.
@@ -884,9 +952,34 @@
 
 // Defines RE.
 
-#if GTEST_USES_PCRE
-// if used, PCRE is injected by custom/gtest-port.h
-#elif GTEST_USES_POSIX_RE || GTEST_USES_SIMPLE_RE
+#ifdef GTEST_USES_RE2
+
+// This is almost `using RE = ::RE2`, except it is copy-constructible, and it
+// needs to disambiguate the `std::string`, `absl::string_view`, and `const
+// char*` constructors.
+class GTEST_API_ RE {
+ public:
+  RE(absl::string_view regex) : regex_(regex) {}                  // NOLINT
+  RE(const char* regex) : RE(absl::string_view(regex)) {}         // NOLINT
+  RE(const std::string& regex) : RE(absl::string_view(regex)) {}  // NOLINT
+  RE(const RE& other) : RE(other.pattern()) {}
+
+  const std::string& pattern() const { return regex_.pattern(); }
+
+  static bool FullMatch(absl::string_view str, const RE& re) {
+    return RE2::FullMatch(str, re.regex_);
+  }
+  static bool PartialMatch(absl::string_view str, const RE& re) {
+    return RE2::PartialMatch(str, re.regex_);
+  }
+
+ private:
+  RE2 regex_;
+};
+
+#elif defined(GTEST_USES_POSIX_RE) || defined(GTEST_USES_SIMPLE_RE)
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
+/* class A needs to have dll-interface to be used by clients of class B */)
 
 // A simple C++ wrapper for <regex.h>.  It uses the POSIX Extended
 // Regular Expression syntax.
@@ -903,7 +996,7 @@
   ~RE();
 
   // Returns the string representation of the regex.
-  const char* pattern() const { return pattern_; }
+  const char* pattern() const { return pattern_.c_str(); }
 
   // FullMatch(str, re) returns true if and only if regular expression re
   // matches the entire str.
@@ -921,22 +1014,22 @@
 
  private:
   void Init(const char* regex);
-  const char* pattern_;
+  std::string pattern_;
   bool is_valid_;
 
-# if GTEST_USES_POSIX_RE
+#ifdef GTEST_USES_POSIX_RE
 
   regex_t full_regex_;     // For FullMatch().
   regex_t partial_regex_;  // For PartialMatch().
 
-# else  // GTEST_USES_SIMPLE_RE
+#else  // GTEST_USES_SIMPLE_RE
 
-  const char* full_pattern_;  // For FullMatch();
+  std::string full_pattern_;  // For FullMatch();
 
-# endif
+#endif
 };
-
-#endif  // GTEST_USES_PCRE
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4251
+#endif  // ::testing::internal::RE implementation
 
 // Formats a source file path and a line number as they would appear
 // in an error message from the compiler used to compile this code.
@@ -954,12 +1047,7 @@
 //   LogToStderr()  - directs all log messages to stderr.
 //   FlushInfoLog() - flushes informational log messages.
 
-enum GTestLogSeverity {
-  GTEST_INFO,
-  GTEST_WARNING,
-  GTEST_ERROR,
-  GTEST_FATAL
-};
+enum GTestLogSeverity { GTEST_INFO, GTEST_WARNING, GTEST_ERROR, GTEST_FATAL };
 
 // Formats log entry severity, provides a stream object for streaming the
 // log message, and terminates the message with a newline when going out of
@@ -976,14 +1064,16 @@
  private:
   const GTestLogSeverity severity_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog);
+  GTestLog(const GTestLog&) = delete;
+  GTestLog& operator=(const GTestLog&) = delete;
 };
 
 #if !defined(GTEST_LOG_)
 
-# define GTEST_LOG_(severity) \
-    ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \
-                                  __FILE__, __LINE__).GetStream()
+#define GTEST_LOG_(severity)                                           \
+  ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \
+                                __FILE__, __LINE__)                    \
+      .GetStream()
 
 inline void LogToStderr() {}
 inline void FlushInfoLog() { fflush(nullptr); }
@@ -995,7 +1085,7 @@
 //
 // GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition
 // is not satisfied.
-//  Synopsys:
+//  Synopsis:
 //    GTEST_CHECK_(boolean_condition);
 //     or
 //    GTEST_CHECK_(boolean_condition) << "Additional message";
@@ -1005,12 +1095,12 @@
 //    condition itself, plus additional message streamed into it, if any,
 //    and then it aborts the program. It aborts the program irrespective of
 //    whether it is built in the debug mode or not.
-# define GTEST_CHECK_(condition) \
-    GTEST_AMBIGUOUS_ELSE_BLOCKER_ \
-    if (::testing::internal::IsTrue(condition)) \
-      ; \
-    else \
-      GTEST_LOG_(FATAL) << "Condition " #condition " failed. "
+#define GTEST_CHECK_(condition)               \
+  GTEST_AMBIGUOUS_ELSE_BLOCKER_               \
+  if (::testing::internal::IsTrue(condition)) \
+    ;                                         \
+  else                                        \
+    GTEST_LOG_(FATAL) << "Condition " #condition " failed. "
 #endif  // !defined(GTEST_CHECK_)
 
 // An all-mode assert to verify that the given POSIX-style function
@@ -1019,9 +1109,8 @@
 // in {} if you need to use it as the only statement in an 'if'
 // branch.
 #define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \
-  if (const int gtest_error = (posix_call)) \
-    GTEST_LOG_(FATAL) << #posix_call << "failed with error " \
-                      << gtest_error
+  if (const int gtest_error = (posix_call))    \
+  GTEST_LOG_(FATAL) << #posix_call << "failed with error " << gtest_error
 
 // Transforms "T" into "const T&" according to standard reference collapsing
 // rules (this is only needed as a backport for C++98 compilers that do not
@@ -1035,9 +1124,13 @@
 // Note that the non-const reference will not have "const" added. This is
 // standard, and necessary so that "T" can always bind to "const T&".
 template <typename T>
-struct ConstRef { typedef const T& type; };
+struct ConstRef {
+  typedef const T& type;
+};
 template <typename T>
-struct ConstRef<T&> { typedef T& type; };
+struct ConstRef<T&> {
+  typedef T& type;
+};
 
 // The argument T must depend on some template parameters.
 #define GTEST_REFERENCE_TO_CONST_(T) \
@@ -1050,7 +1143,7 @@
 // const Foo*).  When you use ImplicitCast_, the compiler checks that
 // the cast is safe.  Such explicit ImplicitCast_s are necessary in
 // surprisingly many situations where C++ demands an exact type match
-// instead of an argument type convertable to a target type.
+// instead of an argument type convertible to a target type.
 //
 // The syntax for using ImplicitCast_ is the same as for static_cast:
 //
@@ -1063,48 +1156,9 @@
 // This relatively ugly name is intentional. It prevents clashes with
 // similar functions users may have (e.g., implicit_cast). The internal
 // namespace alone is not enough because the function can be found by ADL.
-template<typename To>
-inline To ImplicitCast_(To x) { return x; }
-
-// When you upcast (that is, cast a pointer from type Foo to type
-// SuperclassOfFoo), it's fine to use ImplicitCast_<>, since upcasts
-// always succeed.  When you downcast (that is, cast a pointer from
-// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because
-// how do you know the pointer is really of type SubclassOfFoo?  It
-// could be a bare Foo, or of type DifferentSubclassOfFoo.  Thus,
-// when you downcast, you should use this macro.  In debug mode, we
-// use dynamic_cast<> to double-check the downcast is legal (we die
-// if it's not).  In normal mode, we do the efficient static_cast<>
-// instead.  Thus, it's important to test in debug mode to make sure
-// the cast is legal!
-//    This is the only place in the code we should use dynamic_cast<>.
-// In particular, you SHOULDN'T be using dynamic_cast<> in order to
-// do RTTI (eg code like this:
-//    if (dynamic_cast<Subclass1>(foo)) HandleASubclass1Object(foo);
-//    if (dynamic_cast<Subclass2>(foo)) HandleASubclass2Object(foo);
-// You should design the code some other way not to need this.
-//
-// This relatively ugly name is intentional. It prevents clashes with
-// similar functions users may have (e.g., down_cast). The internal
-// namespace alone is not enough because the function can be found by ADL.
-template<typename To, typename From>  // use like this: DownCast_<T*>(foo);
-inline To DownCast_(From* f) {  // so we only accept pointers
-  // Ensures that To is a sub-type of From *.  This test is here only
-  // for compile-time type checking, and has no overhead in an
-  // optimized build at run-time, as it will be optimized away
-  // completely.
-  GTEST_INTENTIONAL_CONST_COND_PUSH_()
-  if (false) {
-  GTEST_INTENTIONAL_CONST_COND_POP_()
-  const To to = nullptr;
-  ::testing::internal::ImplicitCast_<From*>(to);
-  }
-
-#if GTEST_HAS_RTTI
-  // RTTI: debug mode only!
-  GTEST_CHECK_(f == nullptr || dynamic_cast<To>(f) != nullptr);
-#endif
-  return static_cast<To>(f);
+template <typename To>
+inline To ImplicitCast_(To x) {
+  return x;
 }
 
 // Downcasts the pointer of type Base to Derived.
@@ -1114,17 +1168,12 @@
 // check to enforce this.
 template <class Derived, class Base>
 Derived* CheckedDowncastToActualType(Base* base) {
+  static_assert(std::is_base_of<Base, Derived>::value,
+                "target type not derived from source type");
 #if GTEST_HAS_RTTI
-  GTEST_CHECK_(typeid(*base) == typeid(Derived));
+  GTEST_CHECK_(base == nullptr || dynamic_cast<Derived*>(base) != nullptr);
 #endif
-
-#if GTEST_HAS_DOWNCAST_
-  return ::down_cast<Derived*>(base);
-#elif GTEST_HAS_RTTI
-  return dynamic_cast<Derived*>(base);  // NOLINT
-#else
-  return static_cast<Derived*>(base);  // Poor man's downcast.
-#endif
+  return static_cast<Derived*>(base);
 }
 
 #if GTEST_HAS_STREAM_REDIRECTION
@@ -1150,7 +1199,7 @@
 // All command line arguments.
 GTEST_API_ std::vector<std::string> GetArgvs();
 
-#if GTEST_HAS_DEATH_TEST
+#ifdef GTEST_HAS_DEATH_TEST
 
 std::vector<std::string> GetInjectableArgvs();
 // Deprecated: pass the args vector by value instead.
@@ -1161,72 +1210,9 @@
 #endif  // GTEST_HAS_DEATH_TEST
 
 // Defines synchronization primitives.
-#if GTEST_IS_THREADSAFE
-# if GTEST_HAS_PTHREAD
-// Sleeps for (roughly) n milliseconds.  This function is only for testing
-// Google Test's own constructs.  Don't use it in user tests, either
-// directly or indirectly.
-inline void SleepMilliseconds(int n) {
-  const timespec time = {
-    0,                  // 0 seconds.
-    n * 1000L * 1000L,  // And n ms.
-  };
-  nanosleep(&time, nullptr);
-}
-# endif  // GTEST_HAS_PTHREAD
+#ifdef GTEST_IS_THREADSAFE
 
-# if GTEST_HAS_NOTIFICATION_
-// Notification has already been imported into the namespace.
-// Nothing to do here.
-
-# elif GTEST_HAS_PTHREAD
-// Allows a controller thread to pause execution of newly created
-// threads until notified.  Instances of this class must be created
-// and destroyed in the controller thread.
-//
-// This class is only for testing Google Test's own constructs. Do not
-// use it in user tests, either directly or indirectly.
-class Notification {
- public:
-  Notification() : notified_(false) {
-    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr));
-  }
-  ~Notification() {
-    pthread_mutex_destroy(&mutex_);
-  }
-
-  // Notifies all threads created with this notification to start. Must
-  // be called from the controller thread.
-  void Notify() {
-    pthread_mutex_lock(&mutex_);
-    notified_ = true;
-    pthread_mutex_unlock(&mutex_);
-  }
-
-  // Blocks until the controller thread notifies. Must be called from a test
-  // thread.
-  void WaitForNotification() {
-    for (;;) {
-      pthread_mutex_lock(&mutex_);
-      const bool notified = notified_;
-      pthread_mutex_unlock(&mutex_);
-      if (notified)
-        break;
-      SleepMilliseconds(10);
-    }
-  }
-
- private:
-  pthread_mutex_t mutex_;
-  bool notified_;
-
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification);
-};
-
-# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
-
-GTEST_API_ void SleepMilliseconds(int n);
-
+#ifdef GTEST_OS_WINDOWS
 // Provides leak-safe Windows kernel handle ownership.
 // Used in death tests and in threading support.
 class GTEST_API_ AutoHandle {
@@ -1253,8 +1239,24 @@
 
   Handle handle_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(AutoHandle);
+  AutoHandle(const AutoHandle&) = delete;
+  AutoHandle& operator=(const AutoHandle&) = delete;
 };
+#endif
+
+#if GTEST_HAS_NOTIFICATION_
+// Notification has already been imported into the namespace.
+// Nothing to do here.
+
+#else
+GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \
+/* class A needs to have dll-interface to be used by clients of class B */)
+
+// Android local change: disable overzealous thread safety warning.
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wthread-safety-negative"
+#endif
 
 // Allows a controller thread to pause execution of newly created
 // threads until notified.  Instances of this class must be created
@@ -1262,23 +1264,44 @@
 //
 // This class is only for testing Google Test's own constructs. Do not
 // use it in user tests, either directly or indirectly.
+// TODO(b/203539622): Replace unconditionally with absl::Notification.
 class GTEST_API_ Notification {
  public:
-  Notification();
-  void Notify();
-  void WaitForNotification();
+  Notification() : notified_(false) {}
+  Notification(const Notification&) = delete;
+  Notification& operator=(const Notification&) = delete;
+
+  // Notifies all threads created with this notification to start. Must
+  // be called from the controller thread.
+  void Notify() {
+    std::lock_guard<std::mutex> lock(mu_);
+    notified_ = true;
+    cv_.notify_all();
+  }
+
+  // Blocks until the controller thread notifies. Must be called from a test
+  // thread.
+  void WaitForNotification() {
+    std::unique_lock<std::mutex> lock(mu_);
+    cv_.wait(lock, [this]() { return notified_; });
+  }
 
  private:
-  AutoHandle event_;
-
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification);
+  std::mutex mu_;
+  std::condition_variable cv_;
+  bool notified_;
 };
-# endif  // GTEST_HAS_NOTIFICATION_
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+GTEST_DISABLE_MSC_WARNINGS_POP_()  // 4251
+#endif  // GTEST_HAS_NOTIFICATION_
 
 // On MinGW, we can have both GTEST_OS_WINDOWS and GTEST_HAS_PTHREAD
 // defined, but we don't want to use MinGW's pthreads implementation, which
 // has conformance problems with some versions of the POSIX standard.
-# if GTEST_HAS_PTHREAD && !GTEST_OS_WINDOWS_MINGW
+#if GTEST_HAS_PTHREAD && !defined(GTEST_OS_WINDOWS_MINGW)
 
 // As a C-function, ThreadFuncWithCLinkage cannot be templated itself.
 // Consequently, it cannot select a correct instantiation of ThreadWithParam
@@ -1287,7 +1310,7 @@
 // problem.
 class ThreadWithParamBase {
  public:
-  virtual ~ThreadWithParamBase() {}
+  virtual ~ThreadWithParamBase() = default;
   virtual void Run() = 0;
 };
 
@@ -1354,16 +1377,18 @@
                    // finished.
   pthread_t thread_;  // The native thread object.
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam);
+  ThreadWithParam(const ThreadWithParam&) = delete;
+  ThreadWithParam& operator=(const ThreadWithParam&) = delete;
 };
-# endif  // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD ||
-         // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#endif  // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD ||
+        // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 
-# if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 // Mutex and ThreadLocal have already been imported into the namespace.
 // Nothing to do here.
 
-# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT
+#elif defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_WINDOWS_PHONE) && \
+    !defined(GTEST_OS_WINDOWS_RT)
 
 // Mutex implements mutex on Windows platforms.  It is used in conjunction
 // with class MutexLock:
@@ -1417,14 +1442,15 @@
   long critical_section_init_phase_;  // NOLINT
   GTEST_CRITICAL_SECTION* critical_section_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex);
+  Mutex(const Mutex&) = delete;
+  Mutex& operator=(const Mutex&) = delete;
 };
 
-# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
-    extern ::testing::internal::Mutex mutex
+#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
+  extern ::testing::internal::Mutex mutex
 
-# define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
-    ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex)
+#define GTEST_DEFINE_STATIC_MUTEX_(mutex) \
+  ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex)
 
 // We cannot name this class MutexLock because the ctor declaration would
 // conflict with a macro named MutexLock, which is defined on some
@@ -1433,15 +1459,15 @@
 // "MutexLock l(&mu)".  Hence the typedef trick below.
 class GTestMutexLock {
  public:
-  explicit GTestMutexLock(Mutex* mutex)
-      : mutex_(mutex) { mutex_->Lock(); }
+  explicit GTestMutexLock(Mutex* mutex) : mutex_(mutex) { mutex_->Lock(); }
 
   ~GTestMutexLock() { mutex_->Unlock(); }
 
  private:
   Mutex* const mutex_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock);
+  GTestMutexLock(const GTestMutexLock&) = delete;
+  GTestMutexLock& operator=(const GTestMutexLock&) = delete;
 };
 
 typedef GTestMutexLock MutexLock;
@@ -1468,7 +1494,8 @@
   virtual ~ThreadLocalBase() {}
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocalBase);
+  ThreadLocalBase(const ThreadLocalBase&) = delete;
+  ThreadLocalBase& operator=(const ThreadLocalBase&) = delete;
 };
 
 // Maps a thread to a set of ThreadLocals that have values instantiated on that
@@ -1497,7 +1524,7 @@
     virtual void Run() = 0;
   };
 
-  ThreadWithParamBase(Runnable *runnable, Notification* thread_can_start);
+  ThreadWithParamBase(Runnable* runnable, Notification* thread_can_start);
   virtual ~ThreadWithParamBase();
 
  private:
@@ -1511,30 +1538,26 @@
   typedef void UserThreadFunc(T);
 
   ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start)
-      : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) {
-  }
+      : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) {}
   virtual ~ThreadWithParam() {}
 
  private:
   class RunnableImpl : public Runnable {
    public:
-    RunnableImpl(UserThreadFunc* func, T param)
-        : func_(func),
-          param_(param) {
-    }
+    RunnableImpl(UserThreadFunc* func, T param) : func_(func), param_(param) {}
     virtual ~RunnableImpl() {}
-    virtual void Run() {
-      func_(param_);
-    }
+    virtual void Run() { func_(param_); }
 
    private:
     UserThreadFunc* const func_;
     const T param_;
 
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(RunnableImpl);
+    RunnableImpl(const RunnableImpl&) = delete;
+    RunnableImpl& operator=(const RunnableImpl&) = delete;
   };
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam);
+  ThreadWithParam(const ThreadWithParam&) = delete;
+  ThreadWithParam& operator=(const ThreadWithParam&) = delete;
 };
 
 // Implements thread-local storage on Windows systems.
@@ -1571,7 +1594,7 @@
   explicit ThreadLocal(const T& value)
       : default_factory_(new InstanceValueHolderFactory(value)) {}
 
-  ~ThreadLocal() { ThreadLocalRegistry::OnThreadLocalDestroyed(this); }
+  ~ThreadLocal() override { ThreadLocalRegistry::OnThreadLocalDestroyed(this); }
 
   T* pointer() { return GetOrCreateValue(); }
   const T* pointer() const { return GetOrCreateValue(); }
@@ -1590,16 +1613,17 @@
 
    private:
     T value_;
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder);
+    ValueHolder(const ValueHolder&) = delete;
+    ValueHolder& operator=(const ValueHolder&) = delete;
   };
 
-
   T* GetOrCreateValue() const {
     return static_cast<ValueHolder*>(
-        ThreadLocalRegistry::GetValueOnCurrentThread(this))->pointer();
+               ThreadLocalRegistry::GetValueOnCurrentThread(this))
+        ->pointer();
   }
 
-  virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const {
+  ThreadLocalValueHolderBase* NewValueForCurrentThread() const override {
     return default_factory_->MakeNewHolder();
   }
 
@@ -1610,7 +1634,8 @@
     virtual ValueHolder* MakeNewHolder() const = 0;
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory);
+    ValueHolderFactory(const ValueHolderFactory&) = delete;
+    ValueHolderFactory& operator=(const ValueHolderFactory&) = delete;
   };
 
   class DefaultValueHolderFactory : public ValueHolderFactory {
@@ -1619,7 +1644,9 @@
     ValueHolder* MakeNewHolder() const override { return new ValueHolder(); }
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory);
+    DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete;
+    DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) =
+        delete;
   };
 
   class InstanceValueHolderFactory : public ValueHolderFactory {
@@ -1632,15 +1659,18 @@
    private:
     const T value_;  // The value for each thread.
 
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory);
+    InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete;
+    InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) =
+        delete;
   };
 
   std::unique_ptr<ValueHolderFactory> default_factory_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
+  ThreadLocal(const ThreadLocal&) = delete;
+  ThreadLocal& operator=(const ThreadLocal&) = delete;
 };
 
-# elif GTEST_HAS_PTHREAD
+#elif GTEST_HAS_PTHREAD
 
 // MutexBase and Mutex implement mutex on pthreads-based platforms.
 class MutexBase {
@@ -1687,8 +1717,8 @@
 };
 
 // Forward-declares a static mutex.
-#  define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
-     extern ::testing::internal::MutexBase mutex
+#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
+  extern ::testing::internal::MutexBase mutex
 
 // Defines and statically (i.e. at link time) initializes a static mutex.
 // The initialization list here does not explicitly initialize each field,
@@ -1707,12 +1737,11 @@
     GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr));
     has_owner_ = false;
   }
-  ~Mutex() {
-    GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_));
-  }
+  ~Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); }
 
  private:
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex);
+  Mutex(const Mutex&) = delete;
+  Mutex& operator=(const Mutex&) = delete;
 };
 
 // We cannot name this class MutexLock because the ctor declaration would
@@ -1722,15 +1751,15 @@
 // "MutexLock l(&mu)".  Hence the typedef trick below.
 class GTestMutexLock {
  public:
-  explicit GTestMutexLock(MutexBase* mutex)
-      : mutex_(mutex) { mutex_->Lock(); }
+  explicit GTestMutexLock(MutexBase* mutex) : mutex_(mutex) { mutex_->Lock(); }
 
   ~GTestMutexLock() { mutex_->Unlock(); }
 
  private:
   MutexBase* const mutex_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock);
+  GTestMutexLock(const GTestMutexLock&) = delete;
+  GTestMutexLock& operator=(const GTestMutexLock&) = delete;
 };
 
 typedef GTestMutexLock MutexLock;
@@ -1741,9 +1770,9 @@
 // C-linkage.  Therefore it cannot be templatized to access
 // ThreadLocal<T>.  Hence the need for class
 // ThreadLocalValueHolderBase.
-class ThreadLocalValueHolderBase {
+class GTEST_API_ ThreadLocalValueHolderBase {
  public:
-  virtual ~ThreadLocalValueHolderBase() {}
+  virtual ~ThreadLocalValueHolderBase() = default;
 };
 
 // Called by pthread to delete thread-local data stored by
@@ -1787,7 +1816,8 @@
 
    private:
     T value_;
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder);
+    ValueHolder(const ValueHolder&) = delete;
+    ValueHolder& operator=(const ValueHolder&) = delete;
   };
 
   static pthread_key_t CreateKey() {
@@ -1814,21 +1844,24 @@
 
   class ValueHolderFactory {
    public:
-    ValueHolderFactory() {}
-    virtual ~ValueHolderFactory() {}
+    ValueHolderFactory() = default;
+    virtual ~ValueHolderFactory() = default;
     virtual ValueHolder* MakeNewHolder() const = 0;
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory);
+    ValueHolderFactory(const ValueHolderFactory&) = delete;
+    ValueHolderFactory& operator=(const ValueHolderFactory&) = delete;
   };
 
   class DefaultValueHolderFactory : public ValueHolderFactory {
    public:
-    DefaultValueHolderFactory() {}
+    DefaultValueHolderFactory() = default;
     ValueHolder* MakeNewHolder() const override { return new ValueHolder(); }
 
    private:
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory);
+    DefaultValueHolderFactory(const DefaultValueHolderFactory&) = delete;
+    DefaultValueHolderFactory& operator=(const DefaultValueHolderFactory&) =
+        delete;
   };
 
   class InstanceValueHolderFactory : public ValueHolderFactory {
@@ -1841,17 +1874,20 @@
    private:
     const T value_;  // The value for each thread.
 
-    GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory);
+    InstanceValueHolderFactory(const InstanceValueHolderFactory&) = delete;
+    InstanceValueHolderFactory& operator=(const InstanceValueHolderFactory&) =
+        delete;
   };
 
   // A key pthreads uses for looking up per-thread values.
   const pthread_key_t key_;
   std::unique_ptr<ValueHolderFactory> default_factory_;
 
-  GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal);
+  ThreadLocal(const ThreadLocal&) = delete;
+  ThreadLocal& operator=(const ThreadLocal&) = delete;
 };
 
-# endif  // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
+#endif  // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_
 
 #else  // GTEST_IS_THREADSAFE
 
@@ -1868,10 +1904,10 @@
   void AssertHeld() const {}
 };
 
-# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
+#define GTEST_DECLARE_STATIC_MUTEX_(mutex) \
   extern ::testing::internal::Mutex mutex
 
-# define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex
+#define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex
 
 // We cannot name this class MutexLock because the ctor declaration would
 // conflict with a macro named MutexLock, which is defined on some
@@ -1894,6 +1930,7 @@
   const T* pointer() const { return &value_; }
   const T& get() const { return value_; }
   void set(const T& value) { value_ = value; }
+
  private:
   T value_;
 };
@@ -1904,12 +1941,12 @@
 // we cannot detect it.
 GTEST_API_ size_t GetThreadCount();
 
-#if GTEST_OS_WINDOWS
-# define GTEST_PATH_SEP_ "\\"
-# define GTEST_HAS_ALT_PATH_SEP_ 1
+#ifdef GTEST_OS_WINDOWS
+#define GTEST_PATH_SEP_ "\\"
+#define GTEST_HAS_ALT_PATH_SEP_ 1
 #else
-# define GTEST_PATH_SEP_ "/"
-# define GTEST_HAS_ALT_PATH_SEP_ 0
+#define GTEST_PATH_SEP_ "/"
+#define GTEST_HAS_ALT_PATH_SEP_ 0
 #endif  // GTEST_OS_WINDOWS
 
 // Utilities for char.
@@ -1940,7 +1977,7 @@
 inline bool IsXDigit(char ch) {
   return isxdigit(static_cast<unsigned char>(ch)) != 0;
 }
-#ifdef __cpp_char8_t
+#ifdef __cpp_lib_char8_t
 inline bool IsXDigit(char8_t ch) {
   return isxdigit(static_cast<unsigned char>(ch)) != 0;
 }
@@ -1967,8 +2004,7 @@
 
 inline std::string StripTrailingSpaces(std::string str) {
   std::string::iterator it = str.end();
-  while (it != str.begin() && IsSpace(*--it))
-    it = str.erase(it);
+  while (it != str.begin() && IsSpace(*--it)) it = str.erase(it);
   return str;
 }
 
@@ -1980,56 +2016,31 @@
 
 namespace posix {
 
-// Functions with a different name on Windows.
-
-#if GTEST_OS_WINDOWS
+// File system porting.
+#if GTEST_HAS_FILE_SYSTEM
+#ifdef GTEST_OS_WINDOWS
 
 typedef struct _stat StatStruct;
 
-# ifdef __BORLANDC__
-inline int DoIsATTY(int fd) { return isatty(fd); }
-inline int StrCaseCmp(const char* s1, const char* s2) {
-  return stricmp(s1, s2);
-}
-inline char* StrDup(const char* src) { return strdup(src); }
-# else  // !__BORLANDC__
-#  if GTEST_OS_WINDOWS_MOBILE
-inline int DoIsATTY(int /* fd */) { return 0; }
-#  else
-inline int DoIsATTY(int fd) { return _isatty(fd); }
-#  endif  // GTEST_OS_WINDOWS_MOBILE
-inline int StrCaseCmp(const char* s1, const char* s2) {
-  return _stricmp(s1, s2);
-}
-inline char* StrDup(const char* src) { return _strdup(src); }
-# endif  // __BORLANDC__
-
-# if GTEST_OS_WINDOWS_MOBILE
+#ifdef GTEST_OS_WINDOWS_MOBILE
 inline int FileNo(FILE* file) { return reinterpret_cast<int>(_fileno(file)); }
 // Stat(), RmDir(), and IsDir() are not needed on Windows CE at this
 // time and thus not defined there.
-# else
+#else
 inline int FileNo(FILE* file) { return _fileno(file); }
 inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); }
 inline int RmDir(const char* dir) { return _rmdir(dir); }
-inline bool IsDir(const StatStruct& st) {
-  return (_S_IFDIR & st.st_mode) != 0;
-}
-# endif  // GTEST_OS_WINDOWS_MOBILE
+inline bool IsDir(const StatStruct& st) { return (_S_IFDIR & st.st_mode) != 0; }
+#endif  // GTEST_OS_WINDOWS_MOBILE
 
-#elif GTEST_OS_ESP8266
+#elif defined(GTEST_OS_ESP8266)
 typedef struct stat StatStruct;
 
 inline int FileNo(FILE* file) { return fileno(file); }
-inline int DoIsATTY(int fd) { return isatty(fd); }
 inline int Stat(const char* path, StatStruct* buf) {
   // stat function not implemented on ESP8266
   return 0;
 }
-inline int StrCaseCmp(const char* s1, const char* s2) {
-  return strcasecmp(s1, s2);
-}
-inline char* StrDup(const char* src) { return strdup(src); }
 inline int RmDir(const char* dir) { return rmdir(dir); }
 inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
 
@@ -2038,14 +2049,46 @@
 typedef struct stat StatStruct;
 
 inline int FileNo(FILE* file) { return fileno(file); }
-inline int DoIsATTY(int fd) { return isatty(fd); }
 inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); }
+#ifdef GTEST_OS_QURT
+// QuRT doesn't support any directory functions, including rmdir
+inline int RmDir(const char*) { return 0; }
+#else
+inline int RmDir(const char* dir) { return rmdir(dir); }
+#endif
+inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
+
+#endif  // GTEST_OS_WINDOWS
+#endif  // GTEST_HAS_FILE_SYSTEM
+
+// Other functions with a different name on Windows.
+
+#ifdef GTEST_OS_WINDOWS
+
+#ifdef __BORLANDC__
+inline int DoIsATTY(int fd) { return isatty(fd); }
+inline int StrCaseCmp(const char* s1, const char* s2) {
+  return stricmp(s1, s2);
+}
+#else  // !__BORLANDC__
+#if defined(GTEST_OS_WINDOWS_MOBILE) || defined(GTEST_OS_ZOS) || \
+    defined(GTEST_OS_IOS) || defined(GTEST_OS_WINDOWS_PHONE) ||  \
+    defined(GTEST_OS_WINDOWS_RT) || defined(ESP_PLATFORM)
+inline int DoIsATTY(int /* fd */) { return 0; }
+#else
+inline int DoIsATTY(int fd) { return _isatty(fd); }
+#endif  // GTEST_OS_WINDOWS_MOBILE
+inline int StrCaseCmp(const char* s1, const char* s2) {
+  return _stricmp(s1, s2);
+}
+#endif  // __BORLANDC__
+
+#else
+
+inline int DoIsATTY(int fd) { return isatty(fd); }
 inline int StrCaseCmp(const char* s1, const char* s2) {
   return strcasecmp(s1, s2);
 }
-inline char* StrDup(const char* src) { return strdup(src); }
-inline int RmDir(const char* dir) { return rmdir(dir); }
-inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
 
 #endif  // GTEST_OS_WINDOWS
 
@@ -2067,30 +2110,31 @@
 // ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and
 // StrError() aren't needed on Windows CE at this time and thus not
 // defined there.
-
-#if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && \
-    !GTEST_OS_WINDOWS_RT && !GTEST_OS_ESP8266 && !GTEST_OS_XTENSA
+#if GTEST_HAS_FILE_SYSTEM
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_WINDOWS_PHONE) && \
+    !defined(GTEST_OS_WINDOWS_RT) && !defined(GTEST_OS_ESP8266) &&           \
+    !defined(GTEST_OS_XTENSA) && !defined(GTEST_OS_QURT)
 inline int ChDir(const char* dir) { return chdir(dir); }
 #endif
 inline FILE* FOpen(const char* path, const char* mode) {
-#if GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
+#if defined(GTEST_OS_WINDOWS) && !defined(GTEST_OS_WINDOWS_MINGW)
   struct wchar_codecvt : public std::codecvt<wchar_t, char, std::mbstate_t> {};
   std::wstring_convert<wchar_codecvt> converter;
   std::wstring wide_path = converter.from_bytes(path);
   std::wstring wide_mode = converter.from_bytes(mode);
   return _wfopen(wide_path.c_str(), wide_mode.c_str());
-#else  // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
+#else   // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
   return fopen(path, mode);
 #endif  // GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_MINGW
 }
-#if !GTEST_OS_WINDOWS_MOBILE
-inline FILE *FReopen(const char* path, const char* mode, FILE* stream) {
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_QURT)
+inline FILE* FReopen(const char* path, const char* mode, FILE* stream) {
   return freopen(path, mode, stream);
 }
 inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); }
-#endif
+#endif  // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_QURT
 inline int FClose(FILE* fp) { return fclose(fp); }
-#if !GTEST_OS_WINDOWS_MOBILE
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_QURT)
 inline int Read(int fd, void* buf, unsigned int count) {
   return static_cast<int>(read(fd, buf, count));
 }
@@ -2098,11 +2142,17 @@
   return static_cast<int>(write(fd, buf, count));
 }
 inline int Close(int fd) { return close(fd); }
+#endif  // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_QURT
+#endif  // GTEST_HAS_FILE_SYSTEM
+
+#if !defined(GTEST_OS_WINDOWS_MOBILE) && !defined(GTEST_OS_QURT)
 inline const char* StrError(int errnum) { return strerror(errnum); }
-#endif
+#endif  // !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_QURT
+
 inline const char* GetEnv(const char* name) {
-#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \
-    GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_XTENSA
+#if defined(GTEST_OS_WINDOWS_MOBILE) || defined(GTEST_OS_WINDOWS_PHONE) || \
+    defined(GTEST_OS_ESP8266) || defined(GTEST_OS_XTENSA) ||               \
+    defined(GTEST_OS_QURT)
   // We are on an embedded platform, which has no environment variables.
   static_cast<void>(name);  // To prevent 'unused argument' warning.
   return nullptr;
@@ -2118,7 +2168,7 @@
 
 GTEST_DISABLE_MSC_DEPRECATED_POP_()
 
-#if GTEST_OS_WINDOWS_MOBILE
+#ifdef GTEST_OS_WINDOWS_MOBILE
 // Windows CE has no C library. The abort() function is used in
 // several places in Google Test. This implementation provides a reasonable
 // imitation of standard behaviour.
@@ -2134,15 +2184,15 @@
 // MSVC-based platforms.  We map the GTEST_SNPRINTF_ macro to the appropriate
 // function in order to achieve that.  We use macro definition here because
 // snprintf is a variadic function.
-#if _MSC_VER && !GTEST_OS_WINDOWS_MOBILE
+#if defined(_MSC_VER) && !defined(GTEST_OS_WINDOWS_MOBILE)
 // MSVC 2005 and above support variadic macros.
-# define GTEST_SNPRINTF_(buffer, size, format, ...) \
-     _snprintf_s(buffer, size, size, format, __VA_ARGS__)
+#define GTEST_SNPRINTF_(buffer, size, format, ...) \
+  _snprintf_s(buffer, size, size, format, __VA_ARGS__)
 #elif defined(_MSC_VER)
 // Windows CE does not define _snprintf_s
-# define GTEST_SNPRINTF_ _snprintf
+#define GTEST_SNPRINTF_ _snprintf
 #else
-# define GTEST_SNPRINTF_ snprintf
+#define GTEST_SNPRINTF_ snprintf
 #endif
 
 // The biggest signed integer type the compiler supports.
@@ -2202,37 +2252,84 @@
 
 // Macro for referencing flags.
 #if !defined(GTEST_FLAG)
-# define GTEST_FLAG(name) FLAGS_gtest_##name
+#define GTEST_FLAG_NAME_(name) gtest_##name
+#define GTEST_FLAG(name) FLAGS_gtest_##name
 #endif  // !defined(GTEST_FLAG)
 
-#if !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
-# define GTEST_USE_OWN_FLAGFILE_FLAG_ 1
-#endif  // !defined(GTEST_USE_OWN_FLAGFILE_FLAG_)
-
-#if !defined(GTEST_DECLARE_bool_)
-# define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver
-
-// Macros for declaring flags.
-# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
-# define GTEST_DECLARE_int32_(name) \
-    GTEST_API_ extern std::int32_t GTEST_FLAG(name)
-# define GTEST_DECLARE_string_(name) \
-    GTEST_API_ extern ::std::string GTEST_FLAG(name)
+// Pick a command line flags implementation.
+#ifdef GTEST_HAS_ABSL
 
 // Macros for defining flags.
-# define GTEST_DEFINE_bool_(name, default_val, doc) \
-    GTEST_API_ bool GTEST_FLAG(name) = (default_val)
-# define GTEST_DEFINE_int32_(name, default_val, doc) \
-    GTEST_API_ std::int32_t GTEST_FLAG(name) = (default_val)
-# define GTEST_DEFINE_string_(name, default_val, doc) \
-    GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val)
+#define GTEST_DEFINE_bool_(name, default_val, doc) \
+  ABSL_FLAG(bool, GTEST_FLAG_NAME_(name), default_val, doc)
+#define GTEST_DEFINE_int32_(name, default_val, doc) \
+  ABSL_FLAG(int32_t, GTEST_FLAG_NAME_(name), default_val, doc)
+#define GTEST_DEFINE_string_(name, default_val, doc) \
+  ABSL_FLAG(std::string, GTEST_FLAG_NAME_(name), default_val, doc)
 
-#endif  // !defined(GTEST_DECLARE_bool_)
+// Macros for declaring flags.
+#define GTEST_DECLARE_bool_(name) \
+  ABSL_DECLARE_FLAG(bool, GTEST_FLAG_NAME_(name))
+#define GTEST_DECLARE_int32_(name) \
+  ABSL_DECLARE_FLAG(int32_t, GTEST_FLAG_NAME_(name))
+#define GTEST_DECLARE_string_(name) \
+  ABSL_DECLARE_FLAG(std::string, GTEST_FLAG_NAME_(name))
+
+#define GTEST_FLAG_SAVER_ ::absl::FlagSaver
+
+#define GTEST_FLAG_GET(name) ::absl::GetFlag(GTEST_FLAG(name))
+#define GTEST_FLAG_SET(name, value) \
+  (void)(::absl::SetFlag(&GTEST_FLAG(name), value))
+#define GTEST_USE_OWN_FLAGFILE_FLAG_ 0
+
+#else  // GTEST_HAS_ABSL
+
+// Macros for defining flags.
+#define GTEST_DEFINE_bool_(name, default_val, doc)  \
+  namespace testing {                               \
+  GTEST_API_ bool GTEST_FLAG(name) = (default_val); \
+  }                                                 \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DEFINE_int32_(name, default_val, doc)         \
+  namespace testing {                                       \
+  GTEST_API_ std::int32_t GTEST_FLAG(name) = (default_val); \
+  }                                                         \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DEFINE_string_(name, default_val, doc)         \
+  namespace testing {                                        \
+  GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val); \
+  }                                                          \
+  static_assert(true, "no-op to require trailing semicolon")
+
+// Macros for declaring flags.
+#define GTEST_DECLARE_bool_(name)          \
+  namespace testing {                      \
+  GTEST_API_ extern bool GTEST_FLAG(name); \
+  }                                        \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DECLARE_int32_(name)                 \
+  namespace testing {                              \
+  GTEST_API_ extern std::int32_t GTEST_FLAG(name); \
+  }                                                \
+  static_assert(true, "no-op to require trailing semicolon")
+#define GTEST_DECLARE_string_(name)                 \
+  namespace testing {                               \
+  GTEST_API_ extern ::std::string GTEST_FLAG(name); \
+  }                                                 \
+  static_assert(true, "no-op to require trailing semicolon")
+
+#define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver
+
+#define GTEST_FLAG_GET(name) ::testing::GTEST_FLAG(name)
+#define GTEST_FLAG_SET(name, value) (void)(::testing::GTEST_FLAG(name) = value)
+#define GTEST_USE_OWN_FLAGFILE_FLAG_ 1
+
+#endif  // GTEST_HAS_ABSL
 
 // Thread annotations
 #if !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
-# define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
-# define GTEST_LOCK_EXCLUDED_(locks)
+#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
+#define GTEST_LOCK_EXCLUDED_(locks)
 #endif  // !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_)
 
 // Parses 'str' for a 32-bit signed integer.  If successful, writes the result
@@ -2271,7 +2368,7 @@
 
 #endif  // !defined(GTEST_INTERNAL_DEPRECATED)
 
-#if GTEST_HAS_ABSL
+#ifdef GTEST_HAS_ABSL
 // Always use absl::any for UniversalPrinter<> specializations if googletest
 // is built with absl support.
 #define GTEST_INTERNAL_HAS_ANY 1
@@ -2282,8 +2379,9 @@
 }  // namespace internal
 }  // namespace testing
 #else
-#ifdef __has_include
-#if __has_include(<any>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_any) || (GTEST_INTERNAL_HAS_INCLUDE(<any>) &&        \
+                               GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L && \
+                               (!defined(_MSC_VER) || GTEST_HAS_RTTI))
 // Otherwise for C++17 and higher use std::any for UniversalPrinter<>
 // specializations.
 #define GTEST_INTERNAL_HAS_ANY 1
@@ -2295,11 +2393,14 @@
 }  // namespace testing
 // The case where absl is configured NOT to alias std::any is not
 // supported.
-#endif  // __has_include(<any>) && __cplusplus >= 201703L
-#endif  // __has_include
+#endif  // __cpp_lib_any
 #endif  // GTEST_HAS_ABSL
 
-#if GTEST_HAS_ABSL
+#ifndef GTEST_INTERNAL_HAS_ANY
+#define GTEST_INTERNAL_HAS_ANY 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
 // Always use absl::optional for UniversalPrinter<> specializations if
 // googletest is built with absl support.
 #define GTEST_INTERNAL_HAS_OPTIONAL 1
@@ -2308,11 +2409,12 @@
 namespace internal {
 template <typename T>
 using Optional = ::absl::optional<T>;
+inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; }
 }  // namespace internal
 }  // namespace testing
 #else
-#ifdef __has_include
-#if __has_include(<optional>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_optional) || (GTEST_INTERNAL_HAS_INCLUDE(<optional>) && \
+                                    GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
 // Otherwise for C++17 and higher use std::optional for UniversalPrinter<>
 // specializations.
 #define GTEST_INTERNAL_HAS_OPTIONAL 1
@@ -2321,18 +2423,31 @@
 namespace internal {
 template <typename T>
 using Optional = ::std::optional<T>;
+inline ::std::nullopt_t Nullopt() { return ::std::nullopt; }
 }  // namespace internal
 }  // namespace testing
 // The case where absl is configured NOT to alias std::optional is not
 // supported.
-#endif  // __has_include(<optional>) && __cplusplus >= 201703L
-#endif  // __has_include
+#endif  // __cpp_lib_optional
 #endif  // GTEST_HAS_ABSL
 
-#if GTEST_HAS_ABSL
+#ifndef GTEST_INTERNAL_HAS_OPTIONAL
+#define GTEST_INTERNAL_HAS_OPTIONAL 0
+#endif
+
+#if defined(__cpp_lib_span) || (GTEST_INTERNAL_HAS_INCLUDE(<span>) && \
+                                GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L)
+#define GTEST_INTERNAL_HAS_STD_SPAN 1
+#endif  // __cpp_lib_span
+
+#ifndef GTEST_INTERNAL_HAS_STD_SPAN
+#define GTEST_INTERNAL_HAS_STD_SPAN 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
 // Always use absl::string_view for Matcher<> specializations if googletest
 // is built with absl support.
-# define GTEST_INTERNAL_HAS_STRING_VIEW 1
+#define GTEST_INTERNAL_HAS_STRING_VIEW 1
 #include "absl/strings/string_view.h"
 namespace testing {
 namespace internal {
@@ -2340,11 +2455,12 @@
 }  // namespace internal
 }  // namespace testing
 #else
-# ifdef __has_include
-#   if __has_include(<string_view>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_string_view) ||             \
+    (GTEST_INTERNAL_HAS_INCLUDE(<string_view>) && \
+     GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
 // Otherwise for C++17 and higher use std::string_view for Matcher<>
 // specializations.
-#   define GTEST_INTERNAL_HAS_STRING_VIEW 1
+#define GTEST_INTERNAL_HAS_STRING_VIEW 1
 #include <string_view>
 namespace testing {
 namespace internal {
@@ -2353,11 +2469,14 @@
 }  // namespace testing
 // The case where absl is configured NOT to alias std::string_view is not
 // supported.
-#  endif  // __has_include(<string_view>) && __cplusplus >= 201703L
-# endif  // __has_include
+#endif  // __cpp_lib_string_view
 #endif  // GTEST_HAS_ABSL
 
-#if GTEST_HAS_ABSL
+#ifndef GTEST_INTERNAL_HAS_STRING_VIEW
+#define GTEST_INTERNAL_HAS_STRING_VIEW 0
+#endif
+
+#ifdef GTEST_HAS_ABSL
 // Always use absl::variant for UniversalPrinter<> specializations if googletest
 // is built with absl support.
 #define GTEST_INTERNAL_HAS_VARIANT 1
@@ -2369,8 +2488,8 @@
 }  // namespace internal
 }  // namespace testing
 #else
-#ifdef __has_include
-#if __has_include(<variant>) && __cplusplus >= 201703L
+#if defined(__cpp_lib_variant) || (GTEST_INTERNAL_HAS_INCLUDE(<variant>) && \
+                                   GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L)
 // Otherwise for C++17 and higher use std::variant for UniversalPrinter<>
 // specializations.
 #define GTEST_INTERNAL_HAS_VARIANT 1
@@ -2382,8 +2501,17 @@
 }  // namespace internal
 }  // namespace testing
 // The case where absl is configured NOT to alias std::variant is not supported.
-#endif  // __has_include(<variant>) && __cplusplus >= 201703L
-#endif  // __has_include
+#endif  // __cpp_lib_variant
 #endif  // GTEST_HAS_ABSL
 
+#ifndef GTEST_INTERNAL_HAS_VARIANT
+#define GTEST_INTERNAL_HAS_VARIANT 0
+#endif
+
+#if (defined(__cpp_constexpr) && !defined(__cpp_inline_variables)) || \
+    (defined(GTEST_INTERNAL_CPLUSPLUS_LANG) &&                        \
+     GTEST_INTERNAL_CPLUSPLUS_LANG < 201703L)
+#define GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL 1
+#endif
+
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h
index 10f774f..7c05b58 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-string.h
@@ -26,7 +26,7 @@
 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+
 // The Google C++ Testing and Mocking Framework (Google Test)
 //
 // This header file declares the String class and functions used internally by
@@ -36,18 +36,22 @@
 // This header file is #included by gtest-internal.h.
 // It should not be #included by other files.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
 
 #ifdef __BORLANDC__
 // string.h is not guaranteed to provide strcpy on C++ Builder.
-# include <mem.h>
+#include <mem.h>
 #endif
 
 #include <string.h>
+
 #include <cstdint>
+#include <sstream>
 #include <string>
 
 #include "gtest/internal/gtest-port.h"
@@ -69,7 +73,7 @@
   // memory using malloc().
   static const char* CloneCString(const char* c_str);
 
-#if GTEST_OS_WINDOWS_MOBILE
+#ifdef GTEST_OS_WINDOWS_MOBILE
   // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be
   // able to pass strings to Win32 APIs on CE we need to convert them
   // to 'Unicode', UTF-16.
@@ -123,8 +127,7 @@
   // Unlike strcasecmp(), this function can handle NULL argument(s).
   // A NULL C string is considered different to any non-NULL C string,
   // including the empty string.
-  static bool CaseInsensitiveCStringEquals(const char* lhs,
-                                           const char* rhs);
+  static bool CaseInsensitiveCStringEquals(const char* lhs, const char* rhs);
 
   // Compares two wide C strings, ignoring case.  Returns true if and only if
   // they have the same content.
@@ -143,8 +146,8 @@
 
   // Returns true if and only if the given string ends with the given suffix,
   // ignoring case. Any string is considered to end with an empty suffix.
-  static bool EndsWithCaseInsensitive(
-      const std::string& str, const std::string& suffix);
+  static bool EndsWithCaseInsensitive(const std::string& str,
+                                      const std::string& suffix);
 
   // Formats an int value as "%02d".
   static std::string FormatIntWidth2(int value);  // "%02d" for width == 2
@@ -163,7 +166,7 @@
 
  private:
   String();  // Not meant to be instantiated.
-};  // class String
+};           // class String
 
 // Gets the content of the stringstream's buffer as an std::string.  Each '\0'
 // character in the buffer is replaced with "\\0".
diff --git a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h
index b87a2e2..f94cf61 100644
--- a/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h
+++ b/go/current/sdk/common_os/include/external/googletest/googletest/include/gtest/internal/gtest-type-util.h
@@ -30,20 +30,26 @@
 // Type utilities needed for implementing typed and type-parameterized
 // tests.
 
-// GOOGLETEST_CM0001 DO NOT DELETE
+// IWYU pragma: private, include "gtest/gtest.h"
+// IWYU pragma: friend gtest/.*
+// IWYU pragma: friend gmock/.*
 
 #ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
 
+#include <string>
+#include <type_traits>
+#include <typeinfo>
+
 #include "gtest/internal/gtest-port.h"
 
 // #ifdef __GNUC__ is too general here.  It is possible to use gcc without using
 // libstdc++ (which is where cxxabi.h comes from).
-# if GTEST_HAS_CXXABI_H_
-#  include <cxxabi.h>
-# elif defined(__HP_aCC)
-#  include <acxx_demangle.h>
-# endif  // GTEST_HASH_CXXABI_H_
+#if GTEST_HAS_CXXABI_H_
+#include <cxxabi.h>
+#elif defined(__HP_aCC)
+#include <acxx_demangle.h>
+#endif  // GTEST_HASH_CXXABI_H_
 
 namespace testing {
 namespace internal {
@@ -61,6 +67,22 @@
       s.erase(strlen("std"), end - strlen("std"));
     }
   }
+
+  // Strip redundant spaces in typename to match MSVC
+  // For example, std::pair<int, bool> -> std::pair<int,bool>
+  static const char to_search[] = ", ";
+  static const char replace_str[] = ",";
+  size_t pos = 0;
+  while (true) {
+    // Get the next occurrence from the current position
+    pos = s.find(to_search, pos);
+    if (pos == std::string::npos) {
+      break;
+    }
+    // Replace this occurrence of substring
+    s.replace(pos, strlen(to_search), replace_str);
+    pos += strlen(replace_str);
+  }
   return s;
 }
 
@@ -79,6 +101,20 @@
   const std::string name_str(status == 0 ? readable_name : name);
   free(readable_name);
   return CanonicalizeForStdLibVersioning(name_str);
+#elif defined(_MSC_VER)
+  // Strip struct and class due to differences between
+  // MSVC and other compilers. std::pair<int,bool> is printed as
+  // "struct std::pair<int,bool>" when using MSVC vs "std::pair<int, bool>" with
+  // other compilers.
+  std::string s = name;
+  // Only strip the leading "struct " and "class ", so uses rfind == 0 to
+  // ensure that
+  if (s.rfind("struct ", 0) == 0) {
+    s = s.substr(strlen("struct "));
+  } else if (s.rfind("class ", 0) == 0) {
+    s = s.substr(strlen("class "));
+  }
+  return s;
 #else
   return name;
 #endif  // GTEST_HAS_CXXABI_H_ || __HP_aCC
@@ -101,7 +137,9 @@
 // A unique type indicating an empty node
 struct None {};
 
-# define GTEST_TEMPLATE_ template <typename T> class
+#define GTEST_TEMPLATE_ \
+  template <typename T> \
+  class
 
 // The template "selector" struct TemplateSel<Tmpl> is used to
 // represent Tmpl, which must be a class template with one type
@@ -119,8 +157,7 @@
   };
 };
 
-# define GTEST_BIND_(TmplSel, T) \
-  TmplSel::template Bind<T>::type
+#define GTEST_BIND_(TmplSel, T) TmplSel::template Bind<T>::type
 
 template <GTEST_TEMPLATE_ Head_, GTEST_TEMPLATE_... Tail_>
 struct Templates {
diff --git a/go/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h b/go/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h
index d172ddc..2db9972 100644
--- a/go/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h
+++ b/go/current/sdk/common_os/include/external/libcap/libcap/include/sys/capability.h
@@ -2,7 +2,7 @@
  * <sys/capability.h>
  *
  * Copyright (C) 1997   Aleph One
- * Copyright (C) 1997,8, 2008,19,20 Andrew G. Morgan <morgan@kernel.org>
+ * Copyright (C) 1997,8, 2008,19-22 Andrew G. Morgan <morgan@kernel.org>
  *
  * defunct POSIX.1e Standard: 25.2 Capabilities           <sys/capability.h>
  */
@@ -15,13 +15,18 @@
 #endif
 
 /*
+ * Provide a programmatic way to #ifdef around features.
+ */
+#define LIBCAP_MAJOR 2
+#define LIBCAP_MINOR 69
+
+/*
  * This file complements the kernel file by providing prototype
  * information for the user library.
  */
 
 #include <sys/types.h>
 #include <stdint.h>
-#include <linux/types.h>
 
 #ifndef __user
 #define __user
@@ -54,6 +59,26 @@
 extern cap_value_t cap_max_bits(void);
 
 /*
+ * cap_proc_root reads and (optionally: when root != NULL) changes
+ * libcap's notion of where the "/proc" filesystem is mounted. When
+ * the return value is NULL, it should be interpreted as the
+ * value "/proc".
+ *
+ * Note, this is a global value and not considered thread safe to
+ * write - so the client should take suitable care when changing
+ * it.
+ *
+ * Further, libcap will allocate a memory copy for storing the
+ * replacement root, and it is this kind of memory that is returned.
+ * So, when changing the value, the caller should
+ * cap_free(the-return-value) else cause a memory leak.
+ *
+ * Note, the library uses a destructor to clean up the live allocated
+ * value of the working setting.
+ */
+extern char *cap_proc_root(const char *root);
+
+/*
  * Set identifiers
  */
 typedef enum {
@@ -102,11 +127,13 @@
 #define CAP_MODE_NOPRIV       ((cap_mode_t) 1)
 #define CAP_MODE_PURE1E_INIT  ((cap_mode_t) 2)
 #define CAP_MODE_PURE1E       ((cap_mode_t) 3)
+#define CAP_MODE_HYBRID       ((cap_mode_t) 4)
 
 /* libcap/cap_alloc.c */
 extern cap_t      cap_dup(cap_t);
 extern int        cap_free(void *);
 extern cap_t      cap_init(void);
+extern cap_iab_t  cap_iab_dup(cap_iab_t);
 extern cap_iab_t  cap_iab_init(void);
 
 /* libcap/cap_flag.c */
@@ -115,10 +142,14 @@
 			    cap_flag_value_t);
 extern int     cap_clear(cap_t);
 extern int     cap_clear_flag(cap_t, cap_flag_t);
+extern int     cap_fill_flag(cap_t cap_d, cap_flag_t to,
+                             cap_t ref, cap_flag_t from);
 extern int     cap_fill(cap_t, cap_flag_t, cap_flag_t);
 
 #define CAP_DIFFERS(result, flag)  (((result) & (1 << (flag))) != 0)
 extern int     cap_compare(cap_t, cap_t);
+#define CAP_IAB_DIFFERS(result, vector)  (((result) & (1 << (vector))) != 0)
+extern int     cap_iab_compare(cap_iab_t, cap_iab_t);
 
 extern cap_flag_value_t cap_iab_get_vector(cap_iab_t, cap_iab_vector_t,
 					 cap_value_t);
@@ -185,6 +216,7 @@
 extern int cap_setgroups(gid_t gid, size_t ngroups, const gid_t groups[]);
 
 extern cap_iab_t cap_iab_get_proc(void);
+extern cap_iab_t cap_iab_get_pid(pid_t);
 extern int cap_iab_set_proc(cap_iab_t iab);
 
 typedef struct cap_launch_s *cap_launch_t;
@@ -192,14 +224,14 @@
 extern cap_launch_t cap_new_launcher(const char *arg0, const char * const *argv,
 				     const char * const *envp);
 extern cap_launch_t cap_func_launcher(int (callback_fn)(void *detail));
-extern void cap_launcher_callback(cap_launch_t attr,
-				  int (callback_fn)(void *detail));
-extern void cap_launcher_setuid(cap_launch_t attr, uid_t uid);
-extern void cap_launcher_setgroups(cap_launch_t attr, gid_t gid,
-				   int ngroups, const gid_t *groups);
-extern void cap_launcher_set_mode(cap_launch_t attr, cap_mode_t flavor);
+extern int cap_launcher_callback(cap_launch_t attr,
+				 int (callback_fn)(void *detail));
+extern int cap_launcher_setuid(cap_launch_t attr, uid_t uid);
+extern int cap_launcher_setgroups(cap_launch_t attr, gid_t gid,
+				  int ngroups, const gid_t *groups);
+extern int cap_launcher_set_mode(cap_launch_t attr, cap_mode_t flavor);
 extern cap_iab_t cap_launcher_set_iab(cap_launch_t attr, cap_iab_t iab);
-extern void cap_launcher_set_chroot(cap_launch_t attr, const char *chroot);
+extern int cap_launcher_set_chroot(cap_launch_t attr, const char *chroot);
 extern pid_t cap_launch(cap_launch_t attr, void *detail);
 
 /*
diff --git a/go/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h b/go/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h
index 09b5563..56c9180 100644
--- a/go/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h
+++ b/go/current/sdk/common_os/include/external/libcap/libcap/include/uapi/linux/capability.h
@@ -14,7 +14,9 @@
 #ifndef _UAPI_LINUX_CAPABILITY_H
 #define _UAPI_LINUX_CAPABILITY_H
 
-#include <linux/types.h>
+#include <stdint.h>
+#define __u32 uint32_t
+#define __le32 __u32
 
 /* User-level do most of the mapping between kernel and user
    capabilities based on the version tag given by the kernel. The
@@ -422,5 +424,4 @@
 #define CAP_TO_INDEX(x)     ((x) >> 5)        /* 1 << 5 == bits in __u32 */
 #define CAP_TO_MASK(x)      (1u << ((x) & 31)) /* mask for indexed __u32 */
 
-
 #endif /* _UAPI_LINUX_CAPABILITY_H */
diff --git a/go/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h b/go/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h
index 39c771b..cc861bd 100644
--- a/go/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h
+++ b/go/current/sdk/common_os/include/external/zlib/contrib/optimizations/inffast_chunk.h
@@ -1,6 +1,7 @@
 /* inffast_chunk.h -- header to use inffast_chunk.c
  * Copyright (C) 1995-2003, 2010 Mark Adler
  * Copyright (C) 2017 ARM, Inc.
+ * Copyright 2023 The Chromium Authors
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -11,16 +12,31 @@
 
 #include "inffast.h"
 
-/* INFLATE_FAST_MIN_INPUT: the minimum number of input bytes needed so that
-   we can safely call inflate_fast() with only one up-front bounds check. One
+/* INFLATE_FAST_MIN_INPUT:
+   The minimum number of input bytes needed so that we can safely call
+   inflate_fast() with only one up-front bounds check. One
    length/distance code pair (15 bits for the length code, 5 bits for length
    extra, 15 bits for the distance code, 13 bits for distance extra) requires
-   reading up to 48 input bits (6 bytes). The wide input data reading option
-   requires a little endian machine, and reads 64 input bits (8 bytes).
+   reading up to 48 input bits. Additionally, in the same iteraction, we may
+   decode two literals from the root-table (requiring MIN_OUTPUT = 258 + 2).
+
+   Each root-table entry is up to 10 bits, for a total of 68 input bits each
+   iteraction.
+
+   The refill variant reads 8 bytes from the buffer at a time, and advances
+   the input pointer by up to 7 bytes, ensuring there are at least 56-bits
+   available in the bit-buffer. The technique was documented by Fabian Giesen
+   on his blog as variant 4 in the article 'Reading bits in far too many ways':
+   https://fgiesen.wordpress.com/2018/02/20/
+
+   In the worst case, we may refill twice in the same iteraction, requiring
+   MIN_INPUT = 8 + 7.
 */
 #ifdef INFLATE_CHUNK_READ_64LE
 #undef INFLATE_FAST_MIN_INPUT
-#define INFLATE_FAST_MIN_INPUT 8
+#define INFLATE_FAST_MIN_INPUT 15
+#undef INFLATE_FAST_MIN_OUTPUT
+#define INFLATE_FAST_MIN_OUTPUT 260
 #endif
 
 void ZLIB_INTERNAL inflate_fast_chunk_ OF((z_streamp strm, unsigned start));
diff --git a/go/current/sdk/common_os/include/external/zlib/cpu_features.h b/go/current/sdk/common_os/include/external/zlib/cpu_features.h
index 279246c..aed3e83 100644
--- a/go/current/sdk/common_os/include/external/zlib/cpu_features.h
+++ b/go/current/sdk/common_os/include/external/zlib/cpu_features.h
@@ -14,5 +14,6 @@
 extern int x86_cpu_enable_sse2;
 extern int x86_cpu_enable_ssse3;
 extern int x86_cpu_enable_simd;
+extern int x86_cpu_enable_avx512;
 
 void cpu_check_features(void);
diff --git a/go/current/sdk/common_os/include/external/zlib/crc32_simd.h b/go/current/sdk/common_os/include/external/zlib/crc32_simd.h
index c0346dc..8462464 100644
--- a/go/current/sdk/common_os/include/external/zlib/crc32_simd.h
+++ b/go/current/sdk/common_os/include/external/zlib/crc32_simd.h
@@ -19,12 +19,18 @@
                                          z_size_t len,
                                          uint32_t crc);
 
+uint32_t ZLIB_INTERNAL crc32_avx512_simd_(const unsigned char* buf,
+                                          z_size_t len,
+                                          uint32_t crc);
+
 /*
  * crc32_sse42_simd_ buffer size constraints: see the use in zlib/crc32.c
  * for computing the crc32 of an arbitrary length buffer.
  */
 #define Z_CRC32_SSE42_MINIMUM_LENGTH 64
 #define Z_CRC32_SSE42_CHUNKSIZE_MASK 15
+#define Z_CRC32_AVX512_MINIMUM_LENGTH 256
+#define Z_CRC32_AVX512_CHUNKSIZE_MASK 63
 
 /*
  * CRC32 checksums using ARMv8-a crypto instructions.
diff --git a/go/current/sdk/common_os/include/external/zlib/google/zip.h b/go/current/sdk/common_os/include/external/zlib/google/zip.h
index e3036c8..ea87786 100644
--- a/go/current/sdk/common_os/include/external/zlib/google/zip.h
+++ b/go/current/sdk/common_os/include/external/zlib/google/zip.h
@@ -10,10 +10,10 @@
 #include <utility>
 #include <vector>
 
-#include "base/callback.h"
 #include "base/containers/span.h"
 #include "base/files/file_path.h"
 #include "base/files/platform_file.h"
+#include "base/functional/callback.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
 
diff --git a/go/current/sdk/common_os/include/external/zlib/google/zip_reader.h b/go/current/sdk/common_os/include/external/zlib/google/zip_reader.h
index 48244c8..b7680cc 100644
--- a/go/current/sdk/common_os/include/external/zlib/google/zip_reader.h
+++ b/go/current/sdk/common_os/include/external/zlib/google/zip_reader.h
@@ -11,9 +11,9 @@
 #include <memory>
 #include <string>
 
-#include "base/callback.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "base/functional/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/time/time.h"
diff --git a/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
index 9cb8195..6c95c68 100644
--- a/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
+++ b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+/** JNI utils for nativehelper-internal use. */
+
 #pragma once
 
 #include <jni.h>
diff --git a/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
index cd35a88..32ae885 100644
--- a/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
+++ b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
@@ -23,6 +23,8 @@
 #include "nativehelper_utils.h"
 
 // A smart pointer that deletes a JNI local reference when it goes out of scope.
+//
+// For creating a `ScopedLocalRef<jstring>`, consider using `CREATE_UTF_OR_RETURN`.
 template<typename T>
 class ScopedLocalRef {
 public:
diff --git a/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
index 363ff42..25de0fc 100644
--- a/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
+++ b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
@@ -23,6 +23,11 @@
 
 #include "nativehelper_utils.h"
 
+// Protect this with __has_include to cope with `stl: "none"` users.
+#if __has_include(<string_view>)
+#include <string_view>
+#endif
+
 // A smart pointer that provides read-only access to a Java string's UTF chars.
 // Unlike GetStringUTFChars, we throw NullPointerException rather than abort if
 // passed a null jstring, and c_str will return nullptr.
@@ -32,6 +37,8 @@
 //   if (name.c_str() == nullptr) {
 //     return nullptr;
 //   }
+//
+// Also consider using `GET_UTF_OR_RETURN`, a shorthand for the 4 lines above.
 class ScopedUtfChars {
  public:
   ScopedUtfChars(JNIEnv* env, jstring s) : env_(env), string_(s) {
@@ -84,6 +91,10 @@
     return utf_chars_[n];
   }
 
+#if __has_include(<string_view>)
+  operator std::string_view() const { return utf_chars_; }
+#endif
+
  private:
   JNIEnv* env_;
   jstring string_;
@@ -91,4 +102,3 @@
 
   DISALLOW_COPY_AND_ASSIGN(ScopedUtfChars);
 };
-
diff --git a/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/utils.h b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/utils.h
new file mode 100644
index 0000000..12f591b
--- /dev/null
+++ b/go/current/sdk/common_os/include/libnativehelper/header_only_include/nativehelper/utils.h
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * JNI utils for external use.
+ *
+ * This file may only be included by C++ code.
+ */
+
+#pragma once
+
+#include <jni.h>
+
+#include <string>
+
+#include "nativehelper/scoped_local_ref.h"
+#include "nativehelper/scoped_utf_chars.h"
+
+namespace android {
+namespace jnihelp {
+
+// Implementation details. DO NOT use directly.
+namespace internal {
+
+[[maybe_unused]] static const char* GetCStr(const char* str) { return str; }
+[[maybe_unused]] static const char* GetCStr(const std::string& str) { return str.c_str(); }
+
+}  // namespace internal
+
+// A class that implicitly casts to the default values of various JNI types.
+// Used for returning from a JNI method when an exception occurs, where we don't care about the
+// return value.
+class JniDefaultValue {
+   public:
+    operator jboolean() const { return JNI_FALSE; }
+    operator jbyte() const { return 0; }
+    operator jchar() const { return 0; }
+    operator jshort() const { return 0; }
+    operator jint() const { return 0; }
+    operator jlong() const { return 0; }
+    operator jfloat() const { return 0; }
+    operator jdouble() const { return 0; }
+    operator jobject() const { return nullptr; }
+    operator jclass() const { return nullptr; }
+    operator jstring() const { return nullptr; }
+    operator jarray() const { return nullptr; }
+    operator jobjectArray() const { return nullptr; }
+    operator jbooleanArray() const { return nullptr; }
+    operator jbyteArray() const { return nullptr; }
+    operator jcharArray() const { return nullptr; }
+    operator jshortArray() const { return nullptr; }
+    operator jintArray() const { return nullptr; }
+    operator jlongArray() const { return nullptr; }
+    operator jfloatArray() const { return nullptr; }
+    operator jdoubleArray() const { return nullptr; }
+    operator jthrowable() const { return nullptr; }
+};
+
+// Gets `ScopedUtfChars` from a `jstring` expression.
+//
+// Throws `NullPointerException` and returns the default value if the given `jstring` is a null
+// pointer.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN_VOID(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// The idiomatic way to construct an `std::string` using this macro (an additional string copy is
+// performed):
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   std::string str(GET_UTF_OR_RETURN(env, j_str));
+//   // Safely use `str` here...
+// }
+#define GET_UTF_OR_RETURN(env, expr) \
+    GET_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define GET_UTF_OR_RETURN_VOID(env, expr) GET_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define GET_UTF_OR_RETURN_IMPL_(env, expr, ...)                          \
+    ({                                                                   \
+        ScopedUtfChars __or_return_scoped_utf_chars(env, expr);          \
+        if (__or_return_scoped_utf_chars.c_str() == nullptr) {           \
+            /* Return with a pending exception from `ScopedUtfChars`. */ \
+            return __VA_ARGS__;                                          \
+        }                                                                \
+        std::move(__or_return_scoped_utf_chars);                         \
+    })
+
+// Creates `ScopedLocalRef<jstring>` from a `const char*` or `std::string` expression using
+// NewStringUTF.
+//
+// Throws `OutOfMemoryError` and returns the default value if the system runs out of memory.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN(env, str);
+//   // Safely use `j_str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN_VOID(env, str);
+//   // Safely use `j_str` here...
+// }
+#define CREATE_UTF_OR_RETURN(env, expr) \
+    CREATE_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define CREATE_UTF_OR_RETURN_VOID(env, expr) CREATE_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define CREATE_UTF_OR_RETURN_IMPL_(env, expr, ...)                                             \
+    ({                                                                                         \
+        const char* __or_return_c_str;                                                         \
+        ScopedLocalRef<jstring> __or_return_local_ref(                                         \
+            env,                                                                               \
+            env->NewStringUTF(__or_return_c_str = android::jnihelp::internal::GetCStr(expr))); \
+        /* `*__or_return_c_str` may be freed here, but we only compare the pointer against     \
+         * nullptr. DO NOT DEREFERENCE `*__or_return_c_str` after this point. */               \
+        /* `NewStringUTF` returns nullptr when OOM or the input is nullptr, but only throws an \
+         * exception when OOM. */                                                              \
+        if (__or_return_local_ref == nullptr && __or_return_c_str != nullptr) {                \
+            /* Return with a pending exception from `NewStringUTF`. */                         \
+            return __VA_ARGS__;                                                                \
+        }                                                                                      \
+        std::move(__or_return_local_ref);                                                      \
+    })
+
+}  // namespace jnihelp
+}  // namespace android
diff --git a/go/current/sdk/common_os/include/libnativehelper/include/nativehelper/Utils.h b/go/current/sdk/common_os/include/libnativehelper/include/nativehelper/Utils.h
new file mode 100644
index 0000000..c05b2f1
--- /dev/null
+++ b/go/current/sdk/common_os/include/libnativehelper/include/nativehelper/Utils.h
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <nativehelper/utils.h>
diff --git a/go/current/sdk/common_os/include/system/libbase/include/android-base/errors.h b/go/current/sdk/common_os/include/system/libbase/include/android-base/errors.h
index 61fdbd8..99029d1 100644
--- a/go/current/sdk/common_os/include/system/libbase/include/android-base/errors.h
+++ b/go/current/sdk/common_os/include/system/libbase/include/android-base/errors.h
@@ -72,38 +72,41 @@
 // If implicit conversion compilation errors occur involving a value type with a templated
 // forwarding ref ctor, compilation with cpp20 or explicitly converting to the desired
 // return type is required.
-#define OR_RETURN(expr)                                                                 \
-  ({                                                                                    \
-    decltype(expr)&& tmp = (expr);                                                      \
-    typedef android::base::OkOrFail<std::remove_reference_t<decltype(tmp)>> ok_or_fail; \
-    if (!ok_or_fail::IsOk(tmp)) {                                                       \
-      return ok_or_fail::Fail(std::move(tmp));                                          \
-    }                                                                                   \
-    ok_or_fail::Unwrap(std::move(tmp));                                                 \
+#define OR_RETURN(expr)                                                                  \
+  ({                                                                                     \
+    decltype(expr)&& __or_return_expr = (expr);                                          \
+    typedef android::base::OkOrFail<std::remove_reference_t<decltype(__or_return_expr)>> \
+        ok_or_fail;                                                                      \
+    if (!ok_or_fail::IsOk(__or_return_expr)) {                                           \
+      return ok_or_fail::Fail(std::move(__or_return_expr));                              \
+    }                                                                                    \
+    ok_or_fail::Unwrap(std::move(__or_return_expr));                                     \
   })
 
 // Same as OR_RETURN, but aborts if expr is a failure.
 #if defined(__BIONIC__)
 #define OR_FATAL(expr)                                                                  \
   ({                                                                                    \
-    decltype(expr)&& tmp = (expr);                                                      \
-    typedef android::base::OkOrFail<std::remove_reference_t<decltype(tmp)>> ok_or_fail; \
-    if (!ok_or_fail::IsOk(tmp)) {                                                       \
-      __assert(__FILE__, __LINE__, ok_or_fail::ErrorMessage(tmp).c_str());              \
+    decltype(expr)&& __or_fatal_expr = (expr);                                          \
+    typedef android::base::OkOrFail<std::remove_reference_t<decltype(__or_fatal_expr)>> \
+        ok_or_fail;                                                                     \
+    if (!ok_or_fail::IsOk(__or_fatal_expr)) {                                           \
+      __assert(__FILE__, __LINE__, ok_or_fail::ErrorMessage(__or_fatal_expr).c_str());  \
     }                                                                                   \
-    ok_or_fail::Unwrap(std::move(tmp));                                                 \
+    ok_or_fail::Unwrap(std::move(__or_fatal_expr));                                     \
   })
 #else
 #define OR_FATAL(expr)                                                                  \
   ({                                                                                    \
-    decltype(expr)&& tmp = (expr);                                                      \
-    typedef android::base::OkOrFail<std::remove_reference_t<decltype(tmp)>> ok_or_fail; \
-    if (!ok_or_fail::IsOk(tmp)) {                                                       \
+    decltype(expr)&& __or_fatal_expr = (expr);                                          \
+    typedef android::base::OkOrFail<std::remove_reference_t<decltype(__or_fatal_expr)>> \
+        ok_or_fail;                                                                     \
+    if (!ok_or_fail::IsOk(__or_fatal_expr)) {                                           \
       fprintf(stderr, "%s:%d: assertion \"%s\" failed", __FILE__, __LINE__,             \
-              ok_or_fail::ErrorMessage(tmp).c_str());                                   \
+              ok_or_fail::ErrorMessage(__or_fatal_expr).c_str());                       \
       abort();                                                                          \
     }                                                                                   \
-    ok_or_fail::Unwrap(std::move(tmp));                                                 \
+    ok_or_fail::Unwrap(std::move(__or_fatal_expr));                                     \
   })
 #endif
 
diff --git a/go/current/sdk/common_os/include/system/libbase/include/android-base/macros.h b/go/current/sdk/common_os/include/system/libbase/include/android-base/macros.h
index f141f34..b9ee402 100644
--- a/go/current/sdk/common_os/include/system/libbase/include/android-base/macros.h
+++ b/go/current/sdk/common_os/include/system/libbase/include/android-base/macros.h
@@ -131,7 +131,7 @@
 // In either case this macro has no effect on runtime behavior and performance
 // of code.
 #ifndef FALLTHROUGH_INTENDED
-#define FALLTHROUGH_INTENDED [[clang::fallthrough]]  // NOLINT
+#define FALLTHROUGH_INTENDED [[fallthrough]]  // NOLINT
 #endif
 
 // Current ABI string
diff --git a/go/current/sdk/common_os/include/system/libbase/include/android-base/properties.h b/go/current/sdk/common_os/include/system/libbase/include/android-base/properties.h
index 021f466..1760ac7 100644
--- a/go/current/sdk/common_os/include/system/libbase/include/android-base/properties.h
+++ b/go/current/sdk/common_os/include/system/libbase/include/android-base/properties.h
@@ -20,6 +20,7 @@
 
 #include <chrono>
 #include <limits>
+#include <mutex>
 #include <optional>
 #include <string>
 
@@ -75,17 +76,28 @@
 // this class helps optimize those lookups.
 class CachedProperty {
  public:
+  explicit CachedProperty(std::string property_name);
+
+  // Kept for ABI compatibility.
   explicit CachedProperty(const char* property_name);
 
   // Returns the current value of the underlying system property as cheaply as possible.
   // The returned pointer is valid until the next call to Get. Because most callers are going
-  // to want to parse the string returned here and cached that as well, this function performs
+  // to want to parse the string returned here and cache that as well, this function performs
   // no locking, and is completely thread unsafe. It is the caller's responsibility to provide a
   // lock for thread-safety.
   //
   // Note: *changed can be set to true even if the contents of the property remain the same.
   const char* Get(bool* changed = nullptr);
 
+  // Waits for the property to be changed and then reads its value.
+  // Times out returning nullptr, after `relative_timeout`
+  //
+  // Note: this can return the same value multiple times in a row if the property was set to the
+  // same value or if multiple changes happened before the current thread was resumed.
+  const char* WaitForChange(
+      std::chrono::milliseconds relative_timeout = std::chrono::milliseconds::max());
+
  private:
   std::string property_name_;
   const prop_info* prop_info_;
@@ -95,6 +107,55 @@
   bool is_read_only_;
   const char* read_only_property_;
 };
+
+// Helper class for passing the output of CachedProperty to a parser function, and then caching
+// that as well.
+template <typename Parser>
+class CachedParsedProperty {
+ public:
+  using value_type = std::remove_reference_t<std::invoke_result_t<Parser, const char*>>;
+
+  CachedParsedProperty(std::string property_name, Parser parser)
+      : cached_property_(std::move(property_name)), parser_(std::move(parser)) {}
+
+  // Returns the parsed value.
+  // This function is internally-synchronized, so use from multiple threads is safe (but ordering
+  // of course cannot be guaranteed without external synchronization).
+  value_type Get(bool* changed = nullptr) {
+    std::lock_guard<std::mutex> lock(mutex_);
+    bool local_changed = false;
+    const char* value = cached_property_.Get(&local_changed);
+    if (!cached_result_ || local_changed) {
+      cached_result_ = parser_(value);
+    }
+
+    if (changed) *changed = local_changed;
+    return *cached_result_;
+  }
+
+ private:
+  std::mutex mutex_;
+  CachedProperty cached_property_;
+  std::optional<value_type> cached_result_;
+
+  Parser parser_;
+};
+
+// Helper for CachedParsedProperty that uses android::base::ParseBool.
+class CachedBoolProperty {
+ public:
+  explicit CachedBoolProperty(std::string property_name);
+
+  // Returns the parsed bool, or std::nullopt if it wasn't set or couldn't be parsed.
+  std::optional<bool> GetOptional();
+
+  // Returns the parsed bool, or default_value if it wasn't set or couldn't be parsed.
+  bool Get(bool default_value);
+
+ private:
+  CachedParsedProperty<std::optional<bool> (*)(const char*)> cached_parsed_property_;
+};
+
 #endif
 
 static inline int HwTimeoutMultiplier() {
diff --git a/go/current/sdk/common_os/include/system/libbase/include/android-base/result.h b/go/current/sdk/common_os/include/system/libbase/include/android-base/result.h
index 3c325f2..be36878 100644
--- a/go/current/sdk/common_os/include/system/libbase/include/android-base/result.h
+++ b/go/current/sdk/common_os/include/system/libbase/include/android-base/result.h
@@ -137,7 +137,7 @@
     return android::base::unexpected(ResultError<E>(message_, code_));
   }
 
-  std::string message() const { return message_; }
+  const std::string& message() const { return message_; }
   const E& code() const { return code_; }
 
  private:
diff --git a/go/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml b/go/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
index 09eb368..365fbbf 100644
--- a/go/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
+++ b/go/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
@@ -18,13 +18,28 @@
   <compat-change description="If this change is enabled, {@link #getHardwareAddress()} returns null when the hardware address is &lt;a href=&quot;#access-restrictions&quot;&gt;inaccessible&lt;/a&gt;. If the change is disabled, the default MAC address (02:00:00:00:00:00) is returned instead." enableSinceTargetSdk="30" id="170188668" name="RETURN_NULL_HARDWARE_ADDRESS">
     <meta-data definedIn="java.net.NetworkInterface" sourcePosition="libcore/ojluni/src/main/java/java/net/NetworkInterface.java:79" />
   </compat-change>
+  <compat-change description="Since Android 15 Arrays.asList(...).toArray()'s component type is {@link Object}, not the underlying array's elements type. So the following code will throw {@link ClassCastException}: &lt;pre&gt;{@code String[] elements = (String[]) Arrays.asList(&quot;one&quot;, &quot;two&quot;).toArray(); }&lt;/pre&gt; You can overcome this by using {@link Collection#toArray(Object[])}: &lt;pre&gt;{@code String[] elements = Arrays.asList(&quot;two&quot;, &quot;one&quot;).toArray(new String[0]); }&lt;/pre&gt;" enableSinceTargetSdk="10000" id="202956589" name="DO_NOT_CLONE_IN_ARRAYS_AS_LIST">
+    <meta-data definedIn="java.util.Arrays" sourcePosition="libcore/ojluni/src/main/java/java/util/Arrays.java:4186" />
+  </compat-change>
+  <compat-change description="Prior to Android 15 (V), validations of argument index, flags, width, and precision were lax - it was allowed to use 0 and Integer.MAX_VALUE + 1 as argument index. &lt;p&gt; Now it will throw exception, as documentation says. Flag is enabled on Android 15+." enableAfterTargetSdk="10000" id="270674727" name="ENABLE_STRICT_FORMATTER_VALIDATION">
+    <meta-data definedIn="java.util.Formatter" sourcePosition="libcore/ojluni/src/main/java/java/util/Formatter.java:2893" />
+  </compat-change>
+  <compat-change description="Since Android 14, {@link PriorityQueue#offer(E)} requires all elements to be comparable if there was no comparator. Previously, the first element being added did not need to be comparable. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="289878283" name="PRIORITY_QUEUE_OFFER_NON_COMPARABLE_ONE_ELEMENT">
+    <meta-data definedIn="java.util.PriorityQueue" sourcePosition="libcore/ojluni/src/main/java/java/util/PriorityQueue.java:1002" />
+  </compat-change>
   <compat-change description="Since Android 14 {@link #fromString} does more strict input argument validation. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="263076149" name="ENABLE_STRICT_VALIDATION">
-    <meta-data definedIn="java.util.UUID" sourcePosition="libcore/ojluni/src/main/java/java/util/UUID.java:199" />
+    <meta-data definedIn="java.util.UUID" sourcePosition="libcore/ojluni/src/main/java/java/util/UUID.java:235" />
   </compat-change>
   <compat-change description="Since Android 14, {@link Matcher} becomes stricter for the replacement syntax and group references used by its methods, e.g. {@link #appendReplacement(StringBuffer, String)}. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="247079863" name="DISALLOW_INVALID_GROUP_REFERENCE">
     <meta-data definedIn="java.util.regex.Matcher" sourcePosition="libcore/ojluni/src/main/java/java/util/regex/Matcher.java:881" />
   </compat-change>
+  <compat-change description="Since Android 14, {@link Pattern#splitAsStream(CharSequence)} return a stream of a single empty String as described in the API documentation. Previously, given an empty string input, the method returns an empty stream. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="288845345" name="SPLIT_AS_STREAM_RETURNS_SINGLE_EMPTY_STRING">
+    <meta-data definedIn="java.util.regex.Pattern" sourcePosition="libcore/ojluni/src/main/java/java/util/regex/Pattern.java:5797" />
+  </compat-change>
   <compat-change description="Since Android 11, formatter classes, e.g. java.text.SimpleDateFormat, no longer provide English data when Locale.ROOT format is requested. Please use Locale.ENGLISH to format in English. Note that Locale.ROOT is used as language/country neutral locale or fallback locale, and does not guarantee to represent English locale. This flag is only for documentation and can't be overridden by app. Please use {@code targetSdkVersion} to enable the new behavior." enableAfterTargetSdk="29" id="159047832" name="USE_REAL_ROOT_LOCALE">
     <meta-data definedIn="libcore.icu.LocaleData" sourcePosition="libcore/luni/src/main/java/libcore/icu/LocaleData.java:77" />
   </compat-change>
+  <compat-change description="On Android V+ when this flag is enabled language codes are no longer converted to their obsolete forms: iw maps to he, ji maps to yi, and in maps to id." enableSinceTargetSdk="10000" id="291868760" name="USE_NEW_ISO_LOCALE_CODES">
+    <meta-data definedIn="sun.util.locale.BaseLocale" sourcePosition="libcore/ojluni/src/main/java/sun/util/locale/BaseLocale.java:115" />
+  </compat-change>
 </config>
\ No newline at end of file
diff --git a/go/current/sdk/doctags/known_oj_tags.txt b/go/current/sdk/doctags/known_oj_tags.txt
index 91c56b0..ab95817 100644
--- a/go/current/sdk/doctags/known_oj_tags.txt
+++ b/go/current/sdk/doctags/known_oj_tags.txt
@@ -20,4 +20,5 @@
 @spec
 @revised
 @jls
-@jvms
\ No newline at end of file
+@jvms
+@systemProperty
diff --git a/go/current/sdk/hiddenapi/annotation-flags.csv b/go/current/sdk/hiddenapi/annotation-flags.csv
index ec078e9..385eacc 100644
--- a/go/current/sdk/hiddenapi/annotation-flags.csv
+++ b/go/current/sdk/hiddenapi/annotation-flags.csv
@@ -539,6 +539,7 @@
 Ljava/nio/CharBuffer;->toString(II)Ljava/lang/String;,max-target-r
 Ljava/nio/DirectByteBuffer;-><init>(JI)V,max-target-r
 Ljava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;,unsupported
+Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/MappedByteBuffer;,public-api
 Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,public-api
 Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,public-api
 Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,public-api
@@ -567,6 +568,22 @@
 Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,public-api
 Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,public-api
 Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/ByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/MappedByteBuffer;,public-api
+Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;,public-api
 Ljava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;,unsupported
 Ljava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I,unsupported
 Ljava/nio/NIOAccess;->getBasePointer(Ljava/nio/Buffer;)J,unsupported
diff --git a/go/current/sdk/hiddenapi/filtered-flags.csv b/go/current/sdk/hiddenapi/filtered-flags.csv
index f48c849..92da957 100644
--- a/go/current/sdk/hiddenapi/filtered-flags.csv
+++ b/go/current/sdk/hiddenapi/filtered-flags.csv
@@ -399,6 +399,7 @@
 Landroid/system/OsConstants;->IPV6_MULTICAST_HOPS:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_IF:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_LOOP:I,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/system/OsConstants;->IPV6_PKTINFO:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVDSTOPTS:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPLIMIT:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPOPTS:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -462,6 +463,7 @@
 Landroid/system/OsConstants;->O_SYNC:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->O_TRUNC:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->O_WRONLY:I,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/system/OsConstants;->PACKET_IGNORE_OUTGOING:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->POLLERR:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->POLLHUP:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->POLLIN:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -550,6 +552,7 @@
 Landroid/system/OsConstants;->SOCK_RAW:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOCK_SEQPACKET:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOCK_STREAM:I,core-platform-api,public-api,sdk,system-api,test-api
+Landroid/system/OsConstants;->SOL_PACKET:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOL_SOCKET:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SOL_UDP:I,core-platform-api,public-api,sdk,system-api,test-api
 Landroid/system/OsConstants;->SO_BINDTODEVICE:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -4311,7 +4314,6 @@
 Ldalvik/system/ZygoteHooks;->startZygoteNoThreadCreation()V,core-platform-api,lo-prio,max-target-o
 Ldalvik/system/ZygoteHooks;->stopZygoteNoThreadCreation()V,core-platform-api,lo-prio,max-target-o
 Ldalvik/system/ZygoteHooks;->token:J,lo-prio,max-target-o
-Ldalvik/system/ZygoteHooks;->waitUntilAllThreadsStopped()V,lo-prio,max-target-o
 Ljava/awt/font/NumericShaper$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/awt/font/NumericShaper$Range;->ARABIC:Ljava/awt/font/NumericShaper$Range;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/awt/font/NumericShaper$Range;->BALINESE:Ljava/awt/font/NumericShaper$Range;,core-platform-api,public-api,sdk,system-api,test-api
@@ -5575,9 +5577,9 @@
 Ljava/io/ObjectOutputStream;->writeTypeString(Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/io/ObjectOutputStream;->writeUTF(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectOutputStream;->writeUnshared(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectStreamClass$1;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectStreamClass$2;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/io/ObjectStreamClass$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -6469,6 +6471,7 @@
 Ljava/lang/CharSequence;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->codePoints()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->compare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/CharSequence;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->length()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/CharSequence;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
@@ -7047,6 +7050,7 @@
 Ljava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->codePointCount([CII)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->codePointCountImpl([CII)I,lo-prio,max-target-o
+Ljava/lang/Character;->codePointOf(Ljava/lang/String;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->compare(CC)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Character;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -7142,6 +7146,7 @@
 Ljava/lang/Character;->toLowerCaseImpl(I)I,lo-prio,max-target-o
 Ljava/lang/Character;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->toString(C)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Character;->toString(I)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->toSurrogates(I[CI)V,lo-prio,max-target-o
 Ljava/lang/Character;->toTitleCase(C)C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Character;->toTitleCase(I)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -7151,6 +7156,8 @@
 Ljava/lang/Character;->toUpperCaseImpl(I)I,lo-prio,max-target-o
 Ljava/lang/Character;->value:C,max-target-p
 Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class$Caches;-><init>()V,lo-prio,max-target-o
 Ljava/lang/Class$Caches;->genericInterfaces:Llibcore/util/BasicLruCache;,lo-prio,max-target-o
 Ljava/lang/Class;-><init>()V,unsupported
@@ -7222,7 +7229,6 @@
 Ljava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class;->getInnerClassFlags(I)I,lo-prio,max-target-o
-Ljava/lang/Class;->getInnerClassName()Ljava/lang/String;,lo-prio,max-target-o
 Ljava/lang/Class;->getInstanceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;,lo-prio,max-target-o
 Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Class;->getInterfacesInternal()[Ljava/lang/Class;,lo-prio,max-target-o
@@ -7302,11 +7308,13 @@
 Ljava/lang/ClassFormatError;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassFormatError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassFormatError;->serialVersionUID:J,sdk
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader$SystemClassLoader;-><init>()V,lo-prio,max-target-o
 Ljava/lang/ClassLoader$SystemClassLoader;->loader:Ljava/lang/ClassLoader;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader;-><init>(Ljava/lang/ClassLoader;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ClassLoader;-><init>(Ljava/lang/Void;Ljava/lang/ClassLoader;)V,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->allocator:J,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->checkCreateClassLoader()Ljava/lang/Void;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->classTable:J,lo-prio,max-target-o
@@ -7338,7 +7346,6 @@
 Ljava/lang/ClassLoader;->getSystemResources(Ljava/lang/String;)Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ClassLoader;->packages:Ljava/util/HashMap;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->parent:Ljava/lang/ClassLoader;,unsupported
 Ljava/lang/ClassLoader;->proxyCache:Ljava/util/Map;,lo-prio,max-target-o
 Ljava/lang/ClassLoader;->registerAsParallelCapable()Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -7350,10 +7357,11 @@
 Ljava/lang/ClassNotFoundException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ClassNotFoundException;->ex:Ljava/lang/Throwable;,lo-prio,max-target-o
-Ljava/lang/ClassNotFoundException;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassNotFoundException;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ClassNotFoundException;->readObject(Ljava/io/ObjectInputStream;)V,sdk
+Ljava/lang/ClassNotFoundException;->serialPersistentFields:[Ljava/io/ObjectStreamField;,sdk
 Ljava/lang/ClassNotFoundException;->serialVersionUID:J,sdk
+Ljava/lang/ClassNotFoundException;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
 Ljava/lang/ClassValue;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassValue;->computeValue(Ljava/lang/Class;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ClassValue;->get(Ljava/lang/Class;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -7368,6 +7376,8 @@
 Ljava/lang/Compiler;->compileClasses(Ljava/lang/String;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Compiler;->disable()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Compiler;->enable()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/CompoundEnumeration;->hasMoreElements()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/CompoundEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Daemons$Daemon;-><init>(Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/lang/Daemons$Daemon;->getStackTrace()[Ljava/lang/StackTraceElement;,lo-prio,max-target-o
 Ljava/lang/Daemons$Daemon;->interrupt()V,lo-prio,max-target-o
@@ -7455,6 +7465,7 @@
 Ljava/lang/Double;->value:D,max-target-p
 Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/Enum$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Enum$EnumDesc;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Enum;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -7495,10 +7506,11 @@
 Ljava/lang/ExceptionInInitializerError;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/Throwable;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/ExceptionInInitializerError;->exception:Ljava/lang/Throwable;,lo-prio,max-target-o
-Ljava/lang/ExceptionInInitializerError;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/ExceptionInInitializerError;->readObject(Ljava/io/ObjectInputStream;)V,sdk
+Ljava/lang/ExceptionInInitializerError;->serialPersistentFields:[Ljava/io/ObjectStreamField;,sdk
 Ljava/lang/ExceptionInInitializerError;->serialVersionUID:J,sdk
+Ljava/lang/ExceptionInInitializerError;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
 Ljava/lang/Float;-><init>(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Float;-><init>(F)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Float;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -7863,7 +7875,6 @@
 Ljava/lang/Number;->shortValue()S,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/NumberFormatException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/NumberFormatException;->forInputString(Ljava/lang/String;)Ljava/lang/NumberFormatException;,lo-prio,max-target-o
 Ljava/lang/NumberFormatException;->serialVersionUID:J,sdk
 Ljava/lang/Object;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/Object;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -8666,9 +8677,18 @@
 Ljava/lang/StringUTF16$LinesSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/StringUTF16$LinesSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/SuppressWarnings;->value()[Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;-><init>(Ljava/util/Properties;)V,lo-prio,max-target-o
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/System;-><init>()V,max-target-r
 Ljava/lang/System;->ARRAYCOPY_SHORT_BOOLEAN_ARRAY_THRESHOLD:I,lo-prio,max-target-o
 Ljava/lang/System;->ARRAYCOPY_SHORT_BYTE_ARRAY_THRESHOLD:I,lo-prio,max-target-o
@@ -9255,32 +9275,32 @@
 Ljava/lang/invoke/MethodHandleInfo;->referenceKindToString(I)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->reflectAs(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->toString(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda11;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda21;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda22;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda24;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;)V,lo-prio,max-target-o
 Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V,unsupported
 Ljava/lang/invoke/MethodHandles$Lookup;->ALL_MODES:I,lo-prio,max-target-o
@@ -11954,7 +11974,6 @@
 Ljava/nio/Buffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/Buffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/Buffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/Buffer;->truncate()V,lo-prio,max-target-o
 Ljava/nio/BufferOverflowException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/BufferOverflowException;->serialVersionUID:J,sdk
 Ljava/nio/BufferUnderflowException;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
@@ -11979,17 +11998,16 @@
 Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->bigEndian:Z,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->clear()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->clear()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->compare(BB)I,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->compareTo(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->equals(BB)Z,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->flip()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->flip()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->get()B,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->get(I)B,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12025,16 +12043,16 @@
 Ljava/nio/ByteBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->isReadOnly:Z,max-target-r
 Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->mark()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->mark()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->mismatch(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->nativeByteOrder:Z,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->offset:I,max-target-r
 Ljava/nio/ByteBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->position(I)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->position(I)Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12065,9 +12083,9 @@
 Ljava/nio/ByteBuffer;->putUnchecked(I[JII)V,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->putUnchecked(I[SII)V,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->reset()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->reset()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ByteBuffer;->rewind()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ByteBuffer;->rewind()Ljava/nio/ByteBuffer;,public-api,sdk
 Ljava/nio/ByteBuffer;->setAccessible(Z)V,core-platform-api,lo-prio,max-target-o
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12203,17 +12221,16 @@
 Ljava/nio/CharBuffer;->charAt(I)C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->clear()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->clear()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->compact()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->compare(CC)I,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->compareTo(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->duplicate()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->equals(CC)Z,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->flip()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->flip()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->get()C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->get(I)C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->get([C)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12227,14 +12244,14 @@
 Ljava/nio/CharBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->length()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->limit(I)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->limit(I)Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->mark()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->mark()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->mismatch(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/CharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->position(I)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->position(I)Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->put(Ljava/lang/String;)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12244,9 +12261,9 @@
 Ljava/nio/CharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->read(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->reset()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->reset()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/CharBuffer;->rewind()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/CharBuffer;->rewind()Ljava/nio/CharBuffer;,public-api,sdk
 Ljava/nio/CharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->slice()Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/CharBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12295,6 +12312,7 @@
 Ljava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;,unsupported
 Ljava/nio/DirectByteBuffer;->cleaner:Lsun/misc/Cleaner;,lo-prio,max-target-o
 Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/DirectByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DirectByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DirectByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;,blocked,core-platform-api
@@ -12386,17 +12404,16 @@
 Ljava/nio/DoubleBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->asReadOnlyBuffer()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->compact()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->compare(DD)I,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->duplicate()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->equals(DD)Z,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->get()D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->get(I)D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->get([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12407,23 +12424,23 @@
 Ljava/nio/DoubleBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->mark()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->mark()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->mismatch(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/DoubleBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->put(D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(ID)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(Ljava/nio/DoubleBuffer;)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([DII)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->reset()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->reset()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/DoubleBuffer;,public-api,sdk
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12439,17 +12456,16 @@
 Ljava/nio/FloatBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->asReadOnlyBuffer()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->clear()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->clear()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->compact()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->compare(FF)I,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->compareTo(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->duplicate()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->equals(FF)Z,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->flip()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->flip()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->get()F,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->get(I)F,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->get([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12460,23 +12476,23 @@
 Ljava/nio/FloatBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->mark()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->mark()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->mismatch(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/FloatBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->position(I)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->position(I)Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put(IF)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put(Ljava/nio/FloatBuffer;)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->put([FII)Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->reset()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->reset()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/FloatBuffer;->rewind()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/FloatBuffer;->rewind()Ljava/nio/FloatBuffer;,public-api,sdk
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/FloatBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/FloatBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12513,6 +12529,7 @@
 Ljava/nio/HeapByteBuffer;->isReadOnly()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/HeapByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(IC)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12542,6 +12559,7 @@
 Ljava/nio/HeapCharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/HeapCharBuffer;->put(Ljava/lang/String;II)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/HeapCharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12648,17 +12666,16 @@
 Ljava/nio/IntBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->asReadOnlyBuffer()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->clear()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->clear()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->compact()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->compare(II)I,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->compareTo(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->duplicate()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->equals(II)Z,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->flip()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->flip()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->get()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->get(I)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->get([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12669,23 +12686,23 @@
 Ljava/nio/IntBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->limit(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->limit(I)Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->mark()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->mark()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->mismatch(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/IntBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->position(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->position(I)Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->put(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put(II)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->put([III)Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->reset()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->reset()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/IntBuffer;->rewind()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/IntBuffer;->rewind()Ljava/nio/IntBuffer;,public-api,sdk
 Ljava/nio/IntBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->slice()Ljava/nio/IntBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/IntBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12703,17 +12720,16 @@
 Ljava/nio/LongBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->asReadOnlyBuffer()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->clear()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->clear()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->compact()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->compare(JJ)I,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->compareTo(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->duplicate()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->equals(JJ)Z,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->flip()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->flip()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->get()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->get(I)J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12724,23 +12740,23 @@
 Ljava/nio/LongBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->limit(I)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->limit(I)Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->mark()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->mark()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->mismatch(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/LongBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->put(IJ)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put(J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put(Ljava/nio/LongBuffer;)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->put([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,public-api,sdk
 Ljava/nio/LongBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->slice()Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12749,23 +12765,45 @@
 Ljava/nio/LongBuffer;->wrap([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/LongBuffer;->wrap([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;-><init>(IIII)V,lo-prio,max-target-o
-Ljava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;-><init>(IIII[BI)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->checkMapped()V,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->fd:Ljava/io/FileDescriptor;,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->force()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->force0(Ljava/io/FileDescriptor;JJ)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->isLoaded()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/MappedByteBuffer;->isLoaded0(JJI)Z,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->load0(JJ)V,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->mappingAddress(J)J,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->mappingLength(J)J,lo-prio,max-target-o
 Ljava/nio/MappedByteBuffer;->mappingOffset()J,lo-prio,max-target-o
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/MappedByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/ByteBuffer;,public-api,sdk
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;,public-api,sdk
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/ByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12790,7 +12828,7 @@
 Ljava/nio/ShortBuffer;->arrayOffset()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->asReadOnlyBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->clear()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->clear()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->compact()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->compare(SS)I,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
@@ -12798,9 +12836,8 @@
 Ljava/nio/ShortBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->duplicate()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->equals(SS)Z,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->flip()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->flip()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->get()S,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->get(I)S,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->get([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -12811,23 +12848,23 @@
 Ljava/nio/ShortBuffer;->isDirect()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->isReadOnly:Z,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->mark()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->mark()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->mismatch(Ljava/nio/ShortBuffer;)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->offset:I,lo-prio,max-target-o
 Ljava/nio/ShortBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->position(I)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->position(I)Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->put(IS)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put(Ljava/nio/ShortBuffer;)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put(S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->put([SII)Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->reset()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->reset()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/ShortBuffer;->rewind()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk
+Ljava/nio/ShortBuffer;->rewind()Ljava/nio/ShortBuffer;,public-api,sdk
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/ShortBuffer;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/ShortBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,sdk,system-api,test-api
@@ -13566,10 +13603,10 @@
 Ljava/nio/file/FileVisitor;->visitFile(Ljava/lang/Object;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/FileVisitor;->visitFileFailed(Ljava/lang/Object;Ljava/io/IOException;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda4;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$1;->accept(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$2;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/nio/file/Files$2;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -15589,6 +15626,7 @@
 Ljava/security/interfaces/EdECPrivateKey;->getBytes()Ljava/util/Optional;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/EdECPublicKey;->getPoint()Ljava/security/spec/EdECPoint;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAKey;->getModulus()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/security/interfaces/RSAKey;->getParams()Ljava/security/spec/AlgorithmParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getCrtCoefficient()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getPrimeExponentP()Ljava/math/BigInteger;,core-platform-api,public-api,sdk,system-api,test-api
@@ -15730,6 +15768,7 @@
 Ljava/security/spec/MGF1ParameterSpec;->SHA512:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->getDigestAlgorithm()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->mdName:Ljava/lang/String;,lo-prio,max-target-o
+Ljava/security/spec/MGF1ParameterSpec;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED25519:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED448:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,sdk,system-api,test-api
@@ -17766,9 +17805,6 @@
 Ljava/text/ParsePosition;->setErrorIndex(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/ParsePosition;->setIndex(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/ParsePosition;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/text/PatternEntry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/text/PatternEntry;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/text/PatternEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/RuleBasedCollator;-><init>(Landroid/icu/text/RuleBasedCollator;)V,lo-prio,max-target-o
 Ljava/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/text/RuleBasedCollator;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -18122,9 +18158,9 @@
 Ljava/time/InstantSource;->tick(Ljava/time/InstantSource;Ljava/time/Duration;)Ljava/time/InstantSource;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/InstantSource;->withZone(Ljava/time/ZoneId;)Ljava/time/Clock;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda1;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda3;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;-><init>(III)V,lo-prio,max-target-o
 Ljava/time/LocalDate;->DAYS_0000_TO_1970:J,lo-prio,max-target-o
 Ljava/time/LocalDate;->DAYS_PER_CYCLE:I,lo-prio,max-target-o
@@ -18159,7 +18195,7 @@
 Ljava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getDayOfYear()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getEra()Ljava/time/chrono/Era;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/LocalDate;->getEra()Ljava/time/chrono/IsoEra;,core-platform-api,public-api,sdk
+Ljava/time/LocalDate;->getEra()Ljava/time/chrono/IsoEra;,public-api,sdk
 Ljava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getMonth()Ljava/time/Month;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/LocalDate;->getMonthValue()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -18500,8 +18536,8 @@
 Ljava/time/MonthDay;->withMonth(I)Ljava/time/MonthDay;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/MonthDay;->writeExternal(Ljava/io/DataOutput;)V,lo-prio,max-target-o
 Ljava/time/MonthDay;->writeReplace()Ljava/lang/Object;,sdk
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/OffsetDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)V,max-target-r
 Ljava/time/OffsetDateTime;->MAX:Ljava/time/OffsetDateTime;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/OffsetDateTime;->MIN:Ljava/time/OffsetDateTime;,core-platform-api,public-api,sdk,system-api,test-api
@@ -19321,14 +19357,14 @@
 Ljava/time/chrono/Era;->isSupported(Ljava/time/temporal/TemporalField;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/Era;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/Era;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->INSTANCE:Ljava/time/chrono/HijrahChronology;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->KEY_ID:Ljava/lang/String;,lo-prio,max-target-o
 Ljava/time/chrono/HijrahChronology;->KEY_ISO_START:Ljava/lang/String;,lo-prio,max-target-o
@@ -23111,15 +23147,12 @@
 Ljava/util/Formatter$FormatSpecifier;->f:Ljava/util/Formatter$Flags;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->failConversion(CLjava/lang/Object;)V,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->failMismatch(Ljava/util/Formatter$Flags;C)V,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->flags(Ljava/lang/String;)Ljava/util/Formatter$Flags;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->hexDouble(DI)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->index()I,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->index:I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;JLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->precision:I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->print(DLjava/util/Locale;)V,lo-prio,max-target-o
@@ -23142,7 +23175,6 @@
 Ljava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter$FormatSpecifier;->trailingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;,lo-prio,max-target-o
-Ljava/util/Formatter$FormatSpecifier;->width(Ljava/lang/String;)I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifier;->width:I,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifierParser;->FLAGS:Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/Formatter$FormatSpecifierParser;->advance()C,lo-prio,max-target-o
@@ -23184,21 +23216,18 @@
 Ljava/util/Formatter;-><init>(Ljava/nio/charset/Charset;Ljava/util/Locale;Ljava/io/File;)V,lo-prio,max-target-o
 Ljava/util/Formatter;-><init>(Ljava/util/Locale;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V,lo-prio,max-target-o
-Ljava/util/Formatter;->MAX_FD_CHARS:I,lo-prio,max-target-o
 Ljava/util/Formatter;->a:Ljava/lang/Appendable;,lo-prio,max-target-o
 Ljava/util/Formatter;->close()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->ensureOpen()V,lo-prio,max-target-o
 Ljava/util/Formatter;->flush()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Formatter;->getZero(Ljava/util/Locale;)C,lo-prio,max-target-o
 Ljava/util/Formatter;->ioException()Ljava/io/IOException;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->l:Ljava/util/Locale;,lo-prio,max-target-o
 Ljava/util/Formatter;->lastException:Ljava/io/IOException;,lo-prio,max-target-o
 Ljava/util/Formatter;->locale()Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->nonNullAppendable(Ljava/lang/Appendable;)Ljava/lang/Appendable;,lo-prio,max-target-o
 Ljava/util/Formatter;->out()Ljava/lang/Appendable;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Formatter;->scaleUp:D,lo-prio,max-target-o
 Ljava/util/Formatter;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;,lo-prio,max-target-o
 Ljava/util/Formatter;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Formatter;->zero:C,lo-prio,max-target-o
@@ -23469,6 +23498,8 @@
 Ljava/util/HashSet;->serialVersionUID:J,sdk
 Ljava/util/HashSet;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/HashSet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/HashSet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/HashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
 Ljava/util/Hashtable$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->add(Ljava/util/Map$Entry;)Z,lo-prio,max-target-o
@@ -23713,6 +23744,8 @@
 Ljava/util/IdentityHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;,lo-prio,max-target-o
 Ljava/util/IdentityHashMap;->values()Ljava/util/Collection;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/IdentityHashMap;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
+Ljava/util/IllegalFormatArgumentIndexException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/IllegalFormatArgumentIndexException;->serialVersionUID:J,sdk
 Ljava/util/IllegalFormatCodePointException;-><init>(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;->c:I,lo-prio,max-target-o
 Ljava/util/IllegalFormatCodePointException;->getCodePoint()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -23961,6 +23994,8 @@
 Ljava/util/LinkedHashMap$LinkedKeySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValueIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->clear()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -23968,6 +24003,8 @@
 Ljava/util/LinkedHashMap$LinkedValues;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(IF)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -24245,7 +24282,6 @@
 Ljava/util/Locale;->JAPANESE:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->KOREA:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->KOREAN:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Locale;->LOCALECACHE:Ljava/util/Locale$Cache;,lo-prio,max-target-o
 Ljava/util/Locale;->PRC:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->PRIVATE_USE_EXTENSION:C,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Locale;->ROOT:Ljava/util/Locale;,core-platform-api,public-api,sdk,system-api,test-api
@@ -24353,6 +24389,7 @@
 Ljava/util/Map$Entry;->comparingByKey(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue()Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Map$Entry;->copyOf(Ljava/util/Map$Entry;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -24655,6 +24692,22 @@
 Ljava/util/PriorityQueue;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/PriorityQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/PriorityQueue;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
+Ljava/util/Properties$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->clear()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->containsAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->removeAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->retainAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->size()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties$EntrySet;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties$LineReader;->inByteBuf:[B,lo-prio,max-target-o
 Ljava/util/Properties$LineReader;->inCharBuf:[C,lo-prio,max-target-o
 Ljava/util/Properties$LineReader;->inLimit:I,lo-prio,max-target-o
@@ -24664,32 +24717,60 @@
 Ljava/util/Properties$LineReader;->readLine()I,lo-prio,max-target-o
 Ljava/util/Properties$LineReader;->reader:Ljava/io/Reader;,lo-prio,max-target-o
 Ljava/util/Properties;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;-><init>(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;-><init>(Ljava/util/Properties;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->clear()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->clone()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->defaults:Ljava/util/Properties;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Properties;->enumerate(Ljava/util/Hashtable;)V,lo-prio,max-target-o
-Ljava/util/Properties;->enumerateStringProperties(Ljava/util/Hashtable;)V,lo-prio,max-target-o
+Ljava/util/Properties;->elements()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->entrySet()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->forEach(Ljava/util/function/BiConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->get(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Properties;->hexDigit:[C,lo-prio,max-target-o
+Ljava/util/Properties;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->keySet()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintStream;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintWriter;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/InputStream;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/Reader;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->load0(Ljava/util/Properties$LineReader;)V,lo-prio,max-target-o
-Ljava/util/Properties;->loadConvert([CII[C)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/Properties;->loadFromXML(Ljava/io/InputStream;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->propertyNames()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->rehash()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->replaceAll(Ljava/util/function/BiFunction;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->save(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->saveConvert(Ljava/lang/String;ZZ)Ljava/lang/String;,unsupported
 Ljava/util/Properties;->serialVersionUID:J,sdk
 Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->size()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/Writer;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V,lo-prio,max-target-o
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/nio/charset/Charset;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->stringPropertyNames()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Properties;->toHex(I)C,lo-prio,max-target-o
+Ljava/util/Properties;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Properties;->values()Ljava/util/Collection;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Properties;->writeComments(Ljava/io/BufferedWriter;Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/util/PropertyPermission;-><init>(Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/PropertyResourceBundle;-><init>(Ljava/io/InputStream;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -25074,21 +25155,21 @@
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceConfigurationError;->serialVersionUID:J,sdk
-Ljava/util/ServiceLoader$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$1;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$1;->remove()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->configs:Ljava/util/Enumeration;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->hasNextService()Z,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->loader:Ljava/lang/ClassLoader;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->nextName:Ljava/lang/String;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->nextService()Ljava/lang/Object;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->pending:Ljava/util/Iterator;,lo-prio,max-target-o
-Ljava/util/ServiceLoader$LazyIterator;->remove()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->service:Ljava/lang/Class;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;-><init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->PREFIX:Ljava/lang/String;,lo-prio,max-target-o
+Ljava/util/ServiceLoader$1;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$2;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$2;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->type()Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->type()Ljava/lang/Class;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->characteristics()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->estimateSize()J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;)V,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/net/URL;ILjava/lang/String;)V,lo-prio,max-target-o
@@ -25099,12 +25180,9 @@
 Ljava/util/ServiceLoader;->loadFromSystemProperty(Ljava/lang/Class;)Ljava/lang/Object;,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->loadInstalled(Ljava/lang/Class;)Ljava/util/ServiceLoader;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->loader:Ljava/lang/ClassLoader;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->lookupIterator:Ljava/util/ServiceLoader$LazyIterator;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->parse(Ljava/lang/Class;Ljava/net/URL;)Ljava/util/Iterator;,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->parseLine(Ljava/lang/Class;Ljava/net/URL;Ljava/io/BufferedReader;ILjava/util/List;)I,lo-prio,max-target-o
-Ljava/util/ServiceLoader;->providers:Ljava/util/LinkedHashMap;,lo-prio,max-target-o
 Ljava/util/ServiceLoader;->reload()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->service:Ljava/lang/Class;,lo-prio,max-target-o
+Ljava/util/ServiceLoader;->stream()Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/ServiceLoader;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Set;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Set;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -25715,7 +25793,7 @@
 Ljava/util/TimeZone;->setRawOffset(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TimeZone;->toZoneId()Ljava/time/ZoneId;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TimeZone;->useDaylightTime()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/Timer$1;->finalize()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/Timer$ThreadReaper;->run()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;Z)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -25733,7 +25811,6 @@
 Ljava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;Ljava/util/Date;J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/Timer;->serialNumber()I,lo-prio,max-target-o
 Ljava/util/Timer;->thread:Ljava/util/TimerThread;,lo-prio,max-target-o
-Ljava/util/Timer;->threadReaper:Ljava/lang/Object;,lo-prio,max-target-o
 Ljava/util/TimerTask;-><init>()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TimerTask;->CANCELLED:I,lo-prio,max-target-o
 Ljava/util/TimerTask;->EXECUTED:I,lo-prio,max-target-o
@@ -25890,6 +25967,9 @@
 Ljava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry;,lo-prio,max-target-o
 Ljava/util/TreeMap$NavigableSubMap;->ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->ceilingKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->descendingKeyIterator()Ljava/util/Iterator;,lo-prio,max-target-o
 Ljava/util/TreeMap$NavigableSubMap;->descendingKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
@@ -25920,11 +26000,13 @@
 Ljava/util/TreeMap$NavigableSubMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->m:Ljava/util/TreeMap;,lo-prio,max-target-o
+Ljava/util/TreeMap$NavigableSubMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->navigableKeySetView:Ljava/util/TreeMap$KeySet;,lo-prio,max-target-o
 Ljava/util/TreeMap$NavigableSubMap;->pollFirstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->pollLastEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->serialVersionUID:J,sdk
 Ljava/util/TreeMap$NavigableSubMap;->size()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -26011,6 +26093,9 @@
 Ljava/util/TreeMap;->comparator()Ljava/util/Comparator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->comparator:Ljava/util/Comparator;,lo-prio,max-target-o
 Ljava/util/TreeMap;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,lo-prio,max-target-o
+Ljava/util/TreeMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->computeRedLevel(I)I,lo-prio,max-target-o
 Ljava/util/TreeMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -26054,6 +26139,7 @@
 Ljava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;,lo-prio,max-target-o
 Ljava/util/TreeMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->modCount:I,lo-prio,max-target-o
 Ljava/util/TreeMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->navigableKeySet:Ljava/util/TreeMap$KeySet;,lo-prio,max-target-o
@@ -26063,6 +26149,7 @@
 Ljava/util/TreeMap;->predecessor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;,lo-prio,max-target-o
 Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/TreeMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/TreeMap;->readObject(Ljava/io/ObjectInputStream;)V,sdk
 Ljava/util/TreeMap;->readTreeSet(ILjava/io/ObjectInputStream;Ljava/lang/Object;)V,lo-prio,max-target-o
 Ljava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -27324,7 +27411,7 @@
 Ljava/util/concurrent/ConcurrentHashMap;->initTable()[Ljava/util/concurrent/ConcurrentHashMap$Node;,lo-prio,max-target-o
 Ljava/util/concurrent/ConcurrentHashMap;->isEmpty()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api,public-api,sdk
+Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,public-api,sdk
 Ljava/util/concurrent/ConcurrentHashMap;->keySet(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet:Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,lo-prio,max-target-o
 Ljava/util/concurrent/ConcurrentHashMap;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,sdk,system-api,test-api
@@ -27878,8 +27965,8 @@
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/SortedSet;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->run()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;-><init>([Ljava/lang/Object;I)V,lo-prio,max-target-o
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->add(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31406,8 +31493,8 @@
 Ljava/util/regex/PatternSyntaxException;->pattern:Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/regex/PatternSyntaxException;->serialVersionUID:J,sdk
 Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V,lo-prio,max-target-o
@@ -31494,101 +31581,105 @@
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collector;->supplier()Ljava/util/function/Supplier;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda24;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda25;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda27;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda54;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda55;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda56;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda64;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda65;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda68;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda69;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda71;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda76;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda78;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda94;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda95;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda96;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda97;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda98;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$1OptionalBox;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/Set;)V,lo-prio,max-target-o
 Ljava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;Ljava/util/Set;)V,lo-prio,max-target-o
@@ -31649,6 +31740,7 @@
 Ljava/util/stream/Collectors;->summingDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->summingInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->summingLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Collectors;->teeing(Ljava/util/stream/Collector;Ljava/util/stream/Collector;Ljava/util/function/BiFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->toCollection(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;)Ljava/util/stream/Collector;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31668,30 +31760,29 @@
 Ljava/util/stream/DistinctOps$1$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DistinctOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DistinctOps$1$2;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->applyAsLong(D)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->applyAsDouble(DD)D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$1$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$2$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$3$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$4$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$5$1$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$5$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoublePipeline$7$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$6$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$8$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline$9$1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline$Head;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31721,6 +31812,7 @@
 Ljava/util/stream/DoublePipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjDoubleConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31735,6 +31827,7 @@
 Ljava/util/stream/DoublePipeline;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/DoublePipeline;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31752,14 +31845,22 @@
 Ljava/util/stream/DoublePipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->sum()D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoublePipeline;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->toArray()[D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoublePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
-Ljava/util/stream/DoubleStream$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/DoubleStream$1;->nextDouble()D,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda0;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->add(D)Ljava/util/stream/DoubleStream$Builder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->build()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;->accept(DLjava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->allMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->anyMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->average()Ljava/util/OptionalDouble;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31769,6 +31870,7 @@
 Ljava/util/stream/DoubleStream;->concat(Ljava/util/stream/DoubleStream;Ljava/util/stream/DoubleStream;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->empty()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31777,11 +31879,13 @@
 Ljava/util/stream/DoubleStream;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->forEachOrdered(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->generate(Ljava/util/function/DoubleSupplier;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoublePredicate;Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/PrimitiveIterator$OfDouble;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31803,21 +31907,22 @@
 Ljava/util/stream/DoubleStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->sum()D,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/DoubleStream;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/DoubleStream;->toArray()[D,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindSink;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/FindOps$FindTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31830,30 +31935,29 @@
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->compute()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachTask;->compute()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->applyAsLong(I)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda13;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->applyAsInt(II)I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$1$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$10$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$11$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$2$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$3$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$4$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$5$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$6$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$7$1$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$7$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntPipeline$9$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline$8$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline$Head;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -31885,6 +31989,7 @@
 Ljava/util/stream/IntPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjIntConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31899,6 +32004,7 @@
 Ljava/util/stream/IntPipeline;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/IntPipeline;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31916,14 +32022,22 @@
 Ljava/util/stream/IntPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->sum()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntPipeline;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->toArray()[I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
-Ljava/util/stream/IntStream$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/IntStream$1;->nextInt()I,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->add(I)Ljava/util/stream/IntStream$Builder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->build()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream$IntMapMultiConsumer;->accept(ILjava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->allMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->anyMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31935,6 +32049,7 @@
 Ljava/util/stream/IntStream;->concat(Ljava/util/stream/IntStream;Ljava/util/stream/IntStream;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->empty()Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31943,11 +32058,13 @@
 Ljava/util/stream/IntStream;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->forEachOrdered(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->generate(Ljava/util/function/IntSupplier;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntPredicate;Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/PrimitiveIterator$OfInt;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -31971,29 +32088,29 @@
 Ljava/util/stream/IntStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->sum()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/IntStream;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/IntStream;->toArray()[I,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->applyAsLong(J)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda10;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->applyAsLong(JJ)J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$1$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$10$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$2$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$3$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$4$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$5$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$6$1$$ExternalSyntheticLambda0;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$6$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongPipeline$8$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline$7$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$9$1;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V,lo-prio,max-target-o
 Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V,lo-prio,max-target-o
@@ -32025,6 +32142,7 @@
 Ljava/util/stream/LongPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjLongConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/LongPipeline;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32039,6 +32157,7 @@
 Ljava/util/stream/LongPipeline;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/LongPipeline;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32056,14 +32175,22 @@
 Ljava/util/stream/LongPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->sum()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongPipeline;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->toArray()[J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
-Ljava/util/stream/LongStream$1;->hasNext()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/LongStream$1;->nextLong()J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->add(J)Ljava/util/stream/LongStream$Builder;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->build()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream$LongMapMultiConsumer;->accept(JLjava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->allMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->anyMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32074,6 +32201,7 @@
 Ljava/util/stream/LongStream;->concat(Ljava/util/stream/LongStream;Ljava/util/stream/LongStream;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->empty()Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32082,11 +32210,13 @@
 Ljava/util/stream/LongStream;->forEach(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->forEachOrdered(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->generate(Ljava/util/function/LongSupplier;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongPredicate;Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/PrimitiveIterator$OfLong;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32110,6 +32240,7 @@
 Ljava/util/stream/LongStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->sum()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/LongStream;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/LongStream;->toArray()[J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32247,12 +32378,20 @@
 Ljava/util/stream/ReduceOps$9ReducingSink;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReduceOps$9ReducingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReduceOps$Box;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfDouble;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfInt;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfLong;->accept(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfRef;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReduceOps$ReduceTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda2;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$10$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$11$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$12$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$13$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$14$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline$15$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$2$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$3$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline$4$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -32281,6 +32420,7 @@
 Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->count()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->dropWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;,lo-prio,max-target-o
 Ljava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32297,6 +32437,10 @@
 Ljava/util/stream/ReferencePipeline;->limit(J)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;,lo-prio,max-target-o
 Ljava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMulti(Ljava/util/function/BiConsumer;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToDouble(Ljava/util/function/BiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToInt(Ljava/util/function/BiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToLong(Ljava/util/function/BiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,sdk,system-api,test-api
@@ -32310,8 +32454,10 @@
 Ljava/util/stream/ReferencePipeline;->skip(J)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted()Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->takeWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->toList()Ljava/util/List;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;,lo-prio,max-target-o
 Ljava/util/stream/Sink$ChainedDouble;-><init>(Ljava/util/stream/Sink;)V,lo-prio,max-target-o
@@ -32349,7 +32495,6 @@
 Ljava/util/stream/Sink;->begin(J)V,lo-prio,max-target-o
 Ljava/util/stream/Sink;->cancellationRequested()Z,lo-prio,max-target-o
 Ljava/util/stream/Sink;->end()V,lo-prio,max-target-o
-Ljava/util/stream/SliceOps$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SliceOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SliceOps$2$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SliceOps$2$1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
@@ -32471,8 +32616,8 @@
 Ljava/util/stream/SpinedBuffer;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/SpinedBuffer;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->run()V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/Stream$1;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -32637,8 +32782,8 @@
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->accept(D)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -32666,8 +32811,8 @@
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->characteristics()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->estimateSize()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -33136,11 +33281,9 @@
 Ljava/util/zip/ZipCoder;->getBytes(Ljava/lang/String;)[B,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->getBytesUTF8(Ljava/lang/String;)[B,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->isUTF8()Z,lo-prio,max-target-o
-Ljava/util/zip/ZipCoder;->isUTF8:Z,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->toString([B)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;,lo-prio,max-target-o
 Ljava/util/zip/ZipCoder;->toStringUTF8([BI)Ljava/lang/String;,lo-prio,max-target-o
-Ljava/util/zip/ZipCoder;->utf8:Ljava/util/zip/ZipCoder;,lo-prio,max-target-o
 Ljava/util/zip/ZipConstants;->CENATT:I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipConstants;->CENATX:I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipConstants;->CENCOM:I,core-platform-api,public-api,sdk,system-api,test-api
@@ -33210,6 +33353,7 @@
 Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->getSize()J,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->getTime()J,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/zip/ZipEntry;->getTimeLocal()Ljava/time/LocalDateTime;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->isDirectory()Z,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->method:I,max-target-r
@@ -33220,12 +33364,12 @@
 Ljava/util/zip/ZipEntry;->setCrc(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setCreationTime(Ljava/nio/file/attribute/FileTime;)Ljava/util/zip/ZipEntry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setExtra([B)V,core-platform-api,public-api,sdk,system-api,test-api
-Ljava/util/zip/ZipEntry;->setExtra0([BZ)V,lo-prio,max-target-o
 Ljava/util/zip/ZipEntry;->setLastAccessTime(Ljava/nio/file/attribute/FileTime;)Ljava/util/zip/ZipEntry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setLastModifiedTime(Ljava/nio/file/attribute/FileTime;)Ljava/util/zip/ZipEntry;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setMethod(I)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setSize(J)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->setTime(J)V,core-platform-api,public-api,sdk,system-api,test-api
+Ljava/util/zip/ZipEntry;->setTimeLocal(Ljava/time/LocalDateTime;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->size:J,lo-prio,max-target-o
 Ljava/util/zip/ZipEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Ljava/util/zip/ZipEntry;->xdostime:J,lo-prio,max-target-o
@@ -33612,6 +33756,7 @@
 Ljavax/crypto/KeyAgreement;->generateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->generateSecret([BI)I,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getAlgorithm()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
+Ljavax/crypto/KeyAgreement;->getCurrentSpi()Ljavax/crypto/KeyAgreementSpi;,blocked,core-platform-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,sdk,system-api,test-api
@@ -34672,7 +34817,6 @@
 Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace(Ljava/io/PrintStream;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace(Ljava/io/PrintWriter;)V,core-platform-api,public-api,sdk,system-api,test-api
 Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace0(Ljava/io/PrintWriter;)V,lo-prio,max-target-o
-Ljavax/xml/datatype/DatatypeConfigurationException;->readObject(Ljava/io/ObjectInputStream;)V,sdk
 Ljavax/xml/datatype/DatatypeConfigurationException;->serialVersionUID:J,sdk
 Ljavax/xml/datatype/DatatypeConstants$Field;-><init>(Ljava/lang/String;I)V,lo-prio,max-target-o
 Ljavax/xml/datatype/DatatypeConstants$Field;->getId()I,core-platform-api,public-api,sdk,system-api,test-api
@@ -46754,7 +46898,6 @@
 Lsun/misc/MessageUtils;-><init>()V,unsupported
 Lsun/misc/MetaIndex;->forJar(Ljava/io/File;)Lsun/misc/MetaIndex;,unsupported
 Lsun/misc/MetaIndex;->registerDirectory(Ljava/io/File;)V,unsupported
-Lsun/misc/REException;->serialVersionUID:J,sdk
 Lsun/misc/Resource;->cachedInputStream()Ljava/io/InputStream;,lo-prio,max-target-o
 Lsun/misc/Resource;->cis:Ljava/io/InputStream;,lo-prio,max-target-o
 Lsun/misc/URLClassPath$1;->hasMoreElements()Z,core-platform-api,public-api,sdk,system-api,test-api
@@ -48752,6 +48895,10 @@
 Lsun/security/x509/X509Key;->toString()Ljava/lang/String;,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/security/x509/X509Key;->unusedBits:I,unsupported
 Lsun/security/x509/X509Key;->writeObject(Ljava/io/ObjectOutputStream;)V,sdk
+Lsun/util/PropertyResourceBundleCharset$PropertiesFileDecoder;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;,core-platform-api,public-api,sdk,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->contains(Ljava/nio/charset/Charset;)Z,core-platform-api,public-api,sdk,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newDecoder()Ljava/nio/charset/CharsetDecoder;,core-platform-api,public-api,sdk,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newEncoder()Ljava/nio/charset/CharsetEncoder;,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->hasMoreElements()Z,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/calendar/AbstractCalendar;->getDayOfWeekDateOnOrBefore(JI)J,max-target-r
@@ -48817,7 +48964,6 @@
 Lsun/util/locale/BaseLocale$Key;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;,lo-prio,max-target-o
 Lsun/util/locale/BaseLocale$Key;->normalized:Z,lo-prio,max-target-o
-Lsun/util/locale/BaseLocale;->CACHE:Lsun/util/locale/BaseLocale$Cache;,lo-prio,max-target-o
 Lsun/util/locale/BaseLocale;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,sdk,system-api,test-api
 Lsun/util/locale/BaseLocale;->hash:I,lo-prio,max-target-o
 Lsun/util/locale/BaseLocale;->hashCode()I,core-platform-api,public-api,sdk,system-api,test-api
diff --git a/go/current/sdk/hiddenapi/filtered-stub-flags.csv b/go/current/sdk/hiddenapi/filtered-stub-flags.csv
index 6c335af..7606af3 100644
--- a/go/current/sdk/hiddenapi/filtered-stub-flags.csv
+++ b/go/current/sdk/hiddenapi/filtered-stub-flags.csv
@@ -369,6 +369,7 @@
 Landroid/system/OsConstants;->IPV6_MULTICAST_HOPS:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_IF:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_MULTICAST_LOOP:I,core-platform-api,public-api,system-api,test-api
+Landroid/system/OsConstants;->IPV6_PKTINFO:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVDSTOPTS:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPLIMIT:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->IPV6_RECVHOPOPTS:I,core-platform-api,public-api,system-api,test-api
@@ -430,6 +431,7 @@
 Landroid/system/OsConstants;->O_SYNC:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->O_TRUNC:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->O_WRONLY:I,core-platform-api,public-api,system-api,test-api
+Landroid/system/OsConstants;->PACKET_IGNORE_OUTGOING:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->POLLERR:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->POLLHUP:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->POLLIN:I,core-platform-api,public-api,system-api,test-api
@@ -507,6 +509,7 @@
 Landroid/system/OsConstants;->SOCK_RAW:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOCK_SEQPACKET:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOCK_STREAM:I,core-platform-api,public-api,system-api,test-api
+Landroid/system/OsConstants;->SOL_PACKET:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOL_SOCKET:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SOL_UDP:I,core-platform-api,public-api,system-api,test-api
 Landroid/system/OsConstants;->SO_BINDTODEVICE:I,core-platform-api,public-api,system-api,test-api
@@ -3420,9 +3423,9 @@
 Ljava/io/ObjectOutputStream;->writeStreamHeader()V,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectOutputStream;->writeUTF(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectOutputStream;->writeUnshared(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectStreamClass$1;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectStreamClass$2;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/io/ObjectStreamClass$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
@@ -3965,6 +3968,7 @@
 Ljava/lang/CharSequence;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->codePoints()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->compare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I,core-platform-api,public-api,system-api,test-api
+Ljava/lang/CharSequence;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->length()I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/CharSequence;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -4526,6 +4530,7 @@
 Ljava/lang/Character;->codePointBefore([CII)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->codePointCount([CII)I,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Character;->codePointOf(Ljava/lang/String;)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->compare(CC)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Character;)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
@@ -4598,11 +4603,14 @@
 Ljava/lang/Character;->toLowerCase(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toString(C)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Character;->toString(I)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toTitleCase(C)C,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toTitleCase(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toUpperCase(C)C,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->toUpperCase(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Class$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Class;->arrayType()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Class;->arrayType()Ljava/lang/invoke/TypeDescriptor$OfField;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
@@ -4684,6 +4692,9 @@
 Ljava/lang/ClassCircularityError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassFormatError;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassFormatError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/ClassLoader$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassLoader;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassLoader;-><init>(Ljava/lang/ClassLoader;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassLoader;->clearAssertionStatus()V,core-platform-api,public-api,system-api,test-api
@@ -4719,7 +4730,6 @@
 Ljava/lang/ClassNotFoundException;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,system-api,test-api
-Ljava/lang/ClassNotFoundException;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassNotFoundException;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassValue;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ClassValue;->computeValue(Ljava/lang/Class;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -4733,6 +4743,8 @@
 Ljava/lang/Compiler;->compileClasses(Ljava/lang/String;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Compiler;->disable()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Compiler;->enable()V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/CompoundEnumeration;->hasMoreElements()Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/CompoundEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Daemons$Daemon;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Deprecated;->forRemoval()Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Deprecated;->since()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -4778,6 +4790,7 @@
 Ljava/lang/Double;->toString(D)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/Enum$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Enum$EnumDesc;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Enum;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -4807,7 +4820,6 @@
 Ljava/lang/ExceptionInInitializerError;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;-><init>(Ljava/lang/Throwable;)V,core-platform-api,public-api,system-api,test-api
-Ljava/lang/ExceptionInInitializerError;->getCause()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/ExceptionInInitializerError;->getException()Ljava/lang/Throwable;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Float;-><init>(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/Float;-><init>(F)V,core-platform-api,public-api,system-api,test-api
@@ -5806,8 +5818,17 @@
 Ljava/lang/StringUTF16$LinesSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/StringUTF16$LinesSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/SuppressWarnings;->value()[Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System;->clearProperty(Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/System;->console()Ljava/io/Console;,core-platform-api,public-api,system-api,test-api
@@ -6144,32 +6165,32 @@
 Ljava/lang/invoke/MethodHandleInfo;->referenceKindToString(I)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->reflectAs(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandleInfo;->toString(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda11;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda21;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda22;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda24;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;->PACKAGE:I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;->PRIVATE:I,core-platform-api,public-api,system-api,test-api
 Ljava/lang/invoke/MethodHandles$Lookup;->PROTECTED:I,core-platform-api,public-api,system-api,test-api
@@ -7739,7 +7760,6 @@
 Ljava/nio/ByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->clear()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->compareTo(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -7747,7 +7767,6 @@
 Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->flip()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->get()B,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->get(I)B,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7768,14 +7787,11 @@
 Ljava/nio/ByteBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->mark()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->mismatch(Ljava/nio/ByteBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->position(I)Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7794,9 +7810,7 @@
 Ljava/nio/ByteBuffer;->putShort(IS)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->reset()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ByteBuffer;->rewind()Ljava/nio/ByteBuffer;,core-platform-api
 Ljava/nio/ByteBuffer;->setAccessible(Z)V,core-platform-api
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7928,7 +7942,6 @@
 Ljava/nio/CharBuffer;->charAt(I)C,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->chars()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->clear()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->compact()Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->compareTo(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -7936,7 +7949,6 @@
 Ljava/nio/CharBuffer;->duplicate()Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->flip()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->get()C,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->get(I)C,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->get([C)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7947,13 +7959,10 @@
 Ljava/nio/CharBuffer;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->length()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->limit(I)Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->mark()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->mismatch(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->position(I)Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->put(Ljava/lang/String;)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
@@ -7963,9 +7972,7 @@
 Ljava/nio/CharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->read(Ljava/nio/CharBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->reset()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/CharBuffer;->rewind()Ljava/nio/CharBuffer;,core-platform-api
 Ljava/nio/CharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->slice()Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/CharBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8045,7 +8052,6 @@
 Ljava/nio/DoubleBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->asReadOnlyBuffer()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->compact()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->compareTo(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8053,7 +8059,6 @@
 Ljava/nio/DoubleBuffer;->duplicate()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->get()D,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->get(I)D,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->get([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8062,22 +8067,17 @@
 Ljava/nio/DoubleBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->mark()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->mismatch(Ljava/nio/DoubleBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->position(I)Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->put(D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(ID)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put(Ljava/nio/DoubleBuffer;)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([D)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->put([DII)Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->reset()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/DoubleBuffer;->rewind()Ljava/nio/DoubleBuffer;,core-platform-api
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice()Ljava/nio/DoubleBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/DoubleBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8091,7 +8091,6 @@
 Ljava/nio/FloatBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->asReadOnlyBuffer()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->clear()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->compact()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->compareTo(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8099,7 +8098,6 @@
 Ljava/nio/FloatBuffer;->duplicate()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->flip()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->get()F,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->get(I)F,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->get([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8108,22 +8106,17 @@
 Ljava/nio/FloatBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->limit(I)Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->mark()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->mismatch(Ljava/nio/FloatBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->position(I)Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->put(F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put(IF)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put(Ljava/nio/FloatBuffer;)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->put([FII)Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->reset()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/FloatBuffer;->rewind()Ljava/nio/FloatBuffer;,core-platform-api
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->slice()Ljava/nio/FloatBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/FloatBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8160,6 +8153,7 @@
 Ljava/nio/HeapByteBuffer;->isReadOnly()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(B)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/HeapByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapByteBuffer;->putChar(IC)Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8189,6 +8183,7 @@
 Ljava/nio/HeapCharBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(C)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(IC)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/HeapCharBuffer;->put(Ljava/lang/String;II)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->put([CII)Ljava/nio/CharBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/HeapCharBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8293,7 +8288,6 @@
 Ljava/nio/IntBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->asReadOnlyBuffer()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->clear()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->compact()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->compareTo(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8301,7 +8295,6 @@
 Ljava/nio/IntBuffer;->duplicate()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->flip()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->get()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->get(I)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->get([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8310,22 +8303,17 @@
 Ljava/nio/IntBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->limit(I)Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->mark()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->mismatch(Ljava/nio/IntBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->position(I)Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->put(I)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put(II)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put([I)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->put([III)Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->reset()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/IntBuffer;->rewind()Ljava/nio/IntBuffer;,core-platform-api
 Ljava/nio/IntBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->slice()Ljava/nio/IntBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/IntBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8340,7 +8328,6 @@
 Ljava/nio/LongBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->asReadOnlyBuffer()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->clear()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->compact()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->compareTo(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8348,7 +8335,6 @@
 Ljava/nio/LongBuffer;->duplicate()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->flip()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->get()J,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->get(I)J,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8357,22 +8343,17 @@
 Ljava/nio/LongBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->limit(I)Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->mark()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->mismatch(Ljava/nio/LongBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->put(IJ)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put(J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put(Ljava/nio/LongBuffer;)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->put([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;,core-platform-api
 Ljava/nio/LongBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->slice()Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8380,11 +8361,19 @@
 Ljava/nio/LongBuffer;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->wrap([J)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/LongBuffer;->wrap([JII)Ljava/nio/LongBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->compact()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->force()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->isLoaded()Z,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/ByteBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/MappedByteBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -8402,7 +8391,6 @@
 Ljava/nio/ShortBuffer;->arrayOffset()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->asReadOnlyBuffer()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->clear()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->clear()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->compact()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->compareTo(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->compareTo(Ljava/nio/ShortBuffer;)I,core-platform-api,public-api,system-api,test-api
@@ -8410,7 +8398,6 @@
 Ljava/nio/ShortBuffer;->duplicate()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->flip()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->flip()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->get()S,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->get(I)S,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->get([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
@@ -8419,22 +8406,17 @@
 Ljava/nio/ShortBuffer;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->isDirect()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->limit(I)Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->mark()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->mark()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->mismatch(Ljava/nio/ShortBuffer;)I,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->order()Ljava/nio/ByteOrder;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->position(I)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->position(I)Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->put(IS)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put(Ljava/nio/ShortBuffer;)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put(S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put([S)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->put([SII)Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->reset()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->reset()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->rewind()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/ShortBuffer;->rewind()Ljava/nio/ShortBuffer;,core-platform-api
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->slice()Ljava/nio/ShortBuffer;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/ShortBuffer;->slice(II)Ljava/nio/Buffer;,core-platform-api,public-api,system-api,test-api
@@ -9000,10 +8982,10 @@
 Ljava/nio/file/FileVisitor;->visitFile(Ljava/lang/Object;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/FileVisitor;->visitFileFailed(Ljava/lang/Object;Ljava/io/IOException;)Ljava/nio/file/FileVisitResult;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/nio/file/Files$$ExternalSyntheticLambda4;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/nio/file/Files$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$1;->accept(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$2;->hasNext()Z,core-platform-api,public-api,system-api,test-api
 Ljava/nio/file/Files$2;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -10450,6 +10432,7 @@
 Ljava/security/interfaces/EdECPrivateKey;->getBytes()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/EdECPublicKey;->getPoint()Ljava/security/spec/EdECPoint;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAKey;->getModulus()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
+Ljava/security/interfaces/RSAKey;->getParams()Ljava/security/spec/AlgorithmParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getCrtCoefficient()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;,core-platform-api,public-api,system-api,test-api
 Ljava/security/interfaces/RSAMultiPrimePrivateCrtKey;->getPrimeExponentP()Ljava/math/BigInteger;,core-platform-api,public-api,system-api,test-api
@@ -10553,6 +10536,7 @@
 Ljava/security/spec/MGF1ParameterSpec;->SHA384:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->SHA512:Ljava/security/spec/MGF1ParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/MGF1ParameterSpec;->getDigestAlgorithm()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/security/spec/MGF1ParameterSpec;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED25519:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,system-api,test-api
 Ljava/security/spec/NamedParameterSpec;->ED448:Ljava/security/spec/NamedParameterSpec;,core-platform-api,public-api,system-api,test-api
@@ -12232,9 +12216,6 @@
 Ljava/text/ParsePosition;->setErrorIndex(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/text/ParsePosition;->setIndex(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/text/ParsePosition;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
-Ljava/text/PatternEntry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/text/PatternEntry;->hashCode()I,core-platform-api,public-api,system-api,test-api
-Ljava/text/PatternEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/text/RuleBasedCollator;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I,core-platform-api,public-api,system-api,test-api
@@ -12477,9 +12458,9 @@
 Ljava/time/InstantSource;->tick(Ljava/time/InstantSource;Ljava/time/Duration;)Ljava/time/InstantSource;,core-platform-api,public-api,system-api,test-api
 Ljava/time/InstantSource;->withZone(Ljava/time/ZoneId;)Ljava/time/Clock;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda1;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/LocalDate$$ExternalSyntheticLambda3;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/LocalDate$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->EPOCH:Ljava/time/LocalDate;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->MAX:Ljava/time/LocalDate;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->MIN:Ljava/time/LocalDate;,core-platform-api,public-api,system-api,test-api
@@ -12506,7 +12487,6 @@
 Ljava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getDayOfYear()I,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getEra()Ljava/time/chrono/Era;,core-platform-api,public-api,system-api,test-api
-Ljava/time/LocalDate;->getEra()Ljava/time/chrono/IsoEra;,core-platform-api
 Ljava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getMonth()Ljava/time/Month;,core-platform-api,public-api,system-api,test-api
 Ljava/time/LocalDate;->getMonthValue()I,core-platform-api,public-api,system-api,test-api
@@ -12791,8 +12771,8 @@
 Ljava/time/MonthDay;->with(Ljava/time/Month;)Ljava/time/MonthDay;,core-platform-api,public-api,system-api,test-api
 Ljava/time/MonthDay;->withDayOfMonth(I)Ljava/time/MonthDay;,core-platform-api,public-api,system-api,test-api
 Ljava/time/MonthDay;->withMonth(I)Ljava/time/MonthDay;,core-platform-api,public-api,system-api,test-api
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
+Ljava/time/OffsetDateTime$$ExternalSyntheticLambda1;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/OffsetDateTime;->MAX:Ljava/time/OffsetDateTime;,core-platform-api,public-api,system-api,test-api
 Ljava/time/OffsetDateTime;->MIN:Ljava/time/OffsetDateTime;,core-platform-api,public-api,system-api,test-api
 Ljava/time/OffsetDateTime;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;,core-platform-api,public-api,system-api,test-api
@@ -13472,14 +13452,14 @@
 Ljava/time/chrono/Era;->isSupported(Ljava/time/temporal/TemporalField;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/Era;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/Era;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda4;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda5;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda6;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/time/chrono/HijrahChronology$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->INSTANCE:Ljava/time/chrono/HijrahChronology;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->date(III)Ljava/time/chrono/ChronoLocalDate;,core-platform-api,public-api,system-api,test-api
 Ljava/time/chrono/HijrahChronology;->date(III)Ljava/time/chrono/HijrahDate;,core-platform-api,public-api,system-api,test-api
@@ -16134,6 +16114,8 @@
 Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/HashSet;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/HashSet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/HashSet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/HashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->clear()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Hashtable$EntrySet;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -16304,6 +16286,7 @@
 Ljava/util/IdentityHashMap;->replaceAll(Ljava/util/function/BiFunction;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/IdentityHashMap;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/IdentityHashMap;->values()Ljava/util/Collection;,core-platform-api,public-api,system-api,test-api
+Ljava/util/IllegalFormatArgumentIndexException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;-><init>(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;->getCodePoint()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/IllegalFormatCodePointException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
@@ -16507,6 +16490,8 @@
 Ljava/util/LinkedHashMap$LinkedKeySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedKeySet;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedKeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValueIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->clear()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -16514,6 +16499,8 @@
 Ljava/util/LinkedHashMap$LinkedValues;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap$LinkedValues;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/LinkedHashMap$LinkedValues;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/LinkedHashMap;-><init>(IF)V,core-platform-api,public-api,system-api,test-api
@@ -16785,6 +16772,7 @@
 Ljava/util/Map$Entry;->comparingByKey(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue()Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->comparingByValue(Ljava/util/Comparator;)Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Map$Entry;->copyOf(Ljava/util/Map$Entry;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -17030,24 +17018,73 @@
 Ljava/util/PriorityQueue;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/PriorityQueue;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/PriorityQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->clear()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->containsAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->hashCode()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->remove(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->removeAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->retainAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->size()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties$EntrySet;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;-><init>()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;-><init>(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;-><init>(Ljava/util/Properties;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->clear()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->contains(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->defaults:Ljava/util/Properties;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->elements()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->entrySet()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->forEach(Ljava/util/function/BiConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->get(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->hashCode()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->keySet()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintStream;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->list(Ljava/io/PrintWriter;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/InputStream;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->load(Ljava/io/Reader;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->loadFromXML(Ljava/io/InputStream;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->propertyNames()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->rehash()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->replaceAll(Ljava/util/function/BiFunction;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->save(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->store(Ljava/io/Writer;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/nio/charset/Charset;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Properties;->stringPropertyNames()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljava/util/Properties;->values()Ljava/util/Collection;,core-platform-api,public-api,system-api,test-api
 Ljava/util/PropertyPermission;-><init>(Ljava/lang/String;Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/PropertyResourceBundle;-><init>(Ljava/io/InputStream;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/PropertyResourceBundle;-><init>(Ljava/io/Reader;)V,core-platform-api,public-api,system-api,test-api
@@ -17256,18 +17293,28 @@
 Ljava/util/Scanner;->useRadix(I)Ljava/util/Scanner;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceConfigurationError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$1;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$1;->remove()V,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/ServiceLoader$LazyIterator;->remove()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$1;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$2;->hasNext()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$2;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->hasNext()Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$LazyClassPathLookupIterator;->next()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$Provider;->type()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->equals(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->hashCode()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderImpl;->type()Ljava/lang/Class;,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->characteristics()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->estimateSize()J,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader$ProviderSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->findFirst()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->load(Ljava/lang/Class;)Ljava/util/ServiceLoader;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->loadInstalled(Ljava/lang/Class;)Ljava/util/ServiceLoader;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->reload()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/ServiceLoader;->stream()Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/ServiceLoader;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/Set;->add(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/Set;->addAll(Ljava/util/Collection;)Z,core-platform-api,public-api,system-api,test-api
@@ -17653,7 +17700,7 @@
 Ljava/util/TimeZone;->setRawOffset(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/TimeZone;->toZoneId()Ljava/time/ZoneId;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TimeZone;->useDaylightTime()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/Timer$1;->finalize()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/Timer$ThreadReaper;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Timer;-><init>()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/Timer;-><init>(Ljava/lang/String;Z)V,core-platform-api,public-api,system-api,test-api
@@ -17762,6 +17809,9 @@
 Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->ceilingKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->descendingKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->firstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
@@ -17778,10 +17828,12 @@
 Ljava/util/TreeMap$NavigableSubMap;->lastKey()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->pollFirstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->pollLastEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap$NavigableSubMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->size()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap$NavigableSubMap;->subMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap;,core-platform-api,public-api,system-api,test-api
@@ -17822,6 +17874,9 @@
 Ljava/util/TreeMap;->clear()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->comparator()Ljava/util/Comparator;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->computeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->containsKey(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->containsValue(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
@@ -17842,11 +17897,13 @@
 Ljava/util/TreeMap;->lastKey()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->lowerKey(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->navigableKeySet()Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->pollFirstEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->pollLastEntry()Ljava/util/Map$Entry;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->putAll(Ljava/util/Map;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/TreeMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->replace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/TreeMap;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -18522,7 +18579,6 @@
 Ljava/util/concurrent/ConcurrentHashMap;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->isEmpty()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
-Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api
 Ljava/util/concurrent/ConcurrentHashMap;->keySet(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$KeySetView;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->keys()Ljava/util/Enumeration;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentHashMap;->mappingCount()J,core-platform-api,public-api,system-api,test-api
@@ -18901,8 +18957,8 @@
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;)Ljava/util/SortedSet;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/ConcurrentSkipListSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;,core-platform-api,public-api,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda1;->run()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->add(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->forEachRemaining(Ljava/util/function/Consumer;)V,core-platform-api,public-api,system-api,test-api
@@ -21132,8 +21188,8 @@
 Ljava/util/regex/PatternSyntaxException;->getMessage()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/regex/PatternSyntaxException;->getPattern()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline;->close()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline;->isParallel()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/AbstractPipeline;->onClose(Ljava/lang/Runnable;)Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
@@ -21166,101 +21222,105 @@
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collector;->supplier()Ljava/util/function/Supplier;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda14;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda16;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda19;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda24;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda25;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda27;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda29;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda31;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda35;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda36;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda38;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda40;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda44;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda46;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda54;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda55;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda56;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda58;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda59;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda60;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda61;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda62;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda64;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda65;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda67;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda68;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda69;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda70;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda71;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda76;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda78;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda81;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda83;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda84;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda85;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda86;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda88;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda89;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda90;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda91;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda92;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda93;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$$ExternalSyntheticLambda94;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda95;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda96;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda97;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda98;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$1OptionalBox;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$CollectorImpl;->accumulator()Ljava/util/function/BiConsumer;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors$CollectorImpl;->characteristics()Ljava/util/Set;,core-platform-api,public-api,system-api,test-api
@@ -21300,6 +21360,7 @@
 Ljava/util/stream/Collectors;->summingDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->summingInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->summingLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Collectors;->teeing(Ljava/util/stream/Collector;Ljava/util/stream/Collector;Ljava/util/function/BiFunction;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->toCollection(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Collectors;->toConcurrentMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;)Ljava/util/stream/Collector;,core-platform-api,public-api,system-api,test-api
@@ -21319,30 +21380,29 @@
 Ljava/util/stream/DistinctOps$1$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DistinctOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DistinctOps$1$2;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->applyAsLong(D)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda11;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda3;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;->applyAsDouble(Ljava/lang/Object;)D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;->applyAsDouble(DD)D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda8;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$1$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$2$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$3$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$4$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$5$1$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$5$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoublePipeline$7$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$6$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$8$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline$9$1;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;->forEachOrdered(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline$Head;->parallel()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
@@ -21358,6 +21418,7 @@
 Ljava/util/stream/DoublePipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjDoubleConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->findFirst()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
@@ -21368,6 +21429,7 @@
 Ljava/util/stream/DoublePipeline;->iterator()Ljava/util/PrimitiveIterator$OfDouble;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21385,13 +21447,21 @@
 Ljava/util/stream/DoublePipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->sum()D,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoublePipeline;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->toArray()[D,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoublePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoubleStream$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/DoubleStream$1;->nextDouble()D,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda0;->apply(D)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$1;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$2;->tryAdvance(Ljava/util/function/DoubleConsumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->add(D)Ljava/util/stream/DoubleStream$Builder;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream$Builder;->build()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;->accept(DLjava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->allMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->anyMatch(Ljava/util/function/DoublePredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->average()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
@@ -21401,6 +21471,7 @@
 Ljava/util/stream/DoubleStream;->concat(Ljava/util/stream/DoubleStream;Ljava/util/stream/DoubleStream;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->distinct()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->dropWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->empty()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->filter(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->findAny()Ljava/util/OptionalDouble;,core-platform-api,public-api,system-api,test-api
@@ -21409,11 +21480,13 @@
 Ljava/util/stream/DoubleStream;->forEach(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->forEachOrdered(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->generate(Ljava/util/function/DoubleSupplier;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoublePredicate;Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterate(DLjava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->iterator()Ljava/util/PrimitiveIterator$OfDouble;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->limit(J)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->map(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->mapMulti(Ljava/util/stream/DoubleStream$DoubleMapMultiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToInt(Ljava/util/function/DoubleToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToLong(Ljava/util/function/DoubleToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->mapToObj(Ljava/util/function/DoubleFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21435,21 +21508,22 @@
 Ljava/util/stream/DoubleStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->sum()D,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->summaryStatistics()Ljava/util/DoubleSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/DoubleStream;->takeWhile(Ljava/util/function/DoublePredicate;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/DoubleStream;->toArray()[D,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda5;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/FindOps$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfDouble$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfDouble;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfInt;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfLong$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfLong;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindSink;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/FindOps$FindTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,system-api,test-api
@@ -21462,30 +21536,29 @@
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->compute()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachOrderedTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ForEachOps$ForEachTask;->compute()V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->applyAsLong(I)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda13;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;->applyAsInt(Ljava/lang/Object;)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda6;->applyAsInt(II)I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$1$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$10$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$11$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$2$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$3$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$4$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$5$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$6$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$7$1$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$7$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntPipeline$9$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline$8$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;->forEachOrdered(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline$Head;->parallel()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
@@ -21503,6 +21576,7 @@
 Ljava/util/stream/IntPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjIntConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->findFirst()Ljava/util/OptionalInt;,core-platform-api,public-api,system-api,test-api
@@ -21513,6 +21587,7 @@
 Ljava/util/stream/IntPipeline;->iterator()Ljava/util/PrimitiveIterator$OfInt;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21530,13 +21605,21 @@
 Ljava/util/stream/IntPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->sum()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntPipeline;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->toArray()[I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntStream$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/IntStream$1;->nextInt()I,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda0;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$1;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$2;->tryAdvance(Ljava/util/function/IntConsumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->add(I)Ljava/util/stream/IntStream$Builder;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream$Builder;->build()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream$IntMapMultiConsumer;->accept(ILjava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->allMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->anyMatch(Ljava/util/function/IntPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
@@ -21548,6 +21631,7 @@
 Ljava/util/stream/IntStream;->concat(Ljava/util/stream/IntStream;Ljava/util/stream/IntStream;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->distinct()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->dropWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->empty()Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->findAny()Ljava/util/OptionalInt;,core-platform-api,public-api,system-api,test-api
@@ -21556,11 +21640,13 @@
 Ljava/util/stream/IntStream;->forEach(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->forEachOrdered(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->generate(Ljava/util/function/IntSupplier;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntPredicate;Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->iterate(ILjava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->iterator()Ljava/util/PrimitiveIterator$OfInt;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->limit(J)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->map(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->mapMulti(Ljava/util/stream/IntStream$IntMapMultiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->mapToDouble(Ljava/util/function/IntToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->mapToLong(Ljava/util/function/IntToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21584,29 +21670,29 @@
 Ljava/util/stream/IntStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->sum()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->summaryStatistics()Ljava/util/IntSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/IntStream;->takeWhile(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/IntStream;->toArray()[I,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->applyAsLong(J)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda10;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda13;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda11;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda12;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda8;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;->applyAsLong(JJ)J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$1$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$10$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$2$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$3$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$4$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$5$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$6$1$$ExternalSyntheticLambda0;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$6$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongPipeline$8$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline$7$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$9$1;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$Head;->forEach(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline$Head;->forEachOrdered(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
@@ -21624,6 +21710,7 @@
 Ljava/util/stream/LongPipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/ObjLongConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->findFirst()Ljava/util/OptionalLong;,core-platform-api,public-api,system-api,test-api
@@ -21634,6 +21721,7 @@
 Ljava/util/stream/LongPipeline;->iterator()Ljava/util/PrimitiveIterator$OfLong;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21651,13 +21739,21 @@
 Ljava/util/stream/LongPipeline;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->sum()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongPipeline;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->toArray()[J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongPipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongStream$1;->hasNext()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/LongStream$1;->nextLong()J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda0;->apply(J)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$1;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->forEachRemaining(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$2;->tryAdvance(Ljava/util/function/LongConsumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->add(J)Ljava/util/stream/LongStream$Builder;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream$Builder;->build()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream$LongMapMultiConsumer;->accept(JLjava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->allMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->anyMatch(Ljava/util/function/LongPredicate;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->asDoubleStream()Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
@@ -21668,6 +21764,7 @@
 Ljava/util/stream/LongStream;->concat(Ljava/util/stream/LongStream;Ljava/util/stream/LongStream;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->distinct()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->dropWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->empty()Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->filter(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->findAny()Ljava/util/OptionalLong;,core-platform-api,public-api,system-api,test-api
@@ -21676,11 +21773,13 @@
 Ljava/util/stream/LongStream;->forEach(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->forEachOrdered(Ljava/util/function/LongConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->generate(Ljava/util/function/LongSupplier;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongPredicate;Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->iterate(JLjava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->iterator()Ljava/util/PrimitiveIterator$OfLong;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->limit(J)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->map(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->mapMulti(Ljava/util/stream/LongStream$LongMapMultiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->mapToDouble(Ljava/util/function/LongToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->mapToInt(Ljava/util/function/LongToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->mapToObj(Ljava/util/function/LongFunction;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
@@ -21704,6 +21803,7 @@
 Ljava/util/stream/LongStream;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->sum()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->summaryStatistics()Ljava/util/LongSummaryStatistics;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/LongStream;->takeWhile(Ljava/util/function/LongPredicate;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/LongStream;->toArray()[J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/MatchOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
@@ -21795,12 +21895,20 @@
 Ljava/util/stream/ReduceOps$9ReducingSink;->accept(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReduceOps$9ReducingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReduceOps$Box;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfDouble;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfInt;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfLong;->accept(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink$OfRef;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReduceOps$CountingSink;->get()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReduceOps$ReduceTask;->onCompletion(Ljava/util/concurrent/CountedCompleter;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda2;->applyAsLong(Ljava/lang/Object;)J,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$10$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$11$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$12$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$13$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$14$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline$15$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$2$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$3$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline$4$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
@@ -21817,6 +21925,7 @@
 Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->count()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->dropWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->findFirst()Ljava/util/Optional;,core-platform-api,public-api,system-api,test-api
@@ -21829,6 +21938,10 @@
 Ljava/util/stream/ReferencePipeline;->iterator()Ljava/util/Iterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->limit(J)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMulti(Ljava/util/function/BiConsumer;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToDouble(Ljava/util/function/BiConsumer;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToInt(Ljava/util/function/BiConsumer;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->mapMultiToLong(Ljava/util/function/BiConsumer;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;,core-platform-api,public-api,system-api,test-api
@@ -21842,8 +21955,10 @@
 Ljava/util/stream/ReferencePipeline;->skip(J)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted()Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->takeWhile(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray()[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->toArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/ReferencePipeline;->toList()Ljava/util/List;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/ReferencePipeline;->unordered()Ljava/util/stream/BaseStream;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink$OfDouble;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink$OfDouble;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
@@ -21854,7 +21969,6 @@
 Ljava/util/stream/Sink;->accept(D)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink;->accept(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Sink;->accept(J)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/SliceOps$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SliceOps$1$1;->accept(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SliceOps$2$$ExternalSyntheticLambda0;->apply(I)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SliceOps$2$1;->accept(I)V,core-platform-api,public-api,system-api,test-api
@@ -21916,8 +22030,8 @@
 Ljava/util/stream/SpinedBuffer;->spliterator()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/SpinedBuffer;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->run()V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/Stream$$ExternalSyntheticLambda2;->run()V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/Stream$1;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
@@ -22013,8 +22127,8 @@
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DistinctSpliterator;->trySplit()Ljava/util/Spliterator;,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda0;->accept(D)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda1;->accept(D)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->forEachRemaining(Ljava/util/function/DoubleConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$DoubleWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -22042,8 +22156,8 @@
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->characteristics()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->estimateSize()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda0;->accept(I)V,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
-Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda1;->accept(I)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator$$ExternalSyntheticLambda2;->getAsBoolean()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/lang/Object;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/stream/StreamSpliterators$IntWrappingSpliterator;->tryAdvance(Ljava/lang/Object;)Z,core-platform-api,public-api,system-api,test-api
@@ -22467,6 +22581,7 @@
 Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->getSize()J,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->getTime()J,core-platform-api,public-api,system-api,test-api
+Ljava/util/zip/ZipEntry;->getTimeLocal()Ljava/time/LocalDateTime;,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->isDirectory()Z,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->setComment(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
@@ -22479,6 +22594,7 @@
 Ljava/util/zip/ZipEntry;->setMethod(I)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->setSize(J)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->setTime(J)V,core-platform-api,public-api,system-api,test-api
+Ljava/util/zip/ZipEntry;->setTimeLocal(Ljava/time/LocalDateTime;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipEntry;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipError;-><init>(Ljava/lang/String;)V,core-platform-api,public-api,system-api,test-api
 Ljava/util/zip/ZipException;-><init>()V,core-platform-api,public-api,system-api,test-api
@@ -22674,6 +22790,7 @@
 Ljavax/crypto/KeyAgreement;->generateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->generateSecret([BI)I,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getAlgorithm()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Ljavax/crypto/KeyAgreement;->getCurrentSpi()Ljavax/crypto/KeyAgreementSpi;,core-platform-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,system-api,test-api
 Ljavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyAgreement;,core-platform-api,public-api,system-api,test-api
@@ -27611,6 +27728,10 @@
 Lsun/security/x509/X509Key;->getFormat()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
 Lsun/security/x509/X509Key;->hashCode()I,core-platform-api,public-api,system-api,test-api
 Lsun/security/x509/X509Key;->toString()Ljava/lang/String;,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset$PropertiesFileDecoder;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->contains(Ljava/nio/charset/Charset;)Z,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newDecoder()Ljava/nio/charset/CharsetDecoder;,core-platform-api,public-api,system-api,test-api
+Lsun/util/PropertyResourceBundleCharset;->newEncoder()Ljava/nio/charset/CharsetEncoder;,core-platform-api,public-api,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->hasMoreElements()Z,core-platform-api,public-api,system-api,test-api
 Lsun/util/ResourceBundleEnumeration;->nextElement()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
 Lsun/util/calendar/CalendarDate;->clone()Ljava/lang/Object;,core-platform-api,public-api,system-api,test-api
diff --git a/go/current/sdk/hiddenapi/index.csv b/go/current/sdk/hiddenapi/index.csv
index b4d38dd..e4dc964 100644
--- a/go/current/sdk/hiddenapi/index.csv
+++ b/go/current/sdk/hiddenapi/index.csv
@@ -117,15 +117,15 @@
 Ljava/lang/Class;-><init>()V,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,38,5,38,25,
 Ljava/lang/Class;->getDeclaredMethodsUnchecked(Z)[Ljava/lang/reflect/Method;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,251,5,251,25,
 Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,273,5,273,25,
-Ljava/lang/Class;->accessFlags:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,414,5,414,25,
-Ljava/lang/Class;->classLoader:Ljava/lang/ClassLoader;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,419,5,419,25,
-Ljava/lang/Class;->clinitThreadId:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,424,5,424,69,maxTargetSdk=30&trackingBug=170729553L
-Ljava/lang/Class;->dexCache:Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,431,5,431,25,
-Ljava/lang/Class;->dexClassDefIndex:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,434,5,434,25,
-Ljava/lang/Class;->ifTable:[Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,443,5,443,25,
-Ljava/lang/Class;->name:Ljava/lang/String;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,448,5,448,25,
-Ljava/lang/Class;->objectSize:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,455,5,455,25,
-Ljava/lang/Class;->status:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,468,5,468,69,maxTargetSdk=30&trackingBug=170729553L
+Ljava/lang/Class;->accessFlags:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,412,5,412,25,
+Ljava/lang/Class;->classLoader:Ljava/lang/ClassLoader;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,417,5,417,25,
+Ljava/lang/Class;->clinitThreadId:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,422,5,422,69,maxTargetSdk=30&trackingBug=170729553L
+Ljava/lang/Class;->dexCache:Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,429,5,429,25,
+Ljava/lang/Class;->dexClassDefIndex:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,432,5,432,25,
+Ljava/lang/Class;->ifTable:[Ljava/lang/Object;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,441,5,441,25,
+Ljava/lang/Class;->name:Ljava/lang/String;,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,446,5,446,25,
+Ljava/lang/Class;->objectSize:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,453,5,453,25,
+Ljava/lang/Class;->status:I,libcore/ojluni/annotations/hiddenapi/java/lang/Class.java,466,5,466,69,maxTargetSdk=30&trackingBug=170729553L
 Ljava/lang/ClassLoader;->parent:Ljava/lang/ClassLoader;,libcore/ojluni/annotations/hiddenapi/java/lang/ClassLoader.java,230,5,230,25,
 Ljava/lang/Double;->value:D,libcore/ojluni/annotations/hiddenapi/java/lang/Double.java,183,5,183,56,maxTargetSdk=28
 Ljava/lang/Enum;->getSharedConstants(Ljava/lang/Class;)[Ljava/lang/Enum;,libcore/ojluni/annotations/hiddenapi/java/lang/Enum.java,80,5,80,69,maxTargetSdk=30&trackingBug=170729553L
diff --git a/go/current/sdk/hiddenapi/metadata.csv b/go/current/sdk/hiddenapi/metadata.csv
index 8a4876d..80e5770 100644
--- a/go/current/sdk/hiddenapi/metadata.csv
+++ b/go/current/sdk/hiddenapi/metadata.csv
@@ -540,6 +540,7 @@
 |Ljava/nio/CharBuffer;->toString(II)Ljava/lang/String;|,|30|,||,||,||,|170729553|
 |Ljava/nio/DirectByteBuffer;-><init>(JI)V|,|30|,||,||,||,|170729553|
 |Ljava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;|,||,||,||,||,||
+|Ljava/nio/DirectByteBuffer;->compact()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
 |Ljava/nio/DoubleBuffer;->clear()Ljava/nio/DoubleBuffer;|,||,|28|,||,|Ljava/nio/DoubleBuffer;|,||
 |Ljava/nio/DoubleBuffer;->flip()Ljava/nio/DoubleBuffer;|,||,|28|,||,|Ljava/nio/DoubleBuffer;|,||
 |Ljava/nio/DoubleBuffer;->limit(I)Ljava/nio/DoubleBuffer;|,||,|28|,||,|Ljava/nio/DoubleBuffer;|,||
@@ -568,6 +569,24 @@
 |Ljava/nio/LongBuffer;->position(I)Ljava/nio/LongBuffer;|,||,|28|,||,|Ljava/nio/LongBuffer;|,||
 |Ljava/nio/LongBuffer;->reset()Ljava/nio/LongBuffer;|,||,|28|,||,|Ljava/nio/LongBuffer;|,||
 |Ljava/nio/LongBuffer;->rewind()Ljava/nio/LongBuffer;|,||,|28|,||,|Ljava/nio/LongBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->clear()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->flip()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->limit(I)Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->mark()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->position(I)Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->reset()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/ByteBuffer;|,||,|34|,||,|Ljava/nio/ByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->rewind()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
+|Ljava/nio/MappedByteBuffer;->slice()Ljava/nio/MappedByteBuffer;|,||,|34|,||,|Ljava/nio/MappedByteBuffer;|,||
 |Ljava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;|,||,||,||,||,||
 |Ljava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I|,||,||,||,||,||
 |Ljava/nio/NIOAccess;->getBasePointer(Ljava/nio/Buffer;)J|,||,||,||,||,||
diff --git a/go/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h b/go/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h
index 5904c0f..a87b04f 100644
--- a/go/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h
+++ b/go/current/sdk/include/art/libnativebridge/include/nativebridge/native_bridge.h
@@ -29,6 +29,11 @@
 extern "C" {
 #endif  // __cplusplus
 
+enum JNICallType {
+  kJNICallTypeRegular = 1,
+  kJNICallTypeCriticalNative = 2,
+};
+
 // Loads a shared library from the system linker namespace, suitable for
 // platform libraries in /system/lib(64). If linker namespaces don't exist (i.e.
 // on host), this simply calls dlopen().
@@ -81,8 +86,15 @@
 void* NativeBridgeLoadLibrary(const char* libpath, int flag);
 
 // Get a native bridge trampoline for specified native method.
+// This version is deprecated - please use NativeBridgeGetTrampoline2
 void* NativeBridgeGetTrampoline(void* handle, const char* name, const char* shorty, uint32_t len);
 
+void* NativeBridgeGetTrampoline2(void* handle,
+                                 const char* name,
+                                 const char* shorty,
+                                 uint32_t len,
+                                 enum JNICallType jni_call_type);
+
 // True if native library paths are valid and is for an ABI that is supported by native bridge.
 // The *libpath* must point to a library.
 //
@@ -206,7 +218,7 @@
   void* (*loadLibrary)(const char* libpath, int flag);
 
   // Get a native bridge trampoline for specified native method. The trampoline has same
-  // sigature as the native method.
+  // signature as the native method.
   //
   // Parameters:
   //   handle [IN] the handle returned from loadLibrary
@@ -214,6 +226,9 @@
   //   len [IN] length of shorty
   // Returns:
   //   address of trampoline if successful, otherwise NULL
+  // Deprecated in v7
+  //   Starting with version 7 native bridge uses getTrampolineWithJNICallType
+  //   instead
   void* (*getTrampoline)(void* handle, const char* name, const char* shorty, uint32_t len);
 
   // Check whether native library is valid and is for an ABI that is supported by native bridge.
@@ -387,6 +402,25 @@
   // If native bridge is used in app-zygote (in doPreload()) this callback is
   // required to clean-up the environment before the fork (see b/146904103).
   void (*preZygoteFork)();
+
+  // This replaces previous getTrampoline call starting with version 7 of the
+  // interface.
+  //
+  // Get a native bridge trampoline for specified native method. The trampoline
+  // has same signature as the native method.
+  //
+  // Parameters:
+  //   handle [IN] the handle returned from loadLibrary
+  //   shorty [IN] short descriptor of native method
+  //   len [IN] length of shorty
+  //   jni_call_type [IN] the type of JNI call
+  // Returns:
+  //   address of trampoline if successful, otherwise NULL
+  void* (*getTrampolineWithJNICallType)(void* handle,
+                                        const char* name,
+                                        const char* shorty,
+                                        uint32_t len,
+                                        enum JNICallType jni_call_type);
 };
 
 // Runtime interfaces to native bridge.
diff --git a/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
index 9cb8195..6c95c68 100644
--- a/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
+++ b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/nativehelper_utils.h
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+/** JNI utils for nativehelper-internal use. */
+
 #pragma once
 
 #include <jni.h>
diff --git a/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
index cd35a88..32ae885 100644
--- a/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
+++ b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_local_ref.h
@@ -23,6 +23,8 @@
 #include "nativehelper_utils.h"
 
 // A smart pointer that deletes a JNI local reference when it goes out of scope.
+//
+// For creating a `ScopedLocalRef<jstring>`, consider using `CREATE_UTF_OR_RETURN`.
 template<typename T>
 class ScopedLocalRef {
 public:
diff --git a/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
index 363ff42..25de0fc 100644
--- a/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
+++ b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/scoped_utf_chars.h
@@ -23,6 +23,11 @@
 
 #include "nativehelper_utils.h"
 
+// Protect this with __has_include to cope with `stl: "none"` users.
+#if __has_include(<string_view>)
+#include <string_view>
+#endif
+
 // A smart pointer that provides read-only access to a Java string's UTF chars.
 // Unlike GetStringUTFChars, we throw NullPointerException rather than abort if
 // passed a null jstring, and c_str will return nullptr.
@@ -32,6 +37,8 @@
 //   if (name.c_str() == nullptr) {
 //     return nullptr;
 //   }
+//
+// Also consider using `GET_UTF_OR_RETURN`, a shorthand for the 4 lines above.
 class ScopedUtfChars {
  public:
   ScopedUtfChars(JNIEnv* env, jstring s) : env_(env), string_(s) {
@@ -84,6 +91,10 @@
     return utf_chars_[n];
   }
 
+#if __has_include(<string_view>)
+  operator std::string_view() const { return utf_chars_; }
+#endif
+
  private:
   JNIEnv* env_;
   jstring string_;
@@ -91,4 +102,3 @@
 
   DISALLOW_COPY_AND_ASSIGN(ScopedUtfChars);
 };
-
diff --git a/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/utils.h b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/utils.h
new file mode 100644
index 0000000..12f591b
--- /dev/null
+++ b/go/current/sdk/include/libnativehelper/header_only_include/nativehelper/utils.h
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * JNI utils for external use.
+ *
+ * This file may only be included by C++ code.
+ */
+
+#pragma once
+
+#include <jni.h>
+
+#include <string>
+
+#include "nativehelper/scoped_local_ref.h"
+#include "nativehelper/scoped_utf_chars.h"
+
+namespace android {
+namespace jnihelp {
+
+// Implementation details. DO NOT use directly.
+namespace internal {
+
+[[maybe_unused]] static const char* GetCStr(const char* str) { return str; }
+[[maybe_unused]] static const char* GetCStr(const std::string& str) { return str.c_str(); }
+
+}  // namespace internal
+
+// A class that implicitly casts to the default values of various JNI types.
+// Used for returning from a JNI method when an exception occurs, where we don't care about the
+// return value.
+class JniDefaultValue {
+   public:
+    operator jboolean() const { return JNI_FALSE; }
+    operator jbyte() const { return 0; }
+    operator jchar() const { return 0; }
+    operator jshort() const { return 0; }
+    operator jint() const { return 0; }
+    operator jlong() const { return 0; }
+    operator jfloat() const { return 0; }
+    operator jdouble() const { return 0; }
+    operator jobject() const { return nullptr; }
+    operator jclass() const { return nullptr; }
+    operator jstring() const { return nullptr; }
+    operator jarray() const { return nullptr; }
+    operator jobjectArray() const { return nullptr; }
+    operator jbooleanArray() const { return nullptr; }
+    operator jbyteArray() const { return nullptr; }
+    operator jcharArray() const { return nullptr; }
+    operator jshortArray() const { return nullptr; }
+    operator jintArray() const { return nullptr; }
+    operator jlongArray() const { return nullptr; }
+    operator jfloatArray() const { return nullptr; }
+    operator jdoubleArray() const { return nullptr; }
+    operator jthrowable() const { return nullptr; }
+};
+
+// Gets `ScopedUtfChars` from a `jstring` expression.
+//
+// Throws `NullPointerException` and returns the default value if the given `jstring` is a null
+// pointer.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env, jstring j_str) {
+//   ScopedUtfChars str = GET_UTF_OR_RETURN_VOID(env, j_str);
+//   // Safely use `str` here...
+// }
+//
+// The idiomatic way to construct an `std::string` using this macro (an additional string copy is
+// performed):
+//
+// jobject MyJniMethod(JNIEnv* env, jstring j_str) {
+//   std::string str(GET_UTF_OR_RETURN(env, j_str));
+//   // Safely use `str` here...
+// }
+#define GET_UTF_OR_RETURN(env, expr) \
+    GET_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define GET_UTF_OR_RETURN_VOID(env, expr) GET_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define GET_UTF_OR_RETURN_IMPL_(env, expr, ...)                          \
+    ({                                                                   \
+        ScopedUtfChars __or_return_scoped_utf_chars(env, expr);          \
+        if (__or_return_scoped_utf_chars.c_str() == nullptr) {           \
+            /* Return with a pending exception from `ScopedUtfChars`. */ \
+            return __VA_ARGS__;                                          \
+        }                                                                \
+        std::move(__or_return_scoped_utf_chars);                         \
+    })
+
+// Creates `ScopedLocalRef<jstring>` from a `const char*` or `std::string` expression using
+// NewStringUTF.
+//
+// Throws `OutOfMemoryError` and returns the default value if the system runs out of memory.
+//
+// Examples:
+//
+// - If the function returns a value:
+//
+// jobject MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN(env, str);
+//   // Safely use `j_str` here...
+// }
+//
+// - If the function returns void:
+//
+// void MyJniMethod(JNIEnv* env) {
+//   std::string str = "foo";
+//   ScopedLocalRef<jstring> j_str = CREATE_UTF_OR_RETURN_VOID(env, str);
+//   // Safely use `j_str` here...
+// }
+#define CREATE_UTF_OR_RETURN(env, expr) \
+    CREATE_UTF_OR_RETURN_IMPL_((env), (expr), android::jnihelp::JniDefaultValue())
+#define CREATE_UTF_OR_RETURN_VOID(env, expr) CREATE_UTF_OR_RETURN_IMPL_((env), (expr))
+
+#define CREATE_UTF_OR_RETURN_IMPL_(env, expr, ...)                                             \
+    ({                                                                                         \
+        const char* __or_return_c_str;                                                         \
+        ScopedLocalRef<jstring> __or_return_local_ref(                                         \
+            env,                                                                               \
+            env->NewStringUTF(__or_return_c_str = android::jnihelp::internal::GetCStr(expr))); \
+        /* `*__or_return_c_str` may be freed here, but we only compare the pointer against     \
+         * nullptr. DO NOT DEREFERENCE `*__or_return_c_str` after this point. */               \
+        /* `NewStringUTF` returns nullptr when OOM or the input is nullptr, but only throws an \
+         * exception when OOM. */                                                              \
+        if (__or_return_local_ref == nullptr && __or_return_c_str != nullptr) {                \
+            /* Return with a pending exception from `NewStringUTF`. */                         \
+            return __VA_ARGS__;                                                                \
+        }                                                                                      \
+        std::move(__or_return_local_ref);                                                      \
+    })
+
+}  // namespace jnihelp
+}  // namespace android
diff --git a/go/current/sdk/include/libnativehelper/include/nativehelper/Utils.h b/go/current/sdk/include/libnativehelper/include/nativehelper/Utils.h
new file mode 100644
index 0000000..c05b2f1
--- /dev/null
+++ b/go/current/sdk/include/libnativehelper/include/nativehelper/Utils.h
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <nativehelper/utils.h>
diff --git a/go/current/sdk/include/system/logging/liblog/include/android/log.h b/go/current/sdk/include/system/logging/liblog/include/android/log.h
new file mode 100644
index 0000000..5dc365a
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/android/log.h
@@ -0,0 +1,378 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+/**
+ * @addtogroup Logging
+ * @{
+ */
+
+/**
+ * \file
+ *
+ * Support routines to send messages to the Android log buffer,
+ * which can later be accessed through the `logcat` utility.
+ *
+ * Each log message must have
+ *   - a priority
+ *   - a log tag
+ *   - some text
+ *
+ * The tag normally corresponds to the component that emits the log message,
+ * and should be reasonably small.
+ *
+ * Log message text may be truncated to less than an implementation-specific
+ * limit (1023 bytes).
+ *
+ * Note that a newline character ("\n") will be appended automatically to your
+ * log message, if not already there. It is not possible to send several
+ * messages and have them appear on a single line in logcat.
+ *
+ * Please use logging in moderation:
+ *
+ *  - Sending log messages eats CPU and slow down your application and the
+ *    system.
+ *
+ *  - The circular log buffer is pretty small, so sending many messages
+ *    will hide other important log messages.
+ *
+ *  - In release builds, only send log messages to account for exceptional
+ *    conditions.
+ */
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <sys/cdefs.h>
+
+#if !defined(__BIONIC__) && !defined(__INTRODUCED_IN)
+#define __INTRODUCED_IN(x)
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Android log priority values, in increasing order of priority.
+ */
+typedef enum android_LogPriority {
+  /** For internal use only.  */
+  ANDROID_LOG_UNKNOWN = 0,
+  /** The default priority, for internal use only.  */
+  ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */
+  /** Verbose logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_VERBOSE,
+  /** Debug logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_DEBUG,
+  /** Informational logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_INFO,
+  /** Warning logging. For use with recoverable failures. */
+  ANDROID_LOG_WARN,
+  /** Error logging. For use with unrecoverable failures. */
+  ANDROID_LOG_ERROR,
+  /** Fatal logging. For use when aborting. */
+  ANDROID_LOG_FATAL,
+  /** For internal use only.  */
+  ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */
+} android_LogPriority;
+
+/**
+ * Writes the constant string `text` to the log, with priority `prio` and tag
+ * `tag`.
+ */
+int __android_log_write(int prio, const char* tag, const char* text);
+
+/**
+ * Writes a formatted string to the log, with priority `prio` and tag `tag`.
+ * The details of formatting are the same as for
+ * [printf(3)](http://man7.org/linux/man-pages/man3/printf.3.html).
+ */
+int __android_log_print(int prio, const char* tag, const char* fmt, ...)
+    __attribute__((__format__(printf, 3, 4)));
+
+/**
+ * Equivalent to `__android_log_print`, but taking a `va_list`.
+ * (If `__android_log_print` is like `printf`, this is like `vprintf`.)
+ */
+int __android_log_vprint(int prio, const char* tag, const char* fmt, va_list ap)
+    __attribute__((__format__(printf, 3, 0)));
+
+/**
+ * Writes an assertion failure to the log (as `ANDROID_LOG_FATAL`) and to
+ * stderr, before calling
+ * [abort(3)](http://man7.org/linux/man-pages/man3/abort.3.html).
+ *
+ * If `fmt` is non-null, `cond` is unused. If `fmt` is null, the string
+ * `Assertion failed: %s` is used with `cond` as the string argument.
+ * If both `fmt` and `cond` are null, a default string is provided.
+ *
+ * Most callers should use
+ * [assert(3)](http://man7.org/linux/man-pages/man3/assert.3.html) from
+ * `&lt;assert.h&gt;` instead, or the `__assert` and `__assert2` functions
+ * provided by bionic if more control is needed. They support automatically
+ * including the source filename and line number more conveniently than this
+ * function.
+ */
+void __android_log_assert(const char* cond, const char* tag, const char* fmt, ...)
+    __attribute__((__noreturn__)) __attribute__((__format__(printf, 3, 4)));
+
+/**
+ * Identifies a specific log buffer for __android_log_buf_write()
+ * and __android_log_buf_print().
+ */
+typedef enum log_id {
+  LOG_ID_MIN = 0,
+
+  /** The main log buffer. This is the only log buffer available to apps. */
+  LOG_ID_MAIN = 0,
+  /** The radio log buffer. */
+  LOG_ID_RADIO = 1,
+  /** The event log buffer. */
+  LOG_ID_EVENTS = 2,
+  /** The system log buffer. */
+  LOG_ID_SYSTEM = 3,
+  /** The crash log buffer. */
+  LOG_ID_CRASH = 4,
+  /** The statistics log buffer. */
+  LOG_ID_STATS = 5,
+  /** The security log buffer. */
+  LOG_ID_SECURITY = 6,
+  /** The kernel log buffer. */
+  LOG_ID_KERNEL = 7,
+
+  LOG_ID_MAX,
+
+  /** Let the logging function choose the best log target. */
+  LOG_ID_DEFAULT = 0x7FFFFFFF
+} log_id_t;
+
+/**
+ * Writes the constant string `text` to the log buffer `id`,
+ * with priority `prio` and tag `tag`.
+ *
+ * Apps should use __android_log_write() instead.
+ */
+int __android_log_buf_write(int bufID, int prio, const char* tag, const char* text);
+
+/**
+ * Writes a formatted string to log buffer `id`,
+ * with priority `prio` and tag `tag`.
+ * The details of formatting are the same as for
+ * [printf(3)](http://man7.org/linux/man-pages/man3/printf.3.html).
+ *
+ * Apps should use __android_log_print() instead.
+ */
+int __android_log_buf_print(int bufID, int prio, const char* tag, const char* fmt, ...)
+    __attribute__((__format__(printf, 4, 5)));
+
+/**
+ * Logger data struct used for writing log messages to liblog via __android_log_write_logger_data()
+ * and sending log messages to user defined loggers specified in __android_log_set_logger().
+ */
+struct __android_log_message {
+  /** Must be set to sizeof(__android_log_message) and is used for versioning. */
+  size_t struct_size;
+
+  /** {@link log_id_t} values. */
+  int32_t buffer_id;
+
+  /** {@link android_LogPriority} values. */
+  int32_t priority;
+
+  /** The tag for the log message. */
+  const char* tag;
+
+  /** Optional file name, may be set to nullptr. */
+  const char* file;
+
+  /** Optional line number, ignore if file is nullptr. */
+  uint32_t line;
+
+  /** The log message itself. */
+  const char* message;
+};
+
+/**
+ * Prototype for the 'logger' function that is called for every log message.
+ */
+typedef void (*__android_logger_function)(const struct __android_log_message* log_message);
+/**
+ * Prototype for the 'abort' function that is called when liblog will abort due to
+ * __android_log_assert() failures.
+ */
+typedef void (*__android_aborter_function)(const char* abort_message);
+
+/**
+ * Writes the log message specified by log_message.  log_message includes additional file name and
+ * line number information that a logger may use.  log_message is versioned for backwards
+ * compatibility.
+ * This assumes that loggability has already been checked through __android_log_is_loggable().
+ * Higher level logging libraries, such as libbase, first check loggability, then format their
+ * buffers, then pass the message to liblog via this function, and therefore we do not want to
+ * duplicate the loggability check here.
+ *
+ * @param log_message the log message itself, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_write_log_message(struct __android_log_message* log_message) __INTRODUCED_IN(30);
+
+/**
+ * Sets a user defined logger function.  All log messages sent to liblog will be set to the
+ * function pointer specified by logger for processing.  It is not expected that log messages are
+ * already terminated with a new line.  This function should add new lines if required for line
+ * separation.
+ *
+ * @param logger the new function that will handle log messages.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_logger(__android_logger_function logger) __INTRODUCED_IN(30);
+
+/**
+ * Writes the log message to logd.  This is an __android_logger_function and can be provided to
+ * __android_log_set_logger().  It is the default logger when running liblog on a device.
+ *
+ * @param log_message the log message to write, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_logd_logger(const struct __android_log_message* log_message) __INTRODUCED_IN(30);
+
+/**
+ * Writes the log message to stderr.  This is an __android_logger_function and can be provided to
+ * __android_log_set_logger().  It is the default logger when running liblog on host.
+ *
+ * @param log_message the log message to write, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_stderr_logger(const struct __android_log_message* log_message)
+    __INTRODUCED_IN(30);
+
+/**
+ * Sets a user defined aborter function that is called for __android_log_assert() failures.  This
+ * user defined aborter function is highly recommended to abort and be noreturn, but is not strictly
+ * required to.
+ *
+ * @param aborter the new aborter function, see __android_aborter_function.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_aborter(__android_aborter_function aborter) __INTRODUCED_IN(30);
+
+/**
+ * Calls the stored aborter function.  This allows for other logging libraries to use the same
+ * aborter function by calling this function in liblog.
+ *
+ * @param abort_message an additional message supplied when aborting, for example this is used to
+ *                      call android_set_abort_message() in __android_log_default_aborter().
+ *
+ * Available since API level 30.
+ */
+void __android_log_call_aborter(const char* abort_message) __INTRODUCED_IN(30);
+
+/**
+ * Sets android_set_abort_message() on device then aborts().  This is the default aborter.
+ *
+ * @param abort_message an additional message supplied when aborting.  This functions calls
+ *                      android_set_abort_message() with its contents.
+ *
+ * Available since API level 30.
+ */
+void __android_log_default_aborter(const char* abort_message) __attribute__((noreturn))
+__INTRODUCED_IN(30);
+
+/**
+ * Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
+ * __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will
+ * be printed.  A non-zero result indicates yes, zero indicates false.
+ *
+ * If both a priority for a tag and a minimum priority are set by
+ * __android_log_set_minimum_priority(), then the lowest of the two values are to determine the
+ * minimum priority needed to log.  If only one is set, then that value is used to determine the
+ * minimum priority needed.  If none are set, then default_priority is used.
+ *
+ * @param prio         the priority to test, takes android_LogPriority values.
+ * @param tag          the tag to test.
+ * @param default_prio the default priority to use if no properties or minimum priority are set.
+ * @return an integer where 1 indicates that the message is loggable and 0 indicates that it is not.
+ *
+ * Available since API level 30.
+ */
+int __android_log_is_loggable(int prio, const char* tag, int default_prio) __INTRODUCED_IN(30);
+
+/**
+ * Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
+ * __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will
+ * be printed.  A non-zero result indicates yes, zero indicates false.
+ *
+ * If both a priority for a tag and a minimum priority are set by
+ * __android_log_set_minimum_priority(), then the lowest of the two values are to determine the
+ * minimum priority needed to log.  If only one is set, then that value is used to determine the
+ * minimum priority needed.  If none are set, then default_priority is used.
+ *
+ * @param prio         the priority to test, takes android_LogPriority values.
+ * @param tag          the tag to test.
+ * @param len          the length of the tag.
+ * @param default_prio the default priority to use if no properties or minimum priority are set.
+ * @return an integer where 1 indicates that the message is loggable and 0 indicates that it is not.
+ *
+ * Available since API level 30.
+ */
+int __android_log_is_loggable_len(int prio, const char* tag, size_t len, int default_prio)
+    __INTRODUCED_IN(30);
+
+/**
+ * Sets the minimum priority that will be logged for this process.
+ *
+ * @param priority the new minimum priority to set, takes android_LogPriority values.
+ * @return the previous set minimum priority as android_LogPriority values, or
+ *         ANDROID_LOG_DEFAULT if none was set.
+ *
+ * Available since API level 30.
+ */
+int32_t __android_log_set_minimum_priority(int32_t priority) __INTRODUCED_IN(30);
+
+/**
+ * Gets the minimum priority that will be logged for this process.  If none has been set by a
+ * previous __android_log_set_minimum_priority() call, this returns ANDROID_LOG_DEFAULT.
+ *
+ * @return the current minimum priority as android_LogPriority values, or
+ *         ANDROID_LOG_DEFAULT if none is set.
+ *
+ * Available since API level 30.
+ */
+int32_t __android_log_get_minimum_priority(void) __INTRODUCED_IN(30);
+
+/**
+ * Sets the default tag if no tag is provided when writing a log message.  Defaults to
+ * getprogname().  This truncates tag to the maximum log message size, though appropriate tags
+ * should be much smaller.
+ *
+ * @param tag the new log tag.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_default_tag(const char* tag) __INTRODUCED_IN(30);
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/event_tag_map.h b/go/current/sdk/include/system/logging/liblog/include/log/event_tag_map.h
new file mode 100644
index 0000000..de49fbf
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/event_tag_map.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EVENT_TAG_MAP_FILE "/system/etc/event-log-tags"
+
+struct EventTagMap;
+typedef struct EventTagMap EventTagMap;
+
+/*
+ * Open the specified file as an event log tag map.
+ *
+ * Returns NULL on failure.
+ */
+EventTagMap* android_openEventTagMap(const char* fileName);
+
+/*
+ * Close the map.
+ */
+void android_closeEventTagMap(EventTagMap* map);
+
+/*
+ * Look up a tag by index.  Returns the tag string & string length, or NULL if
+ * not found.  Returned string is not guaranteed to be nul terminated.
+ */
+const char* android_lookupEventTag_len(const EventTagMap* map, size_t* len,
+                                       unsigned int tag);
+
+/*
+ * Look up a format by index. Returns the format string & string length,
+ * or NULL if not found. Returned string is not guaranteed to be nul terminated.
+ */
+const char* android_lookupEventFormat_len(const EventTagMap* map, size_t* len,
+                                          unsigned int tag);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log.h b/go/current/sdk/include/system/logging/liblog/include/log/log.h
new file mode 100644
index 0000000..d7e9b7d
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log.h
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2005-2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+/* Too many in the ecosystem assume these are included */
+#if !defined(_WIN32)
+#include <pthread.h>
+#endif
+#include <stdint.h> /* uint16_t, int32_t */
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <android/log.h>
+#include <log/log_id.h>
+#include <log/log_main.h>
+#include <log/log_radio.h>
+#include <log/log_safetynet.h>
+#include <log/log_system.h>
+#include <log/log_time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * LOG_TAG is the local tag used for the following simplified
+ * logging macros.  You can change this preprocessor definition
+ * before using the other macros to change the tag.
+ */
+
+#ifndef LOG_TAG
+#define LOG_TAG NULL
+#endif
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+/*
+ * The maximum size of the log entry payload that can be
+ * written to the logger. An attempt to write more than
+ * this amount will result in a truncated log entry.
+ */
+#define LOGGER_ENTRY_MAX_PAYLOAD 4068
+
+/*
+ * Event logging.
+ */
+
+/*
+ * The following should not be used directly.
+ */
+
+int __android_log_bwrite(int32_t tag, const void* payload, size_t len);
+int __android_log_btwrite(int32_t tag, char type, const void* payload,
+                          size_t len);
+int __android_log_bswrite(int32_t tag, const char* payload);
+
+int __android_log_stats_bwrite(int32_t tag, const void* payload, size_t len);
+
+#define android_bWriteLog(tag, payload, len) \
+  __android_log_bwrite(tag, payload, len)
+#define android_btWriteLog(tag, type, payload, len) \
+  __android_log_btwrite(tag, type, payload, len)
+
+/*
+ * Event log entry types.
+ */
+typedef enum {
+  /* Special markers for android_log_list_element type */
+  EVENT_TYPE_LIST_STOP = '\n', /* declare end of list  */
+  EVENT_TYPE_UNKNOWN = '?',    /* protocol error       */
+
+  /* must match with declaration in java/android/android/util/EventLog.java */
+  EVENT_TYPE_INT = 0,  /* int32_t */
+  EVENT_TYPE_LONG = 1, /* int64_t */
+  EVENT_TYPE_STRING = 2,
+  EVENT_TYPE_LIST = 3,
+  EVENT_TYPE_FLOAT = 4,
+} AndroidEventLogType;
+
+#ifndef LOG_EVENT_INT
+#define LOG_EVENT_INT(_tag, _value)                                          \
+  {                                                                          \
+    int intBuf = _value;                                                     \
+    (void)android_btWriteLog(_tag, EVENT_TYPE_INT, &intBuf, sizeof(intBuf)); \
+  }
+#endif
+#ifndef LOG_EVENT_LONG
+#define LOG_EVENT_LONG(_tag, _value)                                            \
+  {                                                                             \
+    long long longBuf = _value;                                                 \
+    (void)android_btWriteLog(_tag, EVENT_TYPE_LONG, &longBuf, sizeof(longBuf)); \
+  }
+#endif
+#ifndef LOG_EVENT_FLOAT
+#define LOG_EVENT_FLOAT(_tag, _value)                           \
+  {                                                             \
+    float floatBuf = _value;                                    \
+    (void)android_btWriteLog(_tag, EVENT_TYPE_FLOAT, &floatBuf, \
+                             sizeof(floatBuf));                 \
+  }
+#endif
+#ifndef LOG_EVENT_STRING
+#define LOG_EVENT_STRING(_tag, _value) \
+  (void)__android_log_bswrite(_tag, _value);
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Release any logger resources (a new log write will immediately re-acquire)
+ *
+ * This is specifically meant to be used by Zygote to close open file descriptors after fork()
+ * and before specialization.  O_CLOEXEC is used on file descriptors, so they will be closed upon
+ * exec() in normal use cases.
+ *
+ * Note that this is not safe to call from a multi-threaded program.
+ */
+void __android_log_close(void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_event_list.h b/go/current/sdk/include/system/logging/liblog/include/log/log_event_list.h
new file mode 100644
index 0000000..deadf20
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_event_list.h
@@ -0,0 +1,278 @@
+/*
+ * Copyright (C) 2005-2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <errno.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+#include <string>
+#endif
+
+#include <log/log.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* For manipulating lists of events. */
+
+#define ANDROID_MAX_LIST_NEST_DEPTH 8
+
+/*
+ * The opaque context used to manipulate lists of events.
+ */
+typedef struct android_log_context_internal* android_log_context;
+
+/*
+ * Elements returned when reading a list of events.
+ */
+typedef struct {
+  AndroidEventLogType type;
+  uint16_t complete;
+  uint16_t len;
+  union {
+    int32_t int32;
+    int64_t int64;
+    char* string;
+    float float32;
+  } data;
+} android_log_list_element;
+
+/*
+ * Creates a context associated with an event tag to write elements to
+ * the list of events.
+ */
+android_log_context create_android_logger(uint32_t tag);
+
+/* All lists must be braced by a begin and end call */
+/*
+ * NB: If the first level braces are missing when specifying multiple
+ *     elements, we will manufacturer a list to embrace it for your API
+ *     convenience. For a single element, it will remain solitary.
+ */
+int android_log_write_list_begin(android_log_context ctx);
+int android_log_write_list_end(android_log_context ctx);
+
+int android_log_write_int32(android_log_context ctx, int32_t value);
+int android_log_write_int64(android_log_context ctx, int64_t value);
+int android_log_write_string8(android_log_context ctx, const char* value);
+int android_log_write_string8_len(android_log_context ctx, const char* value,
+                                  size_t maxlen);
+int android_log_write_float32(android_log_context ctx, float value);
+
+/* Submit the composed list context to the specified logger id */
+/* NB: LOG_ID_EVENTS and LOG_ID_SECURITY only valid binary buffers */
+int android_log_write_list(android_log_context ctx, log_id_t id);
+
+/*
+ * Creates a context from a raw buffer representing a list of events to be read.
+ */
+android_log_context create_android_log_parser(const char* msg, size_t len);
+
+android_log_list_element android_log_read_next(android_log_context ctx);
+android_log_list_element android_log_peek_next(android_log_context ctx);
+
+/* Reset writer context */
+int android_log_reset(android_log_context ctx);
+
+/* Reset reader context */
+int android_log_parser_reset(android_log_context ctx,
+                             const char* msg, size_t len);
+
+/* Finished with reader or writer context */
+int android_log_destroy(android_log_context* ctx);
+
+#ifdef __cplusplus
+/* android_log_list C++ helpers */
+extern "C++" {
+class android_log_event_list {
+ private:
+  android_log_context ctx;
+  int ret;
+
+  android_log_event_list(const android_log_event_list&) = delete;
+  void operator=(const android_log_event_list&) = delete;
+
+ public:
+  explicit android_log_event_list(int tag) : ret(0) {
+    ctx = create_android_logger(static_cast<uint32_t>(tag));
+  }
+  ~android_log_event_list() {
+    android_log_destroy(&ctx);
+  }
+
+  int close() {
+    int retval = android_log_destroy(&ctx);
+    if (retval < 0) ret = retval;
+    return retval;
+  }
+
+  /* To allow above C calls to use this class as parameter */
+  operator android_log_context() const {
+    return ctx;
+  }
+
+  /* return errors or transmit status */
+  int status() const {
+    return ret;
+  }
+
+  int begin() {
+    int retval = android_log_write_list_begin(ctx);
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+  int end() {
+    int retval = android_log_write_list_end(ctx);
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+
+  android_log_event_list& operator<<(int32_t value) {
+    int retval = android_log_write_int32(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(uint32_t value) {
+    int retval = android_log_write_int32(ctx, static_cast<int32_t>(value));
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(bool value) {
+    int retval = android_log_write_int32(ctx, value ? 1 : 0);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(int64_t value) {
+    int retval = android_log_write_int64(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(uint64_t value) {
+    int retval = android_log_write_int64(ctx, static_cast<int64_t>(value));
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(const char* value) {
+    int retval = android_log_write_string8(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(const std::string& value) {
+    int retval =
+        android_log_write_string8_len(ctx, value.data(), value.length());
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  android_log_event_list& operator<<(float value) {
+    int retval = android_log_write_float32(ctx, value);
+    if (retval < 0) ret = retval;
+    return *this;
+  }
+
+  int write(log_id_t id = LOG_ID_EVENTS) {
+    /* facilitate -EBUSY retry */
+    if ((ret == -EBUSY) || (ret > 0)) ret = 0;
+    int retval = android_log_write_list(ctx, id);
+    /* existing errors trump transmission errors */
+    if (!ret) ret = retval;
+    return ret;
+  }
+
+  int operator<<(log_id_t id) {
+    write(id);
+    android_log_destroy(&ctx);
+    return ret;
+  }
+
+  /*
+   * Append<Type> methods removes any integer promotion
+   * confusion, and adds access to string with length.
+   * Append methods are also added for all types for
+   * convenience.
+   */
+
+  bool AppendInt(int32_t value) {
+    int retval = android_log_write_int32(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendLong(int64_t value) {
+    int retval = android_log_write_int64(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendString(const char* value) {
+    int retval = android_log_write_string8(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendString(const char* value, size_t len) {
+    int retval = android_log_write_string8_len(ctx, value, len);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  bool AppendString(const std::string& value) {
+    int retval =
+        android_log_write_string8_len(ctx, value.data(), value.length());
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+
+  bool Append(const std::string& value) {
+    int retval =
+        android_log_write_string8_len(ctx, value.data(), value.length());
+    if (retval < 0) ret = retval;
+    return ret;
+  }
+
+  bool AppendFloat(float value) {
+    int retval = android_log_write_float32(ctx, value);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+
+  template <typename Tvalue>
+  bool Append(Tvalue value) {
+    *this << value;
+    return ret >= 0;
+  }
+
+  bool Append(const char* value, size_t len) {
+    int retval = android_log_write_string8_len(ctx, value, len);
+    if (retval < 0) ret = retval;
+    return ret >= 0;
+  }
+};
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_id.h b/go/current/sdk/include/system/logging/liblog/include/log/log_id.h
new file mode 100644
index 0000000..8e4faeb
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_id.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <android/log.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * log_id_t helpers
+ */
+log_id_t android_name_to_log_id(const char* logName);
+const char* android_log_id_to_name(log_id_t log_id);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_main.h b/go/current/sdk/include/system/logging/liblog/include/log/log_main.h
new file mode 100644
index 0000000..799a8e2
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_main.h
@@ -0,0 +1,378 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+#include <android/log.h>
+
+__BEGIN_DECLS
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * This file uses ", ## __VA_ARGS__" zero-argument token pasting to
+ * work around issues with debug-only syntax errors in assertions
+ * that are missing format strings.  See commit
+ * 19299904343daf191267564fe32e6cd5c165cd42
+ */
+#if defined(__clang__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
+#endif
+
+/*
+ * Use __VA_ARGS__ if running a static analyzer,
+ * to avoid warnings of unused variables in __VA_ARGS__.
+ * Use constexpr function in C++ mode, so these macros can be used
+ * in other constexpr functions without warning.
+ */
+#ifdef __clang_analyzer__
+#ifdef __cplusplus
+extern "C++" {
+template <typename... Ts>
+constexpr int __fake_use_va_args(Ts...) {
+  return 0;
+}
+}
+#else
+extern int __fake_use_va_args(int, ...);
+#endif /* __cplusplus */
+#define __FAKE_USE_VA_ARGS(...) ((void)__fake_use_va_args(0, ##__VA_ARGS__))
+#else
+#define __FAKE_USE_VA_ARGS(...) ((void)(0))
+#endif /* __clang_analyzer__ */
+
+#ifndef __predict_false
+#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
+#endif
+
+#define android_writeLog(prio, tag, text) __android_log_write(prio, tag, text)
+
+#define android_printLog(prio, tag, ...) \
+  __android_log_print(prio, tag, __VA_ARGS__)
+
+#define android_vprintLog(prio, cond, tag, ...) \
+  __android_log_vprint(prio, tag, __VA_ARGS__)
+
+/*
+ * Log macro that allows you to specify a number for the priority.
+ */
+#ifndef LOG_PRI
+#define LOG_PRI(priority, tag, ...) android_printLog(priority, tag, __VA_ARGS__)
+#endif
+
+/*
+ * Log macro that allows you to pass in a varargs ("args" is a va_list).
+ */
+#ifndef LOG_PRI_VA
+#define LOG_PRI_VA(priority, tag, fmt, args) \
+  android_vprintLog(priority, NULL, tag, fmt, args)
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/* XXX Macros to work around syntax errors in places where format string
+ * arg is not passed to ALOG_ASSERT, LOG_ALWAYS_FATAL or LOG_ALWAYS_FATAL_IF
+ * (happens only in debug builds).
+ */
+
+/* Returns 2nd arg.  Used to substitute default value if caller's vararg list
+ * is empty.
+ */
+#define __android_second(dummy, second, ...) second
+
+/* If passed multiple args, returns ',' followed by all but 1st arg, otherwise
+ * returns nothing.
+ */
+#define __android_rest(first, ...) , ##__VA_ARGS__
+
+#define android_printAssert(cond, tag, ...)                     \
+  __android_log_assert(cond, tag,                               \
+                       __android_second(0, ##__VA_ARGS__, NULL) \
+                           __android_rest(__VA_ARGS__))
+
+/*
+ * Log a fatal error.  If the given condition fails, this stops program
+ * execution like a normal assertion, but also generating the given message.
+ * It is NOT stripped from release builds.  Note that the condition test
+ * is -inverted- from the normal assert() semantics.
+ */
+#ifndef LOG_ALWAYS_FATAL_IF
+#define LOG_ALWAYS_FATAL_IF(cond, ...)                                                    \
+  ((__predict_false(cond)) ? (__FAKE_USE_VA_ARGS(__VA_ARGS__),                            \
+                              ((void)android_printAssert(#cond, LOG_TAG, ##__VA_ARGS__))) \
+                           : ((void)0))
+#endif
+
+#ifndef LOG_ALWAYS_FATAL
+#define LOG_ALWAYS_FATAL(...) \
+  (((void)android_printAssert(NULL, LOG_TAG, ##__VA_ARGS__)))
+#endif
+
+/*
+ * Versions of LOG_ALWAYS_FATAL_IF and LOG_ALWAYS_FATAL that
+ * are stripped out of release builds.
+ */
+
+#if LOG_NDEBUG
+
+#ifndef LOG_FATAL_IF
+#define LOG_FATAL_IF(cond, ...) __FAKE_USE_VA_ARGS(__VA_ARGS__)
+#endif
+#ifndef LOG_FATAL
+#define LOG_FATAL(...) __FAKE_USE_VA_ARGS(__VA_ARGS__)
+#endif
+
+#else
+
+#ifndef LOG_FATAL_IF
+#define LOG_FATAL_IF(cond, ...) LOG_ALWAYS_FATAL_IF(cond, ##__VA_ARGS__)
+#endif
+#ifndef LOG_FATAL
+#define LOG_FATAL(...) LOG_ALWAYS_FATAL(__VA_ARGS__)
+#endif
+
+#endif
+
+/*
+ * Assertion that generates a log message when the assertion fails.
+ * Stripped out of release builds.  Uses the current LOG_TAG.
+ */
+#ifndef ALOG_ASSERT
+#define ALOG_ASSERT(cond, ...) LOG_FATAL_IF(!(cond), ##__VA_ARGS__)
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * C/C++ logging functions.  See the logging documentation for API details.
+ *
+ * We'd like these to be available from C code (in case we import some from
+ * somewhere), so this has a C interface.
+ *
+ * The output will be correct when the log file is shared between multiple
+ * threads and/or multiple processes so long as the operating system
+ * supports O_APPEND.  These calls have mutex-protected data structures
+ * and so are NOT reentrant.  Do not use LOG in a signal handler.
+ */
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Simplified macro to send a verbose log message using the current LOG_TAG.
+ */
+#ifndef ALOGV
+#define __ALOGV(...) ((void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
+#if LOG_NDEBUG
+#define ALOGV(...)                   \
+  do {                               \
+    __FAKE_USE_VA_ARGS(__VA_ARGS__); \
+    if (false) {                     \
+      __ALOGV(__VA_ARGS__);          \
+    }                                \
+  } while (false)
+#else
+#define ALOGV(...) __ALOGV(__VA_ARGS__)
+#endif
+#endif
+
+#ifndef ALOGV_IF
+#if LOG_NDEBUG
+#define ALOGV_IF(cond, ...) __FAKE_USE_VA_ARGS(__VA_ARGS__)
+#else
+#define ALOGV_IF(cond, ...)                                                               \
+  ((__predict_false(cond))                                                                \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+#endif
+
+/*
+ * Simplified macro to send a debug log message using the current LOG_TAG.
+ */
+#ifndef ALOGD
+#define ALOGD(...) ((void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGD_IF
+#define ALOGD_IF(cond, ...)                                                             \
+  ((__predict_false(cond))                                                              \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/*
+ * Simplified macro to send an info log message using the current LOG_TAG.
+ */
+#ifndef ALOGI
+#define ALOGI(...) ((void)ALOG(LOG_INFO, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGI_IF
+#define ALOGI_IF(cond, ...)                                                            \
+  ((__predict_false(cond))                                                             \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_INFO, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/*
+ * Simplified macro to send a warning log message using the current LOG_TAG.
+ */
+#ifndef ALOGW
+#define ALOGW(...) ((void)ALOG(LOG_WARN, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGW_IF
+#define ALOGW_IF(cond, ...)                                                            \
+  ((__predict_false(cond))                                                             \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_WARN, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/*
+ * Simplified macro to send an error log message using the current LOG_TAG.
+ */
+#ifndef ALOGE
+#define ALOGE(...) ((void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__))
+#endif
+
+#ifndef ALOGE_IF
+#define ALOGE_IF(cond, ...)                                                             \
+  ((__predict_false(cond))                                                              \
+       ? (__FAKE_USE_VA_ARGS(__VA_ARGS__), (void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__)) \
+       : ((void)0))
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * verbose priority.
+ */
+#ifndef IF_ALOGV
+#if LOG_NDEBUG
+#define IF_ALOGV() if (false)
+#else
+#define IF_ALOGV() IF_ALOG(LOG_VERBOSE, LOG_TAG)
+#endif
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * debug priority.
+ */
+#ifndef IF_ALOGD
+#define IF_ALOGD() IF_ALOG(LOG_DEBUG, LOG_TAG)
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * info priority.
+ */
+#ifndef IF_ALOGI
+#define IF_ALOGI() IF_ALOG(LOG_INFO, LOG_TAG)
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * warn priority.
+ */
+#ifndef IF_ALOGW
+#define IF_ALOGW() IF_ALOG(LOG_WARN, LOG_TAG)
+#endif
+
+/*
+ * Conditional based on whether the current LOG_TAG is enabled at
+ * error priority.
+ */
+#ifndef IF_ALOGE
+#define IF_ALOGE() IF_ALOG(LOG_ERROR, LOG_TAG)
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ * Basic log message macro.
+ *
+ * Example:
+ *  ALOG(LOG_WARN, NULL, "Failed with error %d", errno);
+ *
+ * The second argument may be NULL or "" to indicate the "global" tag.
+ */
+#ifndef ALOG
+#define ALOG(priority, tag, ...) LOG_PRI(ANDROID_##priority, tag, __VA_ARGS__)
+#endif
+
+/*
+ * Conditional given a desired logging priority and tag.
+ */
+#ifndef IF_ALOG
+#define IF_ALOG(priority, tag) if (android_testLog(ANDROID_##priority, tag))
+#endif
+
+/* --------------------------------------------------------------------- */
+
+/*
+ *    IF_ALOG uses android_testLog, but IF_ALOG can be overridden.
+ *    android_testLog will remain constant in its purpose as a wrapper
+ *        for Android logging filter policy, and can be subject to
+ *        change. It can be reused by the developers that override
+ *        IF_ALOG as a convenient means to reimplement their policy
+ *        over Android.
+ */
+
+/*
+ * Use the per-tag properties "log.tag.<tagname>" to generate a runtime
+ * result of non-zero to expose a log. prio is ANDROID_LOG_VERBOSE to
+ * ANDROID_LOG_FATAL. default_prio if no property. Undefined behavior if
+ * any other value.
+ */
+int __android_log_is_loggable(int prio, const char* tag, int default_prio);
+int __android_log_is_loggable_len(int prio, const char* tag, size_t len, int default_prio);
+
+#if LOG_NDEBUG /* Production */
+#define android_testLog(prio, tag) \
+  (__android_log_is_loggable_len(prio, tag, (tag) ? strlen(tag) : 0, ANDROID_LOG_DEBUG) != 0)
+#else
+#define android_testLog(prio, tag) \
+  (__android_log_is_loggable_len(prio, tag, (tag) ? strlen(tag) : 0, ANDROID_LOG_VERBOSE) != 0)
+#endif
+
+#if defined(__clang__)
+#pragma clang diagnostic pop
+#endif
+
+__END_DECLS
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_properties.h b/go/current/sdk/include/system/logging/liblog/include/log/log_properties.h
new file mode 100644
index 0000000..2a0230f
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_properties.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Returns `1` if the device is debuggable or `0` if not. */
+int __android_log_is_debuggable();
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_radio.h b/go/current/sdk/include/system/logging/liblog/include/log/log_radio.h
new file mode 100644
index 0000000..f5525c1
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_radio.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <android/log.h>
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+/* --------------------------------------------------------------------- */
+
+#ifndef __predict_false
+#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
+#endif
+
+/*
+ * Simplified macro to send a verbose radio log message using current LOG_TAG.
+ */
+#ifndef RLOGV
+#define __RLOGV(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_VERBOSE, LOG_TAG, \
+                                 __VA_ARGS__))
+#if LOG_NDEBUG
+#define RLOGV(...)          \
+  do {                      \
+    if (0) {                \
+      __RLOGV(__VA_ARGS__); \
+    }                       \
+  } while (0)
+#else
+#define RLOGV(...) __RLOGV(__VA_ARGS__)
+#endif
+#endif
+
+#ifndef RLOGV_IF
+#if LOG_NDEBUG
+#define RLOGV_IF(cond, ...) ((void)0)
+#else
+#define RLOGV_IF(cond, ...)                                                \
+  ((__predict_false(cond))                                                 \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_VERBOSE, \
+                                        LOG_TAG, __VA_ARGS__))             \
+       : (void)0)
+#endif
+#endif
+
+/*
+ * Simplified macro to send a debug radio log message using  current LOG_TAG.
+ */
+#ifndef RLOGD
+#define RLOGD(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_DEBUG, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGD_IF
+#define RLOGD_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_DEBUG, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an info radio log message using  current LOG_TAG.
+ */
+#ifndef RLOGI
+#define RLOGI(...)                                                        \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_INFO, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGI_IF
+#define RLOGI_IF(cond, ...)                                             \
+  ((__predict_false(cond))                                              \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_INFO, \
+                                        LOG_TAG, __VA_ARGS__))          \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send a warning radio log message using current LOG_TAG.
+ */
+#ifndef RLOGW
+#define RLOGW(...)                                                        \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_WARN, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGW_IF
+#define RLOGW_IF(cond, ...)                                             \
+  ((__predict_false(cond))                                              \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_WARN, \
+                                        LOG_TAG, __VA_ARGS__))          \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an error radio log message using current LOG_TAG.
+ */
+#ifndef RLOGE
+#define RLOGE(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_ERROR, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef RLOGE_IF
+#define RLOGE_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_RADIO, ANDROID_LOG_ERROR, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_read.h b/go/current/sdk/include/system/logging/liblog/include/log/log_read.h
new file mode 100644
index 0000000..1736934
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_read.h
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <sys/types.h>
+
+#include <android/log.h>
+#include <log/log_time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ANDROID_LOG_WRAP_DEFAULT_TIMEOUT 7200 /* 2 hour default */
+
+/*
+ * Native log reading interface section. See logcat for sample code.
+ *
+ * The preferred API is an exec of logcat. Likely uses of this interface
+ * are if native code suffers from exec or filtration being too costly,
+ * access to raw information, or parsing is an issue.
+ */
+
+struct logger_entry {
+  uint16_t len;      /* length of the payload */
+  uint16_t hdr_size; /* sizeof(struct logger_entry) */
+  int32_t pid;       /* generating process's pid */
+  uint32_t tid;      /* generating process's tid */
+  uint32_t sec;      /* seconds since Epoch */
+  uint32_t nsec;     /* nanoseconds */
+  uint32_t lid;      /* log id of the payload, bottom 4 bits currently */
+  uint32_t uid;      /* generating process's uid */
+};
+
+/*
+ * The maximum size of a log entry which can be read.
+ * An attempt to read less than this amount may result
+ * in read() returning EINVAL.
+ */
+#define LOGGER_ENTRY_MAX_LEN (5 * 1024)
+
+struct log_msg {
+  union {
+    unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1];
+    struct logger_entry entry;
+  } __attribute__((aligned(4)));
+#ifdef __cplusplus
+  uint64_t nsec() const {
+    return static_cast<uint64_t>(entry.sec) * NS_PER_SEC + entry.nsec;
+  }
+  log_id_t id() {
+    return static_cast<log_id_t>(entry.lid);
+  }
+  char* msg() {
+    unsigned short hdr_size = entry.hdr_size;
+    if (hdr_size >= sizeof(struct log_msg) - sizeof(entry)) {
+      return nullptr;
+    }
+    return reinterpret_cast<char*>(buf) + hdr_size;
+  }
+  unsigned int len() { return entry.hdr_size + entry.len; }
+#endif
+};
+
+struct logger;
+
+log_id_t android_logger_get_id(struct logger* logger);
+
+/* Clears the given log buffer. */
+int android_logger_clear(struct logger* logger);
+/* Return the allotted size for the given log buffer. */
+long android_logger_get_log_size(struct logger* logger);
+/* Set the allotted size for the given log buffer. */
+int android_logger_set_log_size(struct logger* logger, unsigned long size);
+/* Return the actual, uncompressed size that can be read from the given log buffer. */
+long android_logger_get_log_readable_size(struct logger* logger);
+/* Return the actual, compressed size that the given log buffer is consuming. */
+long android_logger_get_log_consumed_size(struct logger* logger);
+/* Deprecated.  Always returns '4' regardless of input. */
+int android_logger_get_log_version(struct logger* logger);
+
+struct logger_list;
+
+ssize_t android_logger_get_statistics(struct logger_list* logger_list,
+                                      char* buf, size_t len);
+ssize_t android_logger_get_prune_list(struct logger_list* logger_list,
+                                      char* buf, size_t len);
+int android_logger_set_prune_list(struct logger_list* logger_list, const char* buf, size_t len);
+
+/* The below values are used for the `mode` argument of the below functions. */
+/* Note that 0x00000003 were previously used and should be considered reserved. */
+#define ANDROID_LOG_NONBLOCK 0x00000800
+#define ANDROID_LOG_WRAP 0x40000000 /* Block until buffer about to wrap */
+#define ANDROID_LOG_PSTORE 0x80000000
+
+struct logger_list* android_logger_list_alloc(int mode, unsigned int tail,
+                                              pid_t pid);
+struct logger_list* android_logger_list_alloc_time(int mode, log_time start,
+                                                   pid_t pid);
+void android_logger_list_free(struct logger_list* logger_list);
+/* In the purest sense, the following two are orthogonal interfaces */
+int android_logger_list_read(struct logger_list* logger_list,
+                             struct log_msg* log_msg);
+
+/* Multiple log_id_t opens */
+struct logger* android_logger_open(struct logger_list* logger_list, log_id_t id);
+/* Single log_id_t open */
+struct logger_list* android_logger_list_open(log_id_t id, int mode,
+                                             unsigned int tail, pid_t pid);
+#define android_logger_list_close android_logger_list_free
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_safetynet.h b/go/current/sdk/include/system/logging/liblog/include/log/log_safetynet.h
new file mode 100644
index 0000000..b2604b5
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_safetynet.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define android_errorWriteLog(tag, subTag) \
+  __android_log_error_write(tag, subTag, -1, NULL, 0)
+
+#define android_errorWriteWithInfoLog(tag, subTag, uid, data, dataLen) \
+  __android_log_error_write(tag, subTag, uid, data, dataLen)
+
+int __android_log_error_write(int tag, const char* subTag, int32_t uid,
+                              const char* data, uint32_t dataLen);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_system.h b/go/current/sdk/include/system/logging/liblog/include/log/log_system.h
new file mode 100644
index 0000000..6f40515
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_system.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <android/log.h>
+
+/*
+ * Normally we strip the effects of ALOGV (VERBOSE messages),
+ * LOG_FATAL and LOG_FATAL_IF (FATAL assert messages) from the
+ * release builds be defining NDEBUG.  You can modify this (for
+ * example with "#define LOG_NDEBUG 0" at the top of your source
+ * file) to change that behavior.
+ */
+
+#ifndef LOG_NDEBUG
+#ifdef NDEBUG
+#define LOG_NDEBUG 1
+#else
+#define LOG_NDEBUG 0
+#endif
+#endif
+
+#ifndef __predict_false
+#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
+#endif
+
+/*
+ * Simplified macro to send a verbose system log message using current LOG_TAG.
+ */
+#ifndef SLOGV
+#define __SLOGV(...)                                                          \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_VERBOSE, LOG_TAG, \
+                                 __VA_ARGS__))
+#if LOG_NDEBUG
+#define SLOGV(...)          \
+  do {                      \
+    if (0) {                \
+      __SLOGV(__VA_ARGS__); \
+    }                       \
+  } while (0)
+#else
+#define SLOGV(...) __SLOGV(__VA_ARGS__)
+#endif
+#endif
+
+#ifndef SLOGV_IF
+#if LOG_NDEBUG
+#define SLOGV_IF(cond, ...) ((void)0)
+#else
+#define SLOGV_IF(cond, ...)                                                 \
+  ((__predict_false(cond))                                                  \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_VERBOSE, \
+                                        LOG_TAG, __VA_ARGS__))              \
+       : (void)0)
+#endif
+#endif
+
+/*
+ * Simplified macro to send a debug system log message using current LOG_TAG.
+ */
+#ifndef SLOGD
+#define SLOGD(...)                                                          \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_DEBUG, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGD_IF
+#define SLOGD_IF(cond, ...)                                               \
+  ((__predict_false(cond))                                                \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_DEBUG, \
+                                        LOG_TAG, __VA_ARGS__))            \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an info system log message using current LOG_TAG.
+ */
+#ifndef SLOGI
+#define SLOGI(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_INFO, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGI_IF
+#define SLOGI_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_INFO, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send a warning system log message using current LOG_TAG.
+ */
+#ifndef SLOGW
+#define SLOGW(...)                                                         \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_WARN, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGW_IF
+#define SLOGW_IF(cond, ...)                                              \
+  ((__predict_false(cond))                                               \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_WARN, \
+                                        LOG_TAG, __VA_ARGS__))           \
+       : (void)0)
+#endif
+
+/*
+ * Simplified macro to send an error system log message using current LOG_TAG.
+ */
+#ifndef SLOGE
+#define SLOGE(...)                                                          \
+  ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_ERROR, LOG_TAG, \
+                                 __VA_ARGS__))
+#endif
+
+#ifndef SLOGE_IF
+#define SLOGE_IF(cond, ...)                                               \
+  ((__predict_false(cond))                                                \
+       ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_ERROR, \
+                                        LOG_TAG, __VA_ARGS__))            \
+       : (void)0)
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/log_time.h b/go/current/sdk/include/system/logging/liblog/include/log/log_time.h
new file mode 100644
index 0000000..f50764d
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/log_time.h
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2005-2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <time.h>
+
+/* struct log_time is a wire-format variant of struct timespec */
+#define NS_PER_SEC 1000000000ULL
+#define US_PER_SEC 1000000ULL
+#define MS_PER_SEC 1000ULL
+
+#define LOG_TIME_SEC(t) ((t)->tv_sec)
+/* next power of two after NS_PER_SEC */
+#define LOG_TIME_NSEC(t) ((t)->tv_nsec & (UINT32_MAX >> 2))
+
+#ifdef __cplusplus
+
+extern "C" {
+
+struct log_time {
+ public:
+  uint32_t tv_sec = 0; /* good to Feb 5 2106 */
+  uint32_t tv_nsec = 0;
+
+  static constexpr timespec EPOCH = {0, 0};
+
+  log_time() {}
+  explicit log_time(const timespec& T)
+      : tv_sec(static_cast<uint32_t>(T.tv_sec)), tv_nsec(static_cast<uint32_t>(T.tv_nsec)) {}
+  explicit log_time(uint32_t sec, uint32_t nsec = 0)
+      : tv_sec(sec), tv_nsec(nsec) {
+  }
+#ifdef __linux__
+  explicit log_time(clockid_t id) {
+    timespec T;
+    clock_gettime(id, &T);
+    tv_sec = static_cast<uint32_t>(T.tv_sec);
+    tv_nsec = static_cast<uint32_t>(T.tv_nsec);
+  }
+#endif
+  /* timespec */
+  bool operator==(const timespec& T) const {
+    return (tv_sec == static_cast<uint32_t>(T.tv_sec)) &&
+           (tv_nsec == static_cast<uint32_t>(T.tv_nsec));
+  }
+  bool operator!=(const timespec& T) const {
+    return !(*this == T);
+  }
+  bool operator<(const timespec& T) const {
+    return (tv_sec < static_cast<uint32_t>(T.tv_sec)) ||
+           ((tv_sec == static_cast<uint32_t>(T.tv_sec)) &&
+            (tv_nsec < static_cast<uint32_t>(T.tv_nsec)));
+  }
+  bool operator>=(const timespec& T) const {
+    return !(*this < T);
+  }
+  bool operator>(const timespec& T) const {
+    return (tv_sec > static_cast<uint32_t>(T.tv_sec)) ||
+           ((tv_sec == static_cast<uint32_t>(T.tv_sec)) &&
+            (tv_nsec > static_cast<uint32_t>(T.tv_nsec)));
+  }
+  bool operator<=(const timespec& T) const {
+    return !(*this > T);
+  }
+
+  /* log_time */
+  bool operator==(const log_time& T) const {
+    return (tv_sec == T.tv_sec) && (tv_nsec == T.tv_nsec);
+  }
+  bool operator!=(const log_time& T) const {
+    return !(*this == T);
+  }
+  bool operator<(const log_time& T) const {
+    return (tv_sec < T.tv_sec) ||
+           ((tv_sec == T.tv_sec) && (tv_nsec < T.tv_nsec));
+  }
+  bool operator>=(const log_time& T) const {
+    return !(*this < T);
+  }
+  bool operator>(const log_time& T) const {
+    return (tv_sec > T.tv_sec) ||
+           ((tv_sec == T.tv_sec) && (tv_nsec > T.tv_nsec));
+  }
+  bool operator<=(const log_time& T) const {
+    return !(*this > T);
+  }
+
+  log_time operator-=(const log_time& T) {
+    // No concept of negative time, clamp to EPOCH
+    if (*this <= T) {
+      return *this = log_time(EPOCH);
+    }
+
+    if (this->tv_nsec < T.tv_nsec) {
+      --this->tv_sec;
+      this->tv_nsec = NS_PER_SEC + this->tv_nsec - T.tv_nsec;
+    } else {
+      this->tv_nsec -= T.tv_nsec;
+    }
+    this->tv_sec -= T.tv_sec;
+
+    return *this;
+  }
+  log_time operator-(const log_time& T) const {
+    log_time local(*this);
+    return local -= T;
+  }
+  log_time operator+=(const log_time& T) {
+    this->tv_nsec += T.tv_nsec;
+    if (this->tv_nsec >= NS_PER_SEC) {
+      this->tv_nsec -= NS_PER_SEC;
+      ++this->tv_sec;
+    }
+    this->tv_sec += T.tv_sec;
+
+    return *this;
+  }
+  log_time operator+(const log_time& T) const {
+    log_time local(*this);
+    return local += T;
+  }
+
+  uint64_t nsec() const {
+    return static_cast<uint64_t>(tv_sec) * NS_PER_SEC + tv_nsec;
+  }
+  uint64_t usec() const {
+    return static_cast<uint64_t>(tv_sec) * US_PER_SEC +
+           tv_nsec / (NS_PER_SEC / US_PER_SEC);
+  }
+  uint64_t msec() const {
+    return static_cast<uint64_t>(tv_sec) * MS_PER_SEC +
+           tv_nsec / (NS_PER_SEC / MS_PER_SEC);
+  }
+
+  /* Add %#q for the fraction of a second to the standard library functions */
+  char* strptime(const char* s, const char* format);
+} __attribute__((__packed__));
+}
+
+#else /* __cplusplus */
+
+typedef struct log_time {
+  uint32_t tv_sec;
+  uint32_t tv_nsec;
+} __attribute__((__packed__)) log_time;
+
+#endif /* __cplusplus */
diff --git a/go/current/sdk/include/system/logging/liblog/include/log/logprint.h b/go/current/sdk/include/system/logging/liblog/include/log/logprint.h
new file mode 100644
index 0000000..0cff640
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/log/logprint.h
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#include <android/log.h>
+#include <log/event_tag_map.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+  /* Verbs */
+  FORMAT_OFF = 0,
+  FORMAT_BRIEF,
+  FORMAT_PROCESS,
+  FORMAT_TAG,
+  FORMAT_THREAD,
+  FORMAT_RAW,
+  FORMAT_TIME,
+  FORMAT_THREADTIME,
+  FORMAT_LONG,
+  /* Adverbs. The following are modifiers to above format verbs */
+  FORMAT_MODIFIER_COLOR,     /* converts priority to color */
+  FORMAT_MODIFIER_TIME_USEC, /* switches from msec to usec time precision */
+  FORMAT_MODIFIER_PRINTABLE, /* converts non-printable to printable escapes */
+  FORMAT_MODIFIER_YEAR,      /* Adds year to date */
+  FORMAT_MODIFIER_ZONE,      /* Adds zone to date, + UTC */
+  FORMAT_MODIFIER_EPOCH,     /* Print time as seconds since Jan 1 1970 */
+  FORMAT_MODIFIER_MONOTONIC, /* Print cpu time as seconds since start */
+  FORMAT_MODIFIER_UID,       /* Adds uid */
+  FORMAT_MODIFIER_DESCRIPT,  /* Adds descriptive */
+  /* private, undocumented */
+  FORMAT_MODIFIER_TIME_NSEC, /* switches from msec to nsec time precision */
+} AndroidLogPrintFormat;
+
+typedef struct AndroidLogFormat_t AndroidLogFormat;
+
+typedef struct AndroidLogEntry_t {
+  time_t tv_sec;
+  long tv_nsec;
+  android_LogPriority priority;
+  int32_t uid;
+  int32_t pid;
+  int32_t tid;
+  const char* tag;
+  size_t tagLen;
+  size_t messageLen;
+  const char* message;
+} AndroidLogEntry;
+
+AndroidLogFormat* android_log_format_new();
+
+void android_log_format_free(AndroidLogFormat* p_format);
+
+/* currently returns 0 if format is a modifier, 1 if not */
+int android_log_setPrintFormat(AndroidLogFormat* p_format,
+                               AndroidLogPrintFormat format);
+
+/**
+ * Returns FORMAT_OFF on invalid string
+ */
+AndroidLogPrintFormat android_log_formatFromString(const char* s);
+
+/**
+ * filterExpression: a single filter expression
+ * eg "AT:d"
+ *
+ * returns 0 on success and -1 on invalid expression
+ *
+ * Assumes single threaded execution
+ *
+ */
+
+int android_log_addFilterRule(AndroidLogFormat* p_format,
+                              const char* filterExpression);
+
+/**
+ * filterString: a whitespace-separated set of filter expressions
+ * eg "AT:d *:i"
+ *
+ * returns 0 on success and -1 on invalid expression
+ *
+ * Assumes single threaded execution
+ *
+ */
+
+int android_log_addFilterString(AndroidLogFormat* p_format,
+                                const char* filterString);
+
+/**
+ * returns 1 if this log line should be printed based on its priority
+ * and tag, and 0 if it should not
+ */
+int android_log_shouldPrintLine(AndroidLogFormat* p_format, const char* tag,
+                                android_LogPriority pri);
+
+/**
+ * Splits a wire-format buffer into an AndroidLogEntry
+ * entry allocated by caller. Pointers will point directly into buf
+ *
+ * Returns 0 on success and -1 on invalid wire format (entry will be
+ * in unspecified state)
+ */
+int android_log_processLogBuffer(struct logger_entry* buf,
+                                 AndroidLogEntry* entry);
+
+/**
+ * Like android_log_processLogBuffer, but for binary logs.
+ *
+ * If "map" is non-NULL, it will be used to convert the log tag number
+ * into a string.
+ */
+int android_log_processBinaryLogBuffer(struct logger_entry* buf,
+                                       AndroidLogEntry* entry,
+                                       const EventTagMap* map, char* messageBuf,
+                                       int messageBufLen);
+
+/**
+ * Formats a log message into a buffer
+ *
+ * Uses defaultBuffer if it can, otherwise malloc()'s a new buffer
+ * If return value != defaultBuffer, caller must call free()
+ * Returns NULL on malloc error
+ */
+
+char* android_log_formatLogLine(AndroidLogFormat* p_format, char* defaultBuffer,
+                                size_t defaultBufferSize,
+                                const AndroidLogEntry* p_line,
+                                size_t* p_outLength);
+
+/**
+ * Formats a log message into a FILE*.
+ */
+size_t android_log_printLogLine(AndroidLogFormat* p_format, FILE* fp, const AndroidLogEntry* entry);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/go/current/sdk/include/system/logging/liblog/include/private/android_logger.h b/go/current/sdk/include/system/logging/liblog/include/private/android_logger.h
new file mode 100644
index 0000000..d414b07
--- /dev/null
+++ b/go/current/sdk/include/system/logging/liblog/include/private/android_logger.h
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* This file is used to define the internal protocol for the Android Logger */
+
+#pragma once
+
+/* Android private interfaces */
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+#include <string>
+#endif
+
+#include <log/log.h>
+#include <log/log_event_list.h>
+
+#define LOGGER_MAGIC 'l'
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/* Header Structure to pstore */
+typedef struct __attribute__((__packed__)) {
+  uint8_t magic;
+  uint16_t len;
+  uint16_t uid;
+  uint16_t pid;
+} android_pmsg_log_header_t;
+
+/* Header Structure to logd, and second header for pstore */
+typedef struct __attribute__((__packed__)) {
+  uint8_t id;
+  uint16_t tid;
+  log_time realtime;
+} android_log_header_t;
+
+/* Event Header Structure to logd */
+typedef struct __attribute__((__packed__)) {
+  int32_t tag;  // Little Endian Order
+} android_event_header_t;
+
+// Event payload EVENT_TYPE_LIST
+typedef struct __attribute__((__packed__)) {
+  int8_t type;  // EVENT_TYPE_LIST
+  int8_t element_count;
+} android_event_list_t;
+
+// Event payload EVENT_TYPE_FLOAT
+typedef struct __attribute__((__packed__)) {
+  int8_t type;  // EVENT_TYPE_FLOAT
+  float data;
+} android_event_float_t;
+
+/* Event payload EVENT_TYPE_INT */
+typedef struct __attribute__((__packed__)) {
+  int8_t type;   // EVENT_TYPE_INT
+  int32_t data;  // Little Endian Order
+} android_event_int_t;
+
+/* Event with single EVENT_TYPE_INT */
+typedef struct __attribute__((__packed__)) {
+  android_event_header_t header;
+  android_event_int_t payload;
+} android_log_event_int_t;
+
+/* Event payload EVENT_TYPE_LONG */
+typedef struct __attribute__((__packed__)) {
+  int8_t type;   // EVENT_TYPE_LONG
+  int64_t data;  // Little Endian Order
+} android_event_long_t;
+
+/* Event with single EVENT_TYPE_LONG */
+typedef struct __attribute__((__packed__)) {
+  android_event_header_t header;
+  android_event_long_t payload;
+} android_log_event_long_t;
+
+/*
+ * Event payload EVENT_TYPE_STRING
+ *
+ * Danger: do not embed this structure into another structure.
+ * This structure uses a flexible array member, and when
+ * compiled using g++, __builtin_object_size(data, 1) returns
+ * a bad value. This is possibly a g++ bug, or a bug due to
+ * the fact that flexible array members are not supported
+ * in C++.
+ * http://stackoverflow.com/questions/4412749/are-flexible-array-members-valid-in-c
+ */
+
+typedef struct __attribute__((__packed__)) {
+  int8_t type;     // EVENT_TYPE_STRING;
+  int32_t length;  // Little Endian Order
+  char data[];
+} android_event_string_t;
+
+/* Event with single EVENT_TYPE_STRING */
+typedef struct __attribute__((__packed__)) {
+  android_event_header_t header;
+  int8_t type;     // EVENT_TYPE_STRING;
+  int32_t length;  // Little Endian Order
+  char data[];
+} android_log_event_string_t;
+
+#define ANDROID_LOG_PMSG_FILE_MAX_SEQUENCE 256 /* 1MB file */
+#define ANDROID_LOG_PMSG_FILE_SEQUENCE 1000
+
+ssize_t __android_log_pmsg_file_write(log_id_t logId, char prio,
+                                      const char* filename, const char* buf,
+                                      size_t len);
+
+#define ANDROID_LOG_ANY ANDROID_LOG_UNKNOWN
+
+/* first 5 arguments match __android_log_msg_file_write, a cast is safe */
+typedef ssize_t (*__android_log_pmsg_file_read_fn)(log_id_t logId, char prio,
+                                                   const char* filename,
+                                                   const char* buf, size_t len,
+                                                   void* arg);
+
+ssize_t __android_log_pmsg_file_read(log_id_t logId, char prio,
+                                     const char* prefix,
+                                     __android_log_pmsg_file_read_fn fn,
+                                     void* arg);
+
+int __android_log_security_bwrite(int32_t tag, const void* payload, size_t len);
+int __android_log_security_bswrite(int32_t tag, const char* payload);
+int __android_log_security(); /* Device Owner is present */
+
+/* Retrieve the composed event buffer */
+int android_log_write_list_buffer(android_log_context ctx, const char** msg);
+
+#if defined(__cplusplus)
+}
+#endif
diff --git a/go/current/sdk/java/art.module.api.annotations.for.system.modules.jar b/go/current/sdk/java/art.module.api.annotations.for.system.modules.jar
index e0eb462..b237373 100644
--- a/go/current/sdk/java/art.module.api.annotations.for.system.modules.jar
+++ b/go/current/sdk/java/art.module.api.annotations.for.system.modules.jar
Binary files differ
diff --git a/go/current/sdk/java/art.module.intra.core.api.stubs.jar b/go/current/sdk/java/art.module.intra.core.api.stubs.jar
index 0cde291..9fc03f9 100644
--- a/go/current/sdk/java/art.module.intra.core.api.stubs.jar
+++ b/go/current/sdk/java/art.module.intra.core.api.stubs.jar
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86/lib/libdexfile.so b/go/current/sdk/linux_glibc/x86/lib/libdexfile.so
index cbe6585..da55275 100755
--- a/go/current/sdk/linux_glibc/x86/lib/libdexfile.so
+++ b/go/current/sdk/linux_glibc/x86/lib/libdexfile.so
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86/lib/libdexfile_static.a b/go/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
index f2cf145..88c1101 100644
--- a/go/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
+++ b/go/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86/lib/libdexfile_support.a b/go/current/sdk/linux_glibc/x86/lib/libdexfile_support.a
index 257fd3f..3aa2825 100644
--- a/go/current/sdk/linux_glibc/x86/lib/libdexfile_support.a
+++ b/go/current/sdk/linux_glibc/x86/lib/libdexfile_support.a
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86/lib/libnativebridge.so b/go/current/sdk/linux_glibc/x86/lib/libnativebridge.so
index 5d50e00..b16c081 100755
--- a/go/current/sdk/linux_glibc/x86/lib/libnativebridge.so
+++ b/go/current/sdk/linux_glibc/x86/lib/libnativebridge.so
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a b/go/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a
index c74939b..329bb01 100644
--- a/go/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a
+++ b/go/current/sdk/linux_glibc/x86/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86/lib/libnativeloader.so b/go/current/sdk/linux_glibc/x86/lib/libnativeloader.so
index a790f09..eef238a 100755
--- a/go/current/sdk/linux_glibc/x86/lib/libnativeloader.so
+++ b/go/current/sdk/linux_glibc/x86/lib/libnativeloader.so
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86/lib/libsigchain.so b/go/current/sdk/linux_glibc/x86/lib/libsigchain.so
index 537e7f1..02f7f99 100755
--- a/go/current/sdk/linux_glibc/x86/lib/libsigchain.so
+++ b/go/current/sdk/linux_glibc/x86/lib/libsigchain.so
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86_64/lib/libdexfile.so b/go/current/sdk/linux_glibc/x86_64/lib/libdexfile.so
index e44bf51..c6711f8 100755
--- a/go/current/sdk/linux_glibc/x86_64/lib/libdexfile.so
+++ b/go/current/sdk/linux_glibc/x86_64/lib/libdexfile.so
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a b/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
index f34bd47..a817439 100644
--- a/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
+++ b/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a b/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a
index 1392d10..d55ed71 100644
--- a/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a
+++ b/go/current/sdk/linux_glibc/x86_64/lib/libdexfile_support.a
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so b/go/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so
index 52227e8..0fc5e3a 100755
--- a/go/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so
+++ b/go/current/sdk/linux_glibc/x86_64/lib/libnativebridge.so
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so b/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
index 9e85306..524cf5b 100755
--- a/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
+++ b/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper.so
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a b/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a
index 635c369..33b0ead 100644
--- a/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a
+++ b/go/current/sdk/linux_glibc/x86_64/lib/libnativehelper_lazy.a
Binary files differ
diff --git a/go/current/sdk/linux_glibc/x86_64/lib/libsigchain.so b/go/current/sdk/linux_glibc/x86_64/lib/libsigchain.so
index a99c1e1..9f6195c 100755
--- a/go/current/sdk/linux_glibc/x86_64/lib/libsigchain.so
+++ b/go/current/sdk/linux_glibc/x86_64/lib/libsigchain.so
Binary files differ
diff --git a/go/current/sdk/sdk_library/module-lib/art-stubs.jar b/go/current/sdk/sdk_library/module-lib/art-stubs.jar
index a7f78a6..0b82ebf 100644
--- a/go/current/sdk/sdk_library/module-lib/art-stubs.jar
+++ b/go/current/sdk/sdk_library/module-lib/art-stubs.jar
Binary files differ
diff --git a/go/current/sdk/sdk_library/module-lib/art.srcjar b/go/current/sdk/sdk_library/module-lib/art.srcjar
index 1e8abbf..0945f56 100644
--- a/go/current/sdk/sdk_library/module-lib/art.srcjar
+++ b/go/current/sdk/sdk_library/module-lib/art.srcjar
Binary files differ
diff --git a/go/current/sdk/sdk_library/module-lib/art.txt b/go/current/sdk/sdk_library/module-lib/art.txt
index ffb05b3..c9b68d5 100644
--- a/go/current/sdk/sdk_library/module-lib/art.txt
+++ b/go/current/sdk/sdk_library/module-lib/art.txt
@@ -451,7 +451,48 @@
   public class DirectByteBuffer extends java.nio.MappedByteBuffer {
     ctor public DirectByteBuffer(int, long, java.io.FileDescriptor, Runnable, boolean);
     method public final long address();
+    method public final java.nio.CharBuffer asCharBuffer();
+    method public final java.nio.DoubleBuffer asDoubleBuffer();
+    method public final java.nio.FloatBuffer asFloatBuffer();
+    method public final java.nio.IntBuffer asIntBuffer();
+    method public final java.nio.LongBuffer asLongBuffer();
+    method public final java.nio.ByteBuffer asReadOnlyBuffer();
+    method public final java.nio.ShortBuffer asShortBuffer();
+    method public final java.nio.ByteBuffer compact();
+    method public final java.nio.MappedByteBuffer duplicate();
+    method public final byte get();
+    method public final byte get(int);
+    method public final char getChar();
+    method public final char getChar(int);
+    method public final double getDouble();
+    method public final double getDouble(int);
+    method public final float getFloat();
+    method public final float getFloat(int);
+    method public int getInt();
+    method public int getInt(int);
+    method public final long getLong();
+    method public final long getLong(int);
+    method public final short getShort();
+    method public final short getShort(int);
+    method public final boolean isDirect();
+    method public final boolean isReadOnly();
+    method public final java.nio.ByteBuffer put(byte);
+    method public final java.nio.ByteBuffer put(int, byte);
+    method public final java.nio.ByteBuffer putChar(char);
+    method public final java.nio.ByteBuffer putChar(int, char);
+    method public final java.nio.ByteBuffer putDouble(double);
+    method public final java.nio.ByteBuffer putDouble(int, double);
+    method public final java.nio.ByteBuffer putFloat(float);
+    method public final java.nio.ByteBuffer putFloat(int, float);
+    method public final java.nio.ByteBuffer putInt(int);
+    method public final java.nio.ByteBuffer putInt(int, int);
+    method public final java.nio.ByteBuffer putLong(long);
+    method public final java.nio.ByteBuffer putLong(int, long);
+    method public final java.nio.ByteBuffer putShort(short);
+    method public final java.nio.ByteBuffer putShort(int, short);
     method public final void setAccessible(boolean);
+    method public final java.nio.MappedByteBuffer slice();
+    method public final java.nio.MappedByteBuffer slice(int, int);
   }
 
   public final class NIOAccess {
@@ -509,6 +550,10 @@
     method public javax.crypto.CipherSpi getCurrentSpi();
   }
 
+  public class KeyAgreement {
+    method public javax.crypto.KeyAgreementSpi getCurrentSpi();
+  }
+
   public class Mac implements java.lang.Cloneable {
     method public javax.crypto.MacSpi getCurrentSpi();
   }
diff --git a/go/current/sdk/sdk_library/public/art-stubs.jar b/go/current/sdk/sdk_library/public/art-stubs.jar
index e47c65e..51356fd 100644
--- a/go/current/sdk/sdk_library/public/art-stubs.jar
+++ b/go/current/sdk/sdk_library/public/art-stubs.jar
Binary files differ
diff --git a/go/current/sdk/sdk_library/public/art.srcjar b/go/current/sdk/sdk_library/public/art.srcjar
index 18fde14..e1dd7e3 100644
--- a/go/current/sdk/sdk_library/public/art.srcjar
+++ b/go/current/sdk/sdk_library/public/art.srcjar
Binary files differ
diff --git a/go/current/sdk/sdk_library/public/art.txt b/go/current/sdk/sdk_library/public/art.txt
index a61a723..f1bbdf2 100644
--- a/go/current/sdk/sdk_library/public/art.txt
+++ b/go/current/sdk/sdk_library/public/art.txt
@@ -350,6 +350,7 @@
     field public static final int IPV6_MULTICAST_HOPS;
     field public static final int IPV6_MULTICAST_IF;
     field public static final int IPV6_MULTICAST_LOOP;
+    field public static final int IPV6_PKTINFO;
     field public static final int IPV6_RECVDSTOPTS;
     field public static final int IPV6_RECVHOPLIMIT;
     field public static final int IPV6_RECVHOPOPTS;
@@ -409,6 +410,7 @@
     field public static final int O_SYNC;
     field public static final int O_TRUNC;
     field public static final int O_WRONLY;
+    field public static final int PACKET_IGNORE_OUTGOING;
     field public static final int POLLERR;
     field public static final int POLLHUP;
     field public static final int POLLIN;
@@ -482,6 +484,7 @@
     field public static final int SOCK_RAW;
     field public static final int SOCK_SEQPACKET;
     field public static final int SOCK_STREAM;
+    field public static final int SOL_PACKET;
     field public static final int SOL_SOCKET;
     field public static final int SOL_UDP;
     field public static final int SO_BINDTODEVICE;
@@ -2395,6 +2398,7 @@
     method @NonNull public default java.util.stream.IntStream chars();
     method @NonNull public default java.util.stream.IntStream codePoints();
     method public static int compare(@NonNull CharSequence, @NonNull CharSequence);
+    method public default boolean isEmpty();
     method public int length();
     method @NonNull public CharSequence subSequence(int, int);
     method @NonNull public String toString();
@@ -2412,6 +2416,7 @@
     method public static int codePointBefore(char[], int, int);
     method public static int codePointCount(@NonNull CharSequence, int, int);
     method public static int codePointCount(char[], int, int);
+    method public static int codePointOf(@NonNull String);
     method public static int compare(char, char);
     method public int compareTo(@NonNull Character);
     method public static int digit(char, int);
@@ -2480,6 +2485,7 @@
     method public static char toLowerCase(char);
     method public static int toLowerCase(int);
     method @NonNull public static String toString(char);
+    method @NonNull public static String toString(int);
     method public static char toTitleCase(char);
     method public static int toTitleCase(int);
     method public static char toUpperCase(char);
@@ -2880,7 +2886,7 @@
   }
 
   public enum Character.UnicodeScript {
-    method @NonNull public static java.lang.Character.UnicodeScript forName(@NonNull String);
+    method @NonNull public static final java.lang.Character.UnicodeScript forName(@NonNull String);
     method @NonNull public static java.lang.Character.UnicodeScript of(int);
     enum_constant public static final java.lang.Character.UnicodeScript ADLAM;
     enum_constant public static final java.lang.Character.UnicodeScript AHOM;
@@ -3144,7 +3150,7 @@
     method protected java.net.URL findResource(String);
     method protected java.util.Enumeration<java.net.URL> findResources(String) throws java.io.IOException;
     method protected final Class<?> findSystemClass(String) throws java.lang.ClassNotFoundException;
-    method protected Package getPackage(String);
+    method @Deprecated protected Package getPackage(String);
     method protected Package[] getPackages();
     method public final ClassLoader getParent();
     method public java.net.URL getResource(String);
@@ -4074,7 +4080,6 @@
     method public int indexOf(@NonNull String, int);
     method @NonNull public String intern();
     method public boolean isBlank();
-    method public boolean isEmpty();
     method @NonNull public static String join(@NonNull CharSequence, @Nullable java.lang.CharSequence...);
     method @NonNull public static String join(@NonNull CharSequence, @NonNull Iterable<? extends java.lang.CharSequence>);
     method public int lastIndexOf(int);
@@ -4106,6 +4111,7 @@
     method public char[] toCharArray();
     method @NonNull public String toLowerCase(@NonNull java.util.Locale);
     method @NonNull public String toLowerCase();
+    method @NonNull public String toString();
     method @NonNull public String toUpperCase(@NonNull java.util.Locale);
     method @NonNull public String toUpperCase();
     method public <R> R transform(@NonNull java.util.function.Function<? super java.lang.String,? extends R>);
@@ -4177,6 +4183,7 @@
     method @NonNull public CharSequence subSequence(int, int);
     method @NonNull public String substring(int);
     method @NonNull public String substring(int, int);
+    method @NonNull public String toString();
     method public void trimToSize();
   }
 
@@ -4234,6 +4241,7 @@
     method @NonNull public CharSequence subSequence(int, int);
     method @NonNull public String substring(int);
     method @NonNull public String substring(int, int);
+    method @NonNull public String toString();
     method public void trimToSize();
   }
 
@@ -4561,8 +4569,8 @@
     method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
     method public java.lang.invoke.MethodHandle asVarargsCollector(Class<?>);
     method public java.lang.invoke.MethodHandle bindTo(Object);
-    method public final Object invoke(java.lang.Object...) throws java.lang.Throwable;
-    method public final Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
+    method public final native Object invoke(java.lang.Object...) throws java.lang.Throwable;
+    method public final native Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
     method public Object invokeWithArguments(java.lang.Object...) throws java.lang.Throwable;
     method public Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
     method public boolean isVarargsCollector();
@@ -4735,45 +4743,45 @@
   public abstract class VarHandle {
     method public final java.lang.invoke.MethodType accessModeType(java.lang.invoke.VarHandle.AccessMode);
     method public static void acquireFence();
-    method public final Object compareAndExchange(java.lang.Object...);
-    method public final Object compareAndExchangeAcquire(java.lang.Object...);
-    method public final Object compareAndExchangeRelease(java.lang.Object...);
-    method public final boolean compareAndSet(java.lang.Object...);
+    method public final native Object compareAndExchange(java.lang.Object...);
+    method public final native Object compareAndExchangeAcquire(java.lang.Object...);
+    method public final native Object compareAndExchangeRelease(java.lang.Object...);
+    method public final native boolean compareAndSet(java.lang.Object...);
     method public final java.util.List<java.lang.Class<?>> coordinateTypes();
     method public static void fullFence();
-    method public final Object get(java.lang.Object...);
-    method public final Object getAcquire(java.lang.Object...);
-    method public final Object getAndAdd(java.lang.Object...);
-    method public final Object getAndAddAcquire(java.lang.Object...);
-    method public final Object getAndAddRelease(java.lang.Object...);
-    method public final Object getAndBitwiseAnd(java.lang.Object...);
-    method public final Object getAndBitwiseAndAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseAndRelease(java.lang.Object...);
-    method public final Object getAndBitwiseOr(java.lang.Object...);
-    method public final Object getAndBitwiseOrAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseOrRelease(java.lang.Object...);
-    method public final Object getAndBitwiseXor(java.lang.Object...);
-    method public final Object getAndBitwiseXorAcquire(java.lang.Object...);
-    method public final Object getAndBitwiseXorRelease(java.lang.Object...);
-    method public final Object getAndSet(java.lang.Object...);
-    method public final Object getAndSetAcquire(java.lang.Object...);
-    method public final Object getAndSetRelease(java.lang.Object...);
-    method public final Object getOpaque(java.lang.Object...);
-    method public final Object getVolatile(java.lang.Object...);
+    method public final native Object get(java.lang.Object...);
+    method public final native Object getAcquire(java.lang.Object...);
+    method public final native Object getAndAdd(java.lang.Object...);
+    method public final native Object getAndAddAcquire(java.lang.Object...);
+    method public final native Object getAndAddRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseAnd(java.lang.Object...);
+    method public final native Object getAndBitwiseAndAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseAndRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseOr(java.lang.Object...);
+    method public final native Object getAndBitwiseOrAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseOrRelease(java.lang.Object...);
+    method public final native Object getAndBitwiseXor(java.lang.Object...);
+    method public final native Object getAndBitwiseXorAcquire(java.lang.Object...);
+    method public final native Object getAndBitwiseXorRelease(java.lang.Object...);
+    method public final native Object getAndSet(java.lang.Object...);
+    method public final native Object getAndSetAcquire(java.lang.Object...);
+    method public final native Object getAndSetRelease(java.lang.Object...);
+    method public final native Object getOpaque(java.lang.Object...);
+    method public final native Object getVolatile(java.lang.Object...);
     method public final boolean isAccessModeSupported(java.lang.invoke.VarHandle.AccessMode);
     method public static void loadLoadFence();
     method public static void releaseFence();
-    method public final void set(java.lang.Object...);
-    method public final void setOpaque(java.lang.Object...);
-    method public final void setRelease(java.lang.Object...);
-    method public final void setVolatile(java.lang.Object...);
+    method public final native void set(java.lang.Object...);
+    method public final native void setOpaque(java.lang.Object...);
+    method public final native void setRelease(java.lang.Object...);
+    method public final native void setVolatile(java.lang.Object...);
     method public static void storeStoreFence();
     method public final java.lang.invoke.MethodHandle toMethodHandle(java.lang.invoke.VarHandle.AccessMode);
     method public final Class<?> varType();
-    method public final boolean weakCompareAndSet(java.lang.Object...);
-    method public final boolean weakCompareAndSetAcquire(java.lang.Object...);
-    method public final boolean weakCompareAndSetPlain(java.lang.Object...);
-    method public final boolean weakCompareAndSetRelease(java.lang.Object...);
+    method public final native boolean weakCompareAndSet(java.lang.Object...);
+    method public final native boolean weakCompareAndSetAcquire(java.lang.Object...);
+    method public final native boolean weakCompareAndSetPlain(java.lang.Object...);
+    method public final native boolean weakCompareAndSetRelease(java.lang.Object...);
   }
 
   public enum VarHandle.AccessMode {
@@ -6312,6 +6320,7 @@
     method public abstract java.nio.CharBuffer slice();
     method public abstract java.nio.CharBuffer slice(int, int);
     method public abstract java.nio.CharBuffer subSequence(int, int);
+    method public String toString();
     method public static java.nio.CharBuffer wrap(char[], int, int);
     method public static java.nio.CharBuffer wrap(char[]);
     method public static java.nio.CharBuffer wrap(CharSequence, int, int);
@@ -6427,9 +6436,16 @@
   }
 
   public abstract class MappedByteBuffer extends java.nio.ByteBuffer {
+    method public final java.nio.Buffer clear();
+    method public final java.nio.Buffer flip();
     method public final java.nio.MappedByteBuffer force();
     method public final boolean isLoaded();
+    method public final java.nio.Buffer limit(int);
     method public final java.nio.MappedByteBuffer load();
+    method public final java.nio.Buffer mark();
+    method public final java.nio.Buffer position(int);
+    method public final java.nio.Buffer reset();
+    method public final java.nio.Buffer rewind();
     method public abstract java.nio.MappedByteBuffer slice(int, int);
   }
 
@@ -7590,6 +7606,7 @@
   }
 
   public interface PosixFileAttributeView extends java.nio.file.attribute.BasicFileAttributeView java.nio.file.attribute.FileOwnerAttributeView {
+    method public String name();
     method public java.nio.file.attribute.PosixFileAttributes readAttributes() throws java.io.IOException;
     method public void setGroup(java.nio.file.attribute.GroupPrincipal) throws java.io.IOException;
     method public void setPermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>) throws java.io.IOException;
@@ -7884,10 +7901,12 @@
     method @Deprecated public final String getName();
     method @Deprecated public java.security.PublicKey getPublicKey();
     method @Deprecated public final java.security.IdentityScope getScope();
+    method @Deprecated public int hashCode();
     method @Deprecated protected boolean identityEquals(java.security.Identity);
     method @Deprecated public void removeCertificate(java.security.Certificate) throws java.security.KeyManagementException;
     method @Deprecated public void setInfo(String);
     method @Deprecated public void setPublicKey(java.security.PublicKey) throws java.security.KeyManagementException;
+    method @Deprecated public String toString();
     method @Deprecated public String toString(boolean);
   }
 
@@ -8271,32 +8290,13 @@
 
   public abstract class Provider extends java.util.Properties {
     ctor protected Provider(String, double, String);
-    method public Object compute(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public Object computeIfAbsent(Object, java.util.function.Function<? super java.lang.Object,?>);
-    method public Object computeIfPresent(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public java.util.Enumeration<java.lang.Object> elements();
-    method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
-    method public void forEach(java.util.function.BiConsumer<? super java.lang.Object,? super java.lang.Object>);
-    method public Object get(Object);
     method public String getInfo();
     method public String getName();
-    method public Object getOrDefault(Object, Object);
     method public java.security.Provider.Service getService(String, String);
     method public java.util.Set<java.security.Provider.Service> getServices();
     method public double getVersion();
-    method public java.util.Set<java.lang.Object> keySet();
-    method public java.util.Enumeration<java.lang.Object> keys();
-    method public Object merge(Object, Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public Object put(Object, Object);
-    method public void putAll(java.util.Map<?,?>);
-    method public Object putIfAbsent(Object, Object);
     method protected void putService(java.security.Provider.Service);
-    method public Object remove(Object);
     method protected void removeService(java.security.Provider.Service);
-    method public boolean replace(Object, Object, Object);
-    method public Object replace(Object, Object);
-    method public void replaceAll(java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
-    method public java.util.Collection<java.lang.Object> values();
   }
 
   public static class Provider.Service {
@@ -9098,12 +9098,12 @@
 
   public interface DSAPrivateKey extends java.security.interfaces.DSAKey java.security.PrivateKey {
     method public java.math.BigInteger getX();
-    field public static final long serialVersionUID = 7776497482533790279L; // 0x6bebab423b256247L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 7776497482533790279L; // 0x6bebab423b256247L
   }
 
   public interface DSAPublicKey extends java.security.interfaces.DSAKey java.security.PublicKey {
     method public java.math.BigInteger getY();
-    field public static final long serialVersionUID = 1234526332779022332L; // 0x1121eb28ab28c7fcL
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 1234526332779022332L; // 0x1121eb28ab28c7fcL
   }
 
   public interface ECKey {
@@ -9112,12 +9112,12 @@
 
   public interface ECPrivateKey extends java.security.PrivateKey java.security.interfaces.ECKey {
     method public java.math.BigInteger getS();
-    field public static final long serialVersionUID = -7896394956925609184L; // 0x926a5e9fa2435b20L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -7896394956925609184L; // 0x926a5e9fa2435b20L
   }
 
   public interface ECPublicKey extends java.security.PublicKey java.security.interfaces.ECKey {
     method public java.security.spec.ECPoint getW();
-    field public static final long serialVersionUID = -3314988629879632826L; // 0xd1fecb679990cc46L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -3314988629879632826L; // 0xd1fecb679990cc46L
   }
 
   public interface EdECKey {
@@ -9134,6 +9134,7 @@
 
   public interface RSAKey {
     method public java.math.BigInteger getModulus();
+    method public default java.security.spec.AlgorithmParameterSpec getParams();
   }
 
   public interface RSAMultiPrimePrivateCrtKey extends java.security.interfaces.RSAPrivateKey {
@@ -9144,7 +9145,7 @@
     method public java.math.BigInteger getPrimeP();
     method public java.math.BigInteger getPrimeQ();
     method public java.math.BigInteger getPublicExponent();
-    field public static final long serialVersionUID = 618058533534628008L; // 0x893c8f62dbaf8a8L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 618058533534628008L; // 0x893c8f62dbaf8a8L
   }
 
   public interface RSAPrivateCrtKey extends java.security.interfaces.RSAPrivateKey {
@@ -9154,17 +9155,17 @@
     method public java.math.BigInteger getPrimeP();
     method public java.math.BigInteger getPrimeQ();
     method public java.math.BigInteger getPublicExponent();
-    field public static final long serialVersionUID = -5682214253527700368L; // 0xb124b83df8d1ec70L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -5682214253527700368L; // 0xb124b83df8d1ec70L
   }
 
   public interface RSAPrivateKey extends java.security.PrivateKey java.security.interfaces.RSAKey {
     method public java.math.BigInteger getPrivateExponent();
-    field public static final long serialVersionUID = 5187144804936595022L; // 0x47fc70b7a8c2364eL
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = 5187144804936595022L; // 0x47fc70b7a8c2364eL
   }
 
   public interface RSAPublicKey extends java.security.PublicKey java.security.interfaces.RSAKey {
     method public java.math.BigInteger getPublicExponent();
-    field public static final long serialVersionUID = -8727434096241101194L; // 0x86e1ecedeceab676L
+    field @Deprecated @java.io.Serial public static final long serialVersionUID = -8727434096241101194L; // 0x86e1ecedeceab676L
   }
 
   public interface XECKey {
@@ -10797,6 +10798,7 @@
     method public abstract int compare(String, String);
     method public int compare(Object, Object);
     method public boolean equals(String, String);
+    method public boolean equals(Object);
     method public static java.util.Locale[] getAvailableLocales();
     method public abstract java.text.CollationKey getCollationKey(String);
     method public int getDecomposition();
@@ -11131,6 +11133,7 @@
     method public java.text.CollationElementIterator getCollationElementIterator(java.text.CharacterIterator);
     method public java.text.CollationKey getCollationKey(String);
     method public String getRules();
+    method public int hashCode();
   }
 
   public class SimpleDateFormat extends java.text.DateFormat {
@@ -11329,6 +11332,7 @@
     method public java.time.OffsetDateTime atTime(java.time.OffsetTime);
     method public java.util.stream.Stream<java.time.LocalDate> datesUntil(java.time.LocalDate);
     method public java.util.stream.Stream<java.time.LocalDate> datesUntil(java.time.LocalDate, java.time.Period);
+    method public boolean equals(Object);
     method public static java.time.LocalDate from(java.time.temporal.TemporalAccessor);
     method public java.time.chrono.IsoChronology getChronology();
     method public int getDayOfMonth();
@@ -11338,6 +11342,9 @@
     method public java.time.Month getMonth();
     method public int getMonthValue();
     method public int getYear();
+    method public int hashCode();
+    method public boolean isSupported(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public int lengthOfMonth();
     method public java.time.LocalDate minus(java.time.temporal.TemporalAmount);
     method public java.time.LocalDate minus(long, java.time.temporal.TemporalUnit);
@@ -11362,6 +11369,7 @@
     method public java.time.LocalDate plusWeeks(long);
     method public java.time.LocalDate plusYears(long);
     method public long toEpochSecond(java.time.LocalTime, java.time.ZoneOffset);
+    method public String toString();
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.Period until(java.time.chrono.ChronoLocalDate);
     method public java.time.LocalDate with(java.time.temporal.TemporalAdjuster);
@@ -11378,6 +11386,7 @@
   public final class LocalDateTime implements java.time.chrono.ChronoLocalDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal java.time.temporal.TemporalAdjuster {
     method public java.time.OffsetDateTime atOffset(java.time.ZoneOffset);
     method public java.time.ZonedDateTime atZone(java.time.ZoneId);
+    method public boolean equals(Object);
     method public static java.time.LocalDateTime from(java.time.temporal.TemporalAccessor);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
@@ -11390,7 +11399,9 @@
     method public int getNano();
     method public int getSecond();
     method public int getYear();
+    method public int hashCode();
     method public boolean isSupported(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime minus(java.time.temporal.TemporalAmount);
     method public java.time.LocalDateTime minus(long, java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime minusDays(long);
@@ -11427,6 +11438,7 @@
     method public java.time.LocalDateTime plusYears(long);
     method public java.time.LocalDate toLocalDate();
     method public java.time.LocalTime toLocalTime();
+    method public String toString();
     method public java.time.LocalDateTime truncatedTo(java.time.temporal.TemporalUnit);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.LocalDateTime with(java.time.temporal.TemporalAdjuster);
@@ -11689,6 +11701,7 @@
   public final class Period implements java.time.chrono.ChronoPeriod java.io.Serializable {
     method public java.time.temporal.Temporal addTo(java.time.temporal.Temporal);
     method public static java.time.Period between(java.time.LocalDate, java.time.LocalDate);
+    method public boolean equals(Object);
     method public static java.time.Period from(java.time.temporal.TemporalAmount);
     method public long get(java.time.temporal.TemporalUnit);
     method public java.time.chrono.IsoChronology getChronology();
@@ -11696,6 +11709,7 @@
     method public int getMonths();
     method public java.util.List<java.time.temporal.TemporalUnit> getUnits();
     method public int getYears();
+    method public int hashCode();
     method public java.time.Period minus(java.time.temporal.TemporalAmount);
     method public java.time.Period minusDays(long);
     method public java.time.Period minusMonths(long);
@@ -11714,6 +11728,7 @@
     method public java.time.Period plusMonths(long);
     method public java.time.Period plusYears(long);
     method public java.time.temporal.Temporal subtractFrom(java.time.temporal.Temporal);
+    method public String toString();
     method public long toTotalMonths();
     method public java.time.Period withDays(int);
     method public java.time.Period withMonths(int);
@@ -11834,11 +11849,13 @@
   }
 
   public final class ZonedDateTime implements java.time.chrono.ChronoZonedDateTime<java.time.LocalDate> java.io.Serializable java.time.temporal.Temporal {
+    method public boolean equals(Object);
     method public static java.time.ZonedDateTime from(java.time.temporal.TemporalAccessor);
     method public int getDayOfMonth();
     method public java.time.DayOfWeek getDayOfWeek();
     method public int getDayOfYear();
     method public int getHour();
+    method public long getLong(java.time.temporal.TemporalField);
     method public int getMinute();
     method public java.time.Month getMonth();
     method public int getMonthValue();
@@ -11847,7 +11864,9 @@
     method public int getSecond();
     method public int getYear();
     method public java.time.ZoneId getZone();
+    method public int hashCode();
     method public boolean isSupported(java.time.temporal.TemporalField);
+    method public boolean isSupported(java.time.temporal.TemporalUnit);
     method public java.time.ZonedDateTime minus(java.time.temporal.TemporalAmount);
     method public java.time.ZonedDateTime minus(long, java.time.temporal.TemporalUnit);
     method public java.time.ZonedDateTime minusDays(long);
@@ -11883,6 +11902,7 @@
     method public java.time.LocalDate toLocalDate();
     method public java.time.LocalDateTime toLocalDateTime();
     method public java.time.OffsetDateTime toOffsetDateTime();
+    method public String toString();
     method public java.time.ZonedDateTime truncatedTo(java.time.temporal.TemporalUnit);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.ZonedDateTime with(java.time.temporal.TemporalAdjuster);
@@ -11909,7 +11929,10 @@
   public abstract class AbstractChronology implements java.time.chrono.Chronology {
     ctor protected AbstractChronology();
     method public int compareTo(java.time.chrono.Chronology);
+    method public boolean equals(Object);
+    method public int hashCode();
     method public java.time.chrono.ChronoLocalDate resolveDate(java.util.Map<java.time.temporal.TemporalField,java.lang.Long>, java.time.format.ResolverStyle);
+    method public String toString();
   }
 
   public interface ChronoLocalDate extends java.time.temporal.Temporal java.lang.Comparable<java.time.chrono.ChronoLocalDate> java.time.temporal.TemporalAdjuster {
@@ -12099,6 +12122,7 @@
     method public static java.time.chrono.HijrahDate of(int, int, int);
     method public java.time.chrono.HijrahDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.HijrahDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.HijrahDate with(java.time.temporal.TemporalField, long);
@@ -12184,6 +12208,7 @@
     method public static java.time.chrono.JapaneseDate of(int, int, int);
     method public java.time.chrono.JapaneseDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.JapaneseDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.JapaneseDate with(java.time.temporal.TemporalField, long);
@@ -12241,6 +12266,7 @@
     method public static java.time.chrono.MinguoDate of(int, int, int);
     method public java.time.chrono.MinguoDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.MinguoDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.MinguoDate with(java.time.temporal.TemporalField, long);
@@ -12293,6 +12319,7 @@
     method public static java.time.chrono.ThaiBuddhistDate of(int, int, int);
     method public java.time.chrono.ThaiBuddhistDate plus(java.time.temporal.TemporalAmount);
     method public java.time.chrono.ThaiBuddhistDate plus(long, java.time.temporal.TemporalUnit);
+    method public String toString();
     method public java.time.chrono.ChronoPeriod until(java.time.chrono.ChronoLocalDate);
     method public long until(java.time.temporal.Temporal, java.time.temporal.TemporalUnit);
     method public java.time.chrono.ThaiBuddhistDate with(java.time.temporal.TemporalField, long);
@@ -12756,6 +12783,8 @@
     ctor protected AbstractList();
     method public void add(int, E);
     method public boolean addAll(int, @NonNull java.util.Collection<? extends E>);
+    method public boolean equals(@Nullable Object);
+    method public int hashCode();
     method public int indexOf(@Nullable Object);
     method @NonNull public java.util.Iterator<E> iterator();
     method public int lastIndexOf(@Nullable Object);
@@ -12773,7 +12802,9 @@
     method public void clear();
     method public boolean containsKey(@Nullable Object);
     method public boolean containsValue(@Nullable Object);
+    method public boolean equals(@Nullable Object);
     method @Nullable public V get(@Nullable Object);
+    method public int hashCode();
     method public boolean isEmpty();
     method @NonNull public java.util.Set<K> keySet();
     method @Nullable public V put(K, V);
@@ -12786,16 +12817,20 @@
   public static class AbstractMap.SimpleEntry<K, V> implements java.util.Map.Entry<K,V> java.io.Serializable {
     ctor public AbstractMap.SimpleEntry(K, V);
     ctor public AbstractMap.SimpleEntry(@NonNull java.util.Map.Entry<? extends K,? extends V>);
+    method public boolean equals(@Nullable Object);
     method public K getKey();
     method public V getValue();
+    method public int hashCode();
     method public V setValue(V);
   }
 
   public static class AbstractMap.SimpleImmutableEntry<K, V> implements java.util.Map.Entry<K,V> java.io.Serializable {
     ctor public AbstractMap.SimpleImmutableEntry(K, V);
     ctor public AbstractMap.SimpleImmutableEntry(@NonNull java.util.Map.Entry<? extends K,? extends V>);
+    method public boolean equals(@Nullable Object);
     method public K getKey();
     method public V getValue();
+    method public int hashCode();
     method public V setValue(V);
   }
 
@@ -12812,6 +12847,8 @@
 
   public abstract class AbstractSet<E> extends java.util.AbstractCollection<E> implements java.util.Set<E> {
     ctor protected AbstractSet();
+    method public boolean equals(@Nullable Object);
+    method public int hashCode();
   }
 
   public class ArrayDeque<E> extends java.util.AbstractCollection<E> implements java.lang.Cloneable java.util.Deque<E> java.io.Serializable {
@@ -13498,6 +13535,7 @@
     ctor public EnumMap(java.util.Map<K,? extends V>);
     method public java.util.EnumMap<K,V> clone();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public V put(K, V);
   }
 
   public abstract class EnumSet<E extends java.lang.Enum<E>> extends java.util.AbstractSet<E> implements java.lang.Cloneable java.io.Serializable {
@@ -13645,7 +13683,9 @@
     method public boolean containsValue(Object);
     method public java.util.Enumeration<V> elements();
     method public java.util.Set<java.util.Map.Entry<K,V>> entrySet();
+    method public boolean equals(Object);
     method public V get(Object);
+    method public int hashCode();
     method public boolean isEmpty();
     method public java.util.Set<K> keySet();
     method public java.util.Enumeration<K> keys();
@@ -13792,6 +13832,7 @@
     method public E element();
     method public E getFirst();
     method public E getLast();
+    method @NonNull public java.util.ListIterator<E> listIterator(int);
     method public boolean offer(E);
     method public boolean offerFirst(E);
     method public boolean offerLast(E);
@@ -14034,6 +14075,7 @@
     method @NonNull public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByKey(@NonNull java.util.Comparator<? super K>);
     method @NonNull public static <K, V extends java.lang.Comparable<? super V>> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue();
     method @NonNull public static <K, V> java.util.Comparator<java.util.Map.Entry<K,V>> comparingByValue(@NonNull java.util.Comparator<? super V>);
+    method @NonNull public static <K, V> java.util.Map.Entry<K,V> copyOf(@NonNull java.util.Map.Entry<? extends K,? extends V>);
     method public boolean equals(@Nullable Object);
     method public K getKey();
     method public V getValue();
@@ -14249,23 +14291,44 @@
 
   public class Properties extends java.util.Hashtable<java.lang.Object,java.lang.Object> {
     ctor public Properties();
+    ctor public Properties(int);
     ctor public Properties(java.util.Properties);
+    method public Object compute(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
+    method public Object computeIfAbsent(Object, java.util.function.Function<? super java.lang.Object,?>);
+    method public Object computeIfPresent(Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
+    method public java.util.Enumeration<java.lang.Object> elements();
+    method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
+    method public void forEach(java.util.function.BiConsumer<? super java.lang.Object,? super java.lang.Object>);
+    method public Object get(Object);
+    method public Object getOrDefault(Object, Object);
     method public String getProperty(String);
     method public String getProperty(String, String);
+    method public java.util.Set<java.lang.Object> keySet();
+    method public java.util.Enumeration<java.lang.Object> keys();
     method public void list(java.io.PrintStream);
     method public void list(java.io.PrintWriter);
     method public void load(java.io.Reader) throws java.io.IOException;
     method public void load(java.io.InputStream) throws java.io.IOException;
     method public void loadFromXML(java.io.InputStream) throws java.io.IOException, java.util.InvalidPropertiesFormatException;
+    method public Object merge(Object, Object, java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
     method public java.util.Enumeration<?> propertyNames();
+    method public Object put(Object, Object);
+    method public void putAll(java.util.Map<?,?>);
+    method public Object putIfAbsent(Object, Object);
+    method public Object remove(Object);
+    method public boolean replace(Object, Object, Object);
+    method public Object replace(Object, Object);
+    method public void replaceAll(java.util.function.BiFunction<? super java.lang.Object,? super java.lang.Object,?>);
     method @Deprecated public void save(java.io.OutputStream, String);
     method public Object setProperty(String, String);
     method public void store(java.io.Writer, String) throws java.io.IOException;
     method public void store(java.io.OutputStream, String) throws java.io.IOException;
     method public void storeToXML(java.io.OutputStream, String) throws java.io.IOException;
     method public void storeToXML(java.io.OutputStream, String, String) throws java.io.IOException;
+    method public void storeToXML(java.io.OutputStream, String, java.nio.charset.Charset) throws java.io.IOException;
     method public java.util.Set<java.lang.String> stringPropertyNames();
-    field protected java.util.Properties defaults;
+    method public java.util.Collection<java.lang.Object> values();
+    field protected volatile java.util.Properties defaults;
   }
 
   public final class PropertyPermission extends java.security.BasicPermission {
@@ -14445,6 +14508,12 @@
     method public static <S> java.util.ServiceLoader<S> load(Class<S>);
     method public static <S> java.util.ServiceLoader<S> loadInstalled(Class<S>);
     method public void reload();
+    method public java.util.stream.Stream<java.util.ServiceLoader.Provider<S>> stream();
+  }
+
+  public static interface ServiceLoader.Provider<S> extends java.util.function.Supplier<S> {
+    method public S get();
+    method public Class<? extends S> type();
   }
 
   public interface Set<E> extends java.util.Collection<E> {
@@ -14884,12 +14953,22 @@
   }
 
   public interface BlockingDeque<E> extends java.util.concurrent.BlockingQueue<E> java.util.Deque<E> {
+    method public boolean add(E);
+    method public boolean contains(Object);
+    method public E element();
+    method public java.util.Iterator<E> iterator();
+    method public boolean offer(E);
     method public boolean offerFirst(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public boolean offerLast(E, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
+    method public E peek();
+    method public E poll();
     method public E pollFirst(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public E pollLast(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
     method public void putFirst(E) throws java.lang.InterruptedException;
     method public void putLast(E) throws java.lang.InterruptedException;
+    method public E remove();
+    method public boolean remove(Object);
+    method public int size();
     method public E takeFirst() throws java.lang.InterruptedException;
     method public E takeLast() throws java.lang.InterruptedException;
   }
@@ -15084,6 +15163,7 @@
     method public long mappingCount();
     method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet();
     method @NonNull public static <K> java.util.concurrent.ConcurrentHashMap.KeySetView<K,java.lang.Boolean> newKeySet(int);
+    method @Nullable public V putIfAbsent(@NonNull K, @NonNull V);
     method @Nullable public <U> U reduce(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
     method @Nullable public java.util.Map.Entry<K,V> reduceEntries(long, @NonNull java.util.function.BiFunction<java.util.Map.Entry<K,V>,java.util.Map.Entry<K,V>,? extends java.util.Map.Entry<K,V>>);
     method @Nullable public <U> U reduceEntries(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>, @NonNull java.util.function.BiFunction<? super U,? super U,? extends U>);
@@ -15103,6 +15183,9 @@
     method public double reduceValuesToDouble(long, @NonNull java.util.function.ToDoubleFunction<? super V>, double, @NonNull java.util.function.DoubleBinaryOperator);
     method public int reduceValuesToInt(long, @NonNull java.util.function.ToIntFunction<? super V>, int, @NonNull java.util.function.IntBinaryOperator);
     method public long reduceValuesToLong(long, @NonNull java.util.function.ToLongFunction<? super V>, long, @NonNull java.util.function.LongBinaryOperator);
+    method public boolean remove(@NonNull Object, @Nullable Object);
+    method public boolean replace(@NonNull K, @NonNull V, @NonNull V);
+    method @Nullable public V replace(@NonNull K, @NonNull V);
     method @Nullable public <U> U search(long, @NonNull java.util.function.BiFunction<? super K,? super V,? extends U>);
     method @Nullable public <U> U searchEntries(long, @NonNull java.util.function.Function<java.util.Map.Entry<K,V>,? extends U>);
     method @Nullable public <U> U searchKeys(long, @NonNull java.util.function.Function<? super K,? extends U>);
@@ -15115,9 +15198,11 @@
     method public final void clear();
     method public boolean contains(@NonNull Object);
     method public final boolean containsAll(@NonNull java.util.Collection<?>);
+    method public boolean equals(@Nullable Object);
     method public void forEach(@NonNull java.util.function.Consumer<? super K>);
     method @NonNull public java.util.concurrent.ConcurrentHashMap<K,V> getMap();
     method @Nullable public V getMappedValue();
+    method public int hashCode();
     method public final boolean isEmpty();
     method @NonNull public java.util.Iterator<K> iterator();
     method public boolean remove(@NonNull Object);
@@ -15217,6 +15302,10 @@
     method public java.util.NavigableSet<K> navigableKeySet();
     method public java.util.Map.Entry<K,V> pollFirstEntry();
     method public java.util.Map.Entry<K,V> pollLastEntry();
+    method public V putIfAbsent(K, V);
+    method public boolean remove(Object, Object);
+    method public boolean replace(K, V, V);
+    method public V replace(K, V);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, boolean, K, boolean);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> subMap(K, K);
     method public java.util.concurrent.ConcurrentNavigableMap<K,V> tailMap(K, boolean);
@@ -15264,8 +15353,10 @@
     method @NonNull public Object clone();
     method public boolean contains(@Nullable Object);
     method public boolean containsAll(@NonNull java.util.Collection<?>);
+    method public boolean equals(@Nullable Object);
     method public void forEach(@NonNull java.util.function.Consumer<? super E>);
     method public E get(int);
+    method public int hashCode();
     method public int indexOf(@Nullable Object);
     method public int indexOf(@Nullable E, int);
     method public boolean isEmpty();
@@ -15341,6 +15432,7 @@
   public class DelayQueue<E extends java.util.concurrent.Delayed> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E> {
     ctor public DelayQueue();
     ctor public DelayQueue(java.util.Collection<? extends E>);
+    method public boolean add(E);
     method public int drainTo(java.util.Collection<? super E>);
     method public int drainTo(java.util.Collection<? super E>, int);
     method public java.util.Iterator<E> iterator();
@@ -16762,9 +16854,11 @@
     method public boolean containsKey(Object);
     method public boolean containsValue(Object);
     method public java.util.Set<java.util.Map.Entry<java.lang.Object,java.lang.Object>> entrySet();
+    method public boolean equals(Object);
     method public Object get(Object);
     method public String getValue(String);
     method public String getValue(java.util.jar.Attributes.Name);
+    method public int hashCode();
     method public boolean isEmpty();
     method public java.util.Set<java.lang.Object> keySet();
     method public Object put(Object, Object);
@@ -17342,6 +17436,7 @@
     method protected abstract void removeSpi(String);
     method public void sync() throws java.util.prefs.BackingStoreException;
     method protected abstract void syncSpi() throws java.util.prefs.BackingStoreException;
+    method public String toString();
     field protected final Object lock;
     field protected boolean newNode;
   }
@@ -17578,6 +17673,7 @@
     method public static <T> java.util.stream.Collector<T,?,java.lang.Double> summingDouble(java.util.function.ToDoubleFunction<? super T>);
     method public static <T> java.util.stream.Collector<T,?,java.lang.Integer> summingInt(java.util.function.ToIntFunction<? super T>);
     method public static <T> java.util.stream.Collector<T,?,java.lang.Long> summingLong(java.util.function.ToLongFunction<? super T>);
+    method public static <T, R1, R2, R> java.util.stream.Collector<T,?,R> teeing(java.util.stream.Collector<? super T,?,R1>, java.util.stream.Collector<? super T,?,R2>, java.util.function.BiFunction<? super R1,? super R2,R>);
     method public static <T, C extends java.util.Collection<T>> java.util.stream.Collector<T,?,C> toCollection(java.util.function.Supplier<C>);
     method public static <T, K, U> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,U>> toConcurrentMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>);
     method public static <T, K, U> java.util.stream.Collector<T,?,java.util.concurrent.ConcurrentMap<K,U>> toConcurrentMap(java.util.function.Function<? super T,? extends K>, java.util.function.Function<? super T,? extends U>, java.util.function.BinaryOperator<U>);
@@ -17603,6 +17699,7 @@
     method public static java.util.stream.DoubleStream concat(java.util.stream.DoubleStream, java.util.stream.DoubleStream);
     method public long count();
     method public java.util.stream.DoubleStream distinct();
+    method public default java.util.stream.DoubleStream dropWhile(java.util.function.DoublePredicate);
     method public static java.util.stream.DoubleStream empty();
     method public java.util.stream.DoubleStream filter(java.util.function.DoublePredicate);
     method public java.util.OptionalDouble findAny();
@@ -17612,9 +17709,11 @@
     method public void forEachOrdered(java.util.function.DoubleConsumer);
     method public static java.util.stream.DoubleStream generate(java.util.function.DoubleSupplier);
     method public static java.util.stream.DoubleStream iterate(double, java.util.function.DoubleUnaryOperator);
+    method public static java.util.stream.DoubleStream iterate(double, java.util.function.DoublePredicate, java.util.function.DoubleUnaryOperator);
     method public java.util.PrimitiveIterator.OfDouble iterator();
     method public java.util.stream.DoubleStream limit(long);
     method public java.util.stream.DoubleStream map(java.util.function.DoubleUnaryOperator);
+    method public default java.util.stream.DoubleStream mapMulti(java.util.stream.DoubleStream.DoubleMapMultiConsumer);
     method public java.util.stream.IntStream mapToInt(java.util.function.DoubleToIntFunction);
     method public java.util.stream.LongStream mapToLong(java.util.function.DoubleToLongFunction);
     method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.DoubleFunction<? extends U>);
@@ -17633,6 +17732,7 @@
     method public java.util.Spliterator.OfDouble spliterator();
     method public double sum();
     method public java.util.DoubleSummaryStatistics summaryStatistics();
+    method public default java.util.stream.DoubleStream takeWhile(java.util.function.DoublePredicate);
     method public double[] toArray();
   }
 
@@ -17641,6 +17741,10 @@
     method public java.util.stream.DoubleStream build();
   }
 
+  @java.lang.FunctionalInterface public static interface DoubleStream.DoubleMapMultiConsumer {
+    method public void accept(double, java.util.function.DoubleConsumer);
+  }
+
   public interface IntStream extends java.util.stream.BaseStream<java.lang.Integer,java.util.stream.IntStream> {
     method public boolean allMatch(java.util.function.IntPredicate);
     method public boolean anyMatch(java.util.function.IntPredicate);
@@ -17653,6 +17757,7 @@
     method public static java.util.stream.IntStream concat(java.util.stream.IntStream, java.util.stream.IntStream);
     method public long count();
     method public java.util.stream.IntStream distinct();
+    method public default java.util.stream.IntStream dropWhile(java.util.function.IntPredicate);
     method public static java.util.stream.IntStream empty();
     method public java.util.stream.IntStream filter(java.util.function.IntPredicate);
     method public java.util.OptionalInt findAny();
@@ -17662,9 +17767,11 @@
     method public void forEachOrdered(java.util.function.IntConsumer);
     method public static java.util.stream.IntStream generate(java.util.function.IntSupplier);
     method public static java.util.stream.IntStream iterate(int, java.util.function.IntUnaryOperator);
+    method public static java.util.stream.IntStream iterate(int, java.util.function.IntPredicate, java.util.function.IntUnaryOperator);
     method public java.util.PrimitiveIterator.OfInt iterator();
     method public java.util.stream.IntStream limit(long);
     method public java.util.stream.IntStream map(java.util.function.IntUnaryOperator);
+    method public default java.util.stream.IntStream mapMulti(java.util.stream.IntStream.IntMapMultiConsumer);
     method public java.util.stream.DoubleStream mapToDouble(java.util.function.IntToDoubleFunction);
     method public java.util.stream.LongStream mapToLong(java.util.function.IntToLongFunction);
     method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.IntFunction<? extends U>);
@@ -17685,6 +17792,7 @@
     method public java.util.Spliterator.OfInt spliterator();
     method public int sum();
     method public java.util.IntSummaryStatistics summaryStatistics();
+    method public default java.util.stream.IntStream takeWhile(java.util.function.IntPredicate);
     method public int[] toArray();
   }
 
@@ -17693,6 +17801,10 @@
     method public java.util.stream.IntStream build();
   }
 
+  @java.lang.FunctionalInterface public static interface IntStream.IntMapMultiConsumer {
+    method public void accept(int, java.util.function.IntConsumer);
+  }
+
   public interface LongStream extends java.util.stream.BaseStream<java.lang.Long,java.util.stream.LongStream> {
     method public boolean allMatch(java.util.function.LongPredicate);
     method public boolean anyMatch(java.util.function.LongPredicate);
@@ -17704,6 +17816,7 @@
     method public static java.util.stream.LongStream concat(java.util.stream.LongStream, java.util.stream.LongStream);
     method public long count();
     method public java.util.stream.LongStream distinct();
+    method public default java.util.stream.LongStream dropWhile(java.util.function.LongPredicate);
     method public static java.util.stream.LongStream empty();
     method public java.util.stream.LongStream filter(java.util.function.LongPredicate);
     method public java.util.OptionalLong findAny();
@@ -17713,9 +17826,11 @@
     method public void forEachOrdered(java.util.function.LongConsumer);
     method public static java.util.stream.LongStream generate(java.util.function.LongSupplier);
     method public static java.util.stream.LongStream iterate(long, java.util.function.LongUnaryOperator);
+    method public static java.util.stream.LongStream iterate(long, java.util.function.LongPredicate, java.util.function.LongUnaryOperator);
     method public java.util.PrimitiveIterator.OfLong iterator();
     method public java.util.stream.LongStream limit(long);
     method public java.util.stream.LongStream map(java.util.function.LongUnaryOperator);
+    method public default java.util.stream.LongStream mapMulti(java.util.stream.LongStream.LongMapMultiConsumer);
     method public java.util.stream.DoubleStream mapToDouble(java.util.function.LongToDoubleFunction);
     method public java.util.stream.IntStream mapToInt(java.util.function.LongToIntFunction);
     method public <U> java.util.stream.Stream<U> mapToObj(java.util.function.LongFunction<? extends U>);
@@ -17736,6 +17851,7 @@
     method public java.util.Spliterator.OfLong spliterator();
     method public long sum();
     method public java.util.LongSummaryStatistics summaryStatistics();
+    method public default java.util.stream.LongStream takeWhile(java.util.function.LongPredicate);
     method public long[] toArray();
   }
 
@@ -17744,6 +17860,10 @@
     method public java.util.stream.LongStream build();
   }
 
+  @java.lang.FunctionalInterface public static interface LongStream.LongMapMultiConsumer {
+    method public void accept(long, java.util.function.LongConsumer);
+  }
+
   public interface Stream<T> extends java.util.stream.BaseStream<T,java.util.stream.Stream<T>> {
     method public boolean allMatch(java.util.function.Predicate<? super T>);
     method public boolean anyMatch(java.util.function.Predicate<? super T>);
@@ -17995,6 +18115,7 @@
     method public String getName();
     method public long getSize();
     method public long getTime();
+    method public java.time.LocalDateTime getTimeLocal();
     method public boolean isDirectory();
     method public void setComment(String);
     method public void setCompressedSize(long);
@@ -18006,6 +18127,7 @@
     method public void setMethod(int);
     method public void setSize(long);
     method public void setTime(long);
+    method public void setTimeLocal(java.time.LocalDateTime);
     field public static final int CENATT = 36; // 0x24
     field public static final int CENATX = 38; // 0x26
     field public static final int CENCOM = 32; // 0x20
@@ -19203,10 +19325,13 @@
     ctor public X500Principal(String, java.util.Map<java.lang.String,java.lang.String>);
     ctor public X500Principal(byte[]);
     ctor public X500Principal(java.io.InputStream);
+    method public boolean equals(Object);
     method public byte[] getEncoded();
     method public String getName();
     method public String getName(String);
     method public String getName(String, java.util.Map<java.lang.String,java.lang.String>);
+    method public int hashCode();
+    method public String toString();
     field public static final String CANONICAL = "CANONICAL";
     field public static final String RFC1779 = "RFC1779";
     field public static final String RFC2253 = "RFC2253";
diff --git a/go/current/sdk/sdk_library/system-server/service-art-stubs.jar b/go/current/sdk/sdk_library/system-server/service-art-stubs.jar
index 7675f44..a1882fb 100644
--- a/go/current/sdk/sdk_library/system-server/service-art-stubs.jar
+++ b/go/current/sdk/sdk_library/system-server/service-art-stubs.jar
Binary files differ
diff --git a/go/current/sdk/sdk_library/system-server/service-art.srcjar b/go/current/sdk/sdk_library/system-server/service-art.srcjar
index 68ac451..6e5ec8a 100644
--- a/go/current/sdk/sdk_library/system-server/service-art.srcjar
+++ b/go/current/sdk/sdk_library/system-server/service-art.srcjar
Binary files differ
diff --git a/go/current/sdk/sdk_library/system-server/service-art.txt b/go/current/sdk/sdk_library/system-server/service-art.txt
index a9cd65a..ec1eab2 100644
--- a/go/current/sdk/sdk_library/system-server/service-art.txt
+++ b/go/current/sdk/sdk_library/system-server/service-art.txt
@@ -80,6 +80,7 @@
     field public static final int FLAG_FOR_PRIMARY_DEX = 1; // 0x1
     field public static final int FLAG_FOR_SECONDARY_DEX = 2; // 0x2
     field public static final int FLAG_FOR_SINGLE_SPLIT = 32; // 0x20
+    field public static final int FLAG_IGNORE_PROFILE = 128; // 0x80
     field public static final int FLAG_SHOULD_DOWNGRADE = 8; // 0x8
     field public static final int FLAG_SHOULD_INCLUDE_DEPENDENCIES = 4; // 0x4
     field public static final int FLAG_SKIP_IF_STORAGE_LOW = 64; // 0x40
@@ -142,6 +143,9 @@
     field public static final int DEXOPT_FAILED = 30; // 0x1e
     field public static final int DEXOPT_PERFORMED = 20; // 0x14
     field public static final int DEXOPT_SKIPPED = 10; // 0xa
+    field public static final int EXTENDED_BAD_EXTERNAL_PROFILE = 4; // 0x4
+    field public static final int EXTENDED_SKIPPED_NO_DEX_CODE = 2; // 0x2
+    field public static final int EXTENDED_SKIPPED_STORAGE_LOW = 1; // 0x1
   }
 
   public abstract static class DexoptResult.DexContainerFileDexoptResult {
@@ -150,6 +154,8 @@
     method public abstract long getDex2oatCpuTimeMillis();
     method public abstract long getDex2oatWallTimeMillis();
     method @NonNull public abstract String getDexContainerFile();
+    method public abstract int getExtendedStatusFlags();
+    method @NonNull public abstract java.util.List<java.lang.String> getExternalProfileErrors();
     method public abstract long getSizeBeforeBytes();
     method public abstract long getSizeBytes();
     method public abstract int getStatus();
diff --git a/go/current/sdk/sdk_library/system-server/service-art_annotations.zip b/go/current/sdk/sdk_library/system-server/service-art_annotations.zip
index 78b2f8f..f400dba 100644
--- a/go/current/sdk/sdk_library/system-server/service-art_annotations.zip
+++ b/go/current/sdk/sdk_library/system-server/service-art_annotations.zip
Binary files differ
diff --git a/go/current/sdk/sdk_library/system/art-stubs.jar b/go/current/sdk/sdk_library/system/art-stubs.jar
index 7591e5a..291d875 100644
--- a/go/current/sdk/sdk_library/system/art-stubs.jar
+++ b/go/current/sdk/sdk_library/system/art-stubs.jar
Binary files differ
diff --git a/go/current/sdk/sdk_library/system/art.srcjar b/go/current/sdk/sdk_library/system/art.srcjar
index a4e57d8..2cac973 100644
--- a/go/current/sdk/sdk_library/system/art.srcjar
+++ b/go/current/sdk/sdk_library/system/art.srcjar
Binary files differ
diff --git a/go/current/sdk/snapshot-creation-build-number.txt b/go/current/sdk/snapshot-creation-build-number.txt
index f9eedbc..b771400 100644
--- a/go/current/sdk/snapshot-creation-build-number.txt
+++ b/go/current/sdk/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10414058
\ No newline at end of file
+11030519
\ No newline at end of file
diff --git a/go/current/sdk/x86/lib/libnativebridge_lazy.so b/go/current/sdk/x86/lib/libnativebridge_lazy.so
index 96ec35d..35945b2 100755
--- a/go/current/sdk/x86/lib/libnativebridge_lazy.so
+++ b/go/current/sdk/x86/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/go/current/sdk/x86/lib/libnativehelper_compat_libc++.so b/go/current/sdk/x86/lib/libnativehelper_compat_libc++.so
index 7419d30..8d7f463 100755
--- a/go/current/sdk/x86/lib/libnativehelper_compat_libc++.so
+++ b/go/current/sdk/x86/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/go/current/sdk/x86/lib/libnativeloader_lazy.so b/go/current/sdk/x86/lib/libnativeloader_lazy.so
index 662b37f..af61b4d 100755
--- a/go/current/sdk/x86/lib/libnativeloader_lazy.so
+++ b/go/current/sdk/x86/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/go/current/sdk/x86_64/lib/libnativebridge_lazy.so b/go/current/sdk/x86_64/lib/libnativebridge_lazy.so
index ff1da08..d730858 100755
--- a/go/current/sdk/x86_64/lib/libnativebridge_lazy.so
+++ b/go/current/sdk/x86_64/lib/libnativebridge_lazy.so
Binary files differ
diff --git a/go/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so b/go/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so
index b8a2416..d627bee 100755
--- a/go/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so
+++ b/go/current/sdk/x86_64/lib/libnativehelper_compat_libc++.so
Binary files differ
diff --git a/go/current/sdk/x86_64/lib/libnativeloader_lazy.so b/go/current/sdk/x86_64/lib/libnativeloader_lazy.so
index af1a139..f303700 100755
--- a/go/current/sdk/x86_64/lib/libnativeloader_lazy.so
+++ b/go/current/sdk/x86_64/lib/libnativeloader_lazy.so
Binary files differ
diff --git a/go/current/test-exports/Android.bp b/go/current/test-exports/Android.bp
index 1660fb3..5e9eca5 100644
--- a/go/current/test-exports/Android.bp
+++ b/go/current/test-exports/Android.bp
@@ -39,6 +39,7 @@
     },
     visibility: [
         "//art/build/sdk",
+        "//cts/tests/core/runner-axt",
         "//cts/tests/tests/util",
         "//external/conscrypt",
         "//external/conscrypt/apex/tests",
@@ -47,6 +48,7 @@
         "//frameworks/base/wifi/tests",
         "//libcore",
         "//libcore/luni/src/test/java9compatibility",
+        "//libcore/ojluni/src/test",
         "//packages/modules/Wifi/framework/tests",
         "//prebuilts:__subpackages__",
     ],
@@ -323,6 +325,7 @@
         "//art/build/sdk",
         "//cts/tests/libcore/luni",
         "//external/apache-harmony",
+        "//libcore",
         "//prebuilts:__subpackages__",
     ],
     apex_available: ["//apex_available:platform"],
diff --git a/go/current/test-exports/arm64/lib/libjavacoretests.so b/go/current/test-exports/arm64/lib/libjavacoretests.so
index e38d679..702e995 100755
--- a/go/current/test-exports/arm64/lib/libjavacoretests.so
+++ b/go/current/test-exports/arm64/lib/libjavacoretests.so
Binary files differ
diff --git a/go/current/test-exports/java/core-compat-test-rules.jar b/go/current/test-exports/java/core-compat-test-rules.jar
index 100cb25..f9d15e6 100644
--- a/go/current/test-exports/java/core-compat-test-rules.jar
+++ b/go/current/test-exports/java/core-compat-test-rules.jar
Binary files differ
diff --git a/go/current/test-exports/java/core-libart-for-host.jar b/go/current/test-exports/java/core-libart-for-host.jar
index a43e54f..54d2c21 100644
--- a/go/current/test-exports/java/core-libart-for-host.jar
+++ b/go/current/test-exports/java/core-libart-for-host.jar
Binary files differ
diff --git a/go/current/test-exports/java/core-ojtests-public.jar b/go/current/test-exports/java/core-ojtests-public.jar
index 5e4bff6..dee3b0d 100644
--- a/go/current/test-exports/java/core-ojtests-public.jar
+++ b/go/current/test-exports/java/core-ojtests-public.jar
Binary files differ
diff --git a/go/current/test-exports/java/core-test-rules.jar b/go/current/test-exports/java/core-test-rules.jar
index 6055b5d..27b709e 100644
--- a/go/current/test-exports/java/core-test-rules.jar
+++ b/go/current/test-exports/java/core-test-rules.jar
Binary files differ
diff --git a/go/current/test-exports/java/core-tests.jar b/go/current/test-exports/java/core-tests.jar
index 52cd273..08c4403 100644
--- a/go/current/test-exports/java/core-tests.jar
+++ b/go/current/test-exports/java/core-tests.jar
Binary files differ
diff --git a/go/current/test-exports/java/libcore-crypto-tests.jar b/go/current/test-exports/java/libcore-crypto-tests.jar
index 7b26f3e..8498232 100644
--- a/go/current/test-exports/java/libcore-crypto-tests.jar
+++ b/go/current/test-exports/java/libcore-crypto-tests.jar
Binary files differ
diff --git a/go/current/test-exports/java/libcore-expectations-knownfailures-jar.jar b/go/current/test-exports/java/libcore-expectations-knownfailures-jar.jar
index f269175..3f8911f 100644
--- a/go/current/test-exports/java/libcore-expectations-knownfailures-jar.jar
+++ b/go/current/test-exports/java/libcore-expectations-knownfailures-jar.jar
Binary files differ
diff --git a/go/current/test-exports/java/okhttp-for-host.jar b/go/current/test-exports/java/okhttp-for-host.jar
index c15bee9..11a2aa1 100644
--- a/go/current/test-exports/java/okhttp-for-host.jar
+++ b/go/current/test-exports/java/okhttp-for-host.jar
Binary files differ
diff --git a/go/current/test-exports/java/okhttp-nojarjar.jar b/go/current/test-exports/java/okhttp-nojarjar.jar
index 734a25e..b448b45 100644
--- a/go/current/test-exports/java/okhttp-nojarjar.jar
+++ b/go/current/test-exports/java/okhttp-nojarjar.jar
Binary files differ
diff --git a/go/current/test-exports/java/okhttp-tests-nojarjar.jar b/go/current/test-exports/java/okhttp-tests-nojarjar.jar
index 2d6f940..dc907fa 100644
--- a/go/current/test-exports/java/okhttp-tests-nojarjar.jar
+++ b/go/current/test-exports/java/okhttp-tests-nojarjar.jar
Binary files differ
diff --git a/go/current/test-exports/snapshot-creation-build-number.txt b/go/current/test-exports/snapshot-creation-build-number.txt
index f9eedbc..9cf727a 100644
--- a/go/current/test-exports/snapshot-creation-build-number.txt
+++ b/go/current/test-exports/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10414058
\ No newline at end of file
+11088951
\ No newline at end of file
diff --git a/go/current/test-exports/x86/lib/libjavacoretests.so b/go/current/test-exports/x86/lib/libjavacoretests.so
index 0a0e42a..ef25cca 100755
--- a/go/current/test-exports/x86/lib/libjavacoretests.so
+++ b/go/current/test-exports/x86/lib/libjavacoretests.so
Binary files differ
diff --git a/go/current/test-exports/x86_64/lib/libjavacoretests.so b/go/current/test-exports/x86_64/lib/libjavacoretests.so
index 90ae90c..04fe4ac 100755
--- a/go/current/test-exports/x86_64/lib/libjavacoretests.so
+++ b/go/current/test-exports/x86_64/lib/libjavacoretests.so
Binary files differ